scan-mcp
@jacksenechal
About scan-mcp
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
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"
}
}
}
}Tools
5Discover 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)
FAQ from scan-mcp
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.
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.
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.
What tools does scan-mcp expose?
Five tools: list_devices, get_device_options, start_scan_job, get_job_status, and cancel_job.
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.
Frequently asked questions
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.
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.
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.
What tools does scan-mcp expose?
Five tools: `list_devices`, `get_device_options`, `start_scan_job`, `get_job_status`, and `cancel_job`.
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.
Basic information
More Other MCP servers
Website
FunnyWolfAdversary simulation and Red teaming platform with AI
ghidraMCP
LaurieWiredMCP Server for Ghidra
Inbox Zero AI
elie222The world's best AI personal assistant for email. Open source app to help you reach inbox zero fast.
Mobile Mcp
mobile-nextModel Context Protocol Server for Mobile Automation and Scraping (iOS, Android, Emulators, Simulators and Real Devices)
MaxKB
1Panel-dev🔥 MaxKB is an open-source platform for building enterprise-grade agents. 强大易用的开源企业级智能体平台。
Comments