MCP.so
Sign In

Scan MCP Server

@jacksenechal

Basic information

Category

Other

Transports

stdio

Author

jacksenechal

Submitted by

Jack Senechal

About Scan MCP Server

scan-mcp offers a robust and minimal MCP server designed for efficient document scanning on Linux systems. It simplifies image capture from scanners, supporting advanced features like Automatic Document Feeder (ADF), duplex scanning, and specific page sizing. The tool intelligent

#document#scanning#image-capture#linux#sane#adf

Scan MCP Server config

Add this server to your MCP-compatible client using the configuration below.

{
  "mcpServers": {
    "scan": {
      "command": "npx",
      "args": [
        "-y",
        "scan-mcp"
      ],
      "env": {
        "INBOX_DIR": "~/Documents/scanned_documents/inbox"
      }
    }
  }
}

Scan MCP Server tools

5

Discover connected scanners with backend details.

Probe options for a given `device_id`.

Start a job (auto-selects device if omitted). Creates per-page TIFFs, assembles documents.

Inspect job state and artifact paths.

Request job cancellation (best-effort during scan loops).

Overview

What is scan-mcp?

scan-mcp is a minimal MCP server for scanner capture (ADF/duplex/page-size), batching, and multipage assembly on Linux using SANE backends. It exposes typed, JSON Schema–validated tools for device discovery and scan jobs, with smart defaults for document scanning workflows.

How to use scan-mcp?

Configure it as an MCP client entry with the command npx -y scan-mcp and set the INBOX_DIR environment variable. Once connected, call tools like start_scan_job (omit device_id to auto-select a scanner) or list_devices to interact with connected scanners. Alternatively, install globally via npm i -g scan-mcp and run scan-mcp from the CLI.

Key features of scan-mcp

  • Small, typed MCP server with JSON Schema–validated inputs and outputs
  • Smart device selection (prefers ADF/duplex, avoids camera backends)
  • Robust defaults for resolution (300dpi), color mode, and ADF/duplex when available
  • Per-job artifacts: page TIFFs, assembled multipage TIFFs, manifest, and event logs
  • Mock mode (SCAN_MOCK=true) for testing without physical hardware
  • Environment variable configuration for binary paths, backends, and persistence

Use cases of scan-mcp

  • Batch scanning multi-page documents using an automatic document feeder (ADF)
  • Duplex scanning for two-sided documents with automatic page ordering
  • Assembling scanned pages into multipage TIFF files for archiving
  • Integrating scanner capture into AI or document processing pipelines via MCP
  • Testing and validating scan workflows without a physical scanner (mock mode)

Frequently asked questions

1

What are the system requirements for scan-mcp?

Linux with SANE utilities (`scanimage`, optionally `scanadf`) and TIFF tools (`tiffcp` or ImageMagick `convert`). Node 22 is required.

2

Can I test scan-mcp without a scanner?

Yes. Set the environment variable `SCAN_MOCK=true` to mock SANE calls and generate fake TIFFs for testing purposes.

3

How do I control device selection?

Use `SCAN_EXCLUDE_BACKENDS` (CSV) to exclude backends like `v4l`, `SCAN_PREFER_BACKENDS` (CSV) to prefer specific backends, and `PERSIST_LAST_USED_DEVICE` (default `true`) to remember the last-used device.

4

What tools does scan-mcp expose?

Five tools: `list_devices`, `get_device_options`, `start_scan_job`, `get_job_status`, and `cancel_job`.

5

Where are scan results stored?

Under the `INBOX_DIR` directory (default `scanned_documents/inbox`). Each job creates a subdirectory `job-*` containing page TIFFs (`page_*.tiff`), assembled document TIFFs (`doc_*.tiff`), a `manifest.json`, and an `events.jsonl` file.

Comments

More Other MCP servers