
Scan Mcp
io.github.jacksenechal由 GitHub 账号 jacksenechal 发布v0.3.0更新于 Oct 24, 2026
MCP server for scanner discovery and batch capture via SANE
发布方自己的服务:scan.mx Email Diagnostics
概览
本地 MCP 服务器,让助手发现 SANE 扫描仪并执行批量扫描任务,在本机拼装多页 TIFF 文档。
- 可以做什么
- 发现已连接的扫描仪并读取设备的 SANE 选项
- 启动扫描任务,可设置分辨率、色彩模式、进纸来源、双面、纸张尺寸与文档拆分策略
- 查看、列出和取消任务,并读取任务的 manifest 与事件日志
- 把页面和文档 TIFF 产物写入指定的收件目录,可选裁切载片纸
- 适用场景
- 适合在装有 SANE 兼容扫描仪的 Linux 机器上,让助手驱动文档采集:自动进纸器批量扫描、双面任务、多页拼装,以及事后查看任务状态与产物。
- 运行要求
- 通过 npx 以 stdio 在本机运行,需要 Node 22 及以上。需要 Linux 与 SANE 的 scanimage,以及用于多页拼装和载片纸裁切的 tiffcp 和 ImageMagick convert。可选环境变量包括 INBOX_DIR、SCANIMAGE_BIN、TIFFCP_BIN、IM_CONVERT_BIN、SCAN_MOCK、后端偏好列表,以及可选 HTTP 传输用的 MCP_HTTP_PORT 和 MCP_HTTP_HOST。
安装
在 SourceWeft 中
- 打开 控制台中的 Scan Mcp,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
scan-mcp
[CI] [npm version] [node-current] [npm downloads]
Minimal MCP server for scanner capture (ADF/duplex/page-size), batching, and multipage assembly.
Features
- Small, typed MCP server exposing tools for device discovery and scan jobs
- zod-validated inputs; the JSON Schemas in
schemas/document the contract and are contract-tested - Smart device selection (prefers ADF/duplex, avoids camera backends), robust defaults
- Local-first transports: stdio by default to keep everything on-device, optional HTTP for your own network deployments
Note: This package targets Node 22 and Linux SANE backends (scanimage).
Quick Start (local stdio, default)
Add a server entry to your MCP client configuration:
- This invocation runs over stdio for a privacy-first, single-machine setup.
- Call
start_scan_jobwithout adevice_idto auto-select a scanner and begin scanning. - Artifacts are written under
INBOX_DIRper job:job-*/page_*.tiff,doc_*.tiff,manifest.json,events.jsonl. Whencrop_carrier_sheetsis set and a carrier sheet is detected, apage_*.cropped.tiffderivative is also written per affected page.
Streamable HTTP transport
Prefer to attach the scanner to another machine on your network? scan-mcp also supports the
streamable HTTP transport:
- Default port is
3001; setMCP_HTTP_PORTto override (for exampleMCP_HTTP_PORT=3333 scan-mcp --http). - Binds
127.0.0.1by default. SetMCP_HTTP_HOSTto expose it on other interfaces (for exampleMCP_HTTP_HOST=::for all, or a LAN address); the server has no authentication, so only do that on a trusted network. - HTTP responses use server-sent events (SSE) for streaming tool output; clients such as Claude Desktop and Windsurf support this transport.
- There is currently no authentication; widen the bind address only on a trusted internal network.
Install
- Run with npx:
npx scan-mcp(recommended)- The CLI runs a quick preflight check for Node 22+ and required scanner/image tools and prints installation hints if anything is missing.
- See recommended server config above
- Use
npx scan-mcp --httpto launch the streamable HTTP transport when running on another machine. - CLI help:
scan-mcp --help - From source (for development):
npm installnpm run build
- For Cline setup, and other automated agentic installation, see llms-install.md
System Requirements
- Linux with SANE utilities:
scanimage - TIFF tools:
tiffcp(multipage assembly) and ImageMagickconvert(carrier-sheet detection and cropping); preflight requires both
Environment Variables
SCAN_MOCK(default:false): mock SANE calls and generate fake TIFFs for testing.INBOX_DIR(default:scanned_documents/inbox): base directory for job runs and artifacts.SCANIMAGE_BIN(default:scanimage): override the binary path.TIFFCP_BIN/IM_CONVERT_BIN(defaults:tiffcp/convert): multipage assembly and image analysis tools.SCAN_EXCLUDE_BACKENDS(CSV): backends to exclude (e.g.,v4l).SCAN_PREFER_BACKENDS(CSV): preferred backends (e.g.,epjitsu,epson2).PERSIST_LAST_USED_DEVICE(default:true): persist and lightly prefer last used device.LOG_LEVEL(default:info): pino log level.MCP_HTTP_PORT(default:3001): TCP port for the HTTP transport.MCP_HTTP_HOST(default:127.0.0.1): bind address for the HTTP transport.
API
Tools
-
list_devices
- Discover connected scanners with backend details.
- Inputs: none.
-
get_device_options
- Get SANE options for a specific device.
- Inputs:
device_id(string): Target device identifier.
-
start_scan_job
- Begin a scanning job; omitting
device_idtriggers auto-selection and default options. - Inputs (all optional unless noted):
device_id(string)resolution_dpi(integer, 50–1200)color_mode(Color|Gray|Lineart): color_mode defaults to Lineart (document-first); at >= 600dpi it defaults to Color, since high-dpi capture usually means artwork/photos where 1-bit destroys information. Pass color_mode explicitly to override either default; high dpi is the only signal used.source(Flatbed|ADF|ADF Duplex)duplex(boolean)page_size(Letter|A4|Legal|Custom)custom_size_mm{width,height}doc_break_policy{type(page_count|none),page_count}: split the batch into documents ofpage_countpagesoutput_format(string, defaulttiff)tmp_dir(string)crop_carrier_sheets(boolean, defaultfalse): detect carrier-sheet leading-edge band and write cropped page derivatives; raw pages are kept
- Begin a scanning job; omitting
-
get_job_status
- Inspect job state and artifact counts.
- Inputs:
job_id(string)
-
cancel_job
- Request job cancellation; best effort during scan loops.
- Inputs:
job_id(string)
-
list_jobs
- List recent jobs from the inbox directory.
- Inputs (optional):
limit(integer, max 100)state(running|completed|cancelled|error|unknown)
-
get_manifest
- Fetch a job's
manifest.json. - Inputs:
job_id(string)
- Fetch a job's
-
get_events
- Retrieve a job's
events.jsonllog. - Inputs:
job_id(string)
- Retrieve a job's
See JSON Schemas in schemas/ for input shapes. Runtime validation is zod (src/server/register.ts); the schemas document the contract and tests assert against them.
How Selection and Defaults Work
Defaults aim for 300dpi, reasonable color mode, and ADF/duplex when available. Full details on scoring and fallbacks live in docs:
- Selection and defaults:
docs/SELECTION.md
Project Layout
src/mcp.ts— MCP server entry and tool registrationsrc/services/*— hardware interface and job orchestrationschemas/— JSON Schemas documenting the tool contracts (used by tests)docs/— architecture, conventions, and deep dives
Development
npm run dev(stdio MCP server),npm run dev:http(HTTP transport)make verifyruns lint, typecheck, and tests- Conventions:
docs/CONVENTIONS.mdand architecture indocs/BLUEPRINT.md
Roadmap
Tracking ideas and future improvements are documented in docs/ROADMAP.md.
来源:README.md,提交 685772b
工具
0版本历史
1- v0.3.0最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
其他 Scan 集成
scan.mx Email Diagnostics
mx.scan官方发布者
远程 MCP 服务器,让助手对域名执行带评级的邮件送达率与 DNS 检查,涵盖 MX、SPF、DKIM、DMARC、黑名单等。
MTG Trade Scan
fr.mtg-trade
扫描万智牌卡册照片:上传页面图片并生成扫描任务,每天有免费页数,超出后按页付费。

mcp-guard
由 GitHub 账号 diegoperezg7 发布
面向 MCP 服务器的安全扫描器,检查工具投毒、工具遮蔽、权限过大、密钥泄露和传输层缺陷。

PredictionScan
由 GitHub 账号 JordanKarst 发布
衍生预测市场资金流、价格变动、交易者研究与新闻。11个只读工具。AI 翻译

x402-sec-scan
由 GitHub 账号 6mickswagger9 发布
本地 stdio MCP 服务器,为 AI 代理提供 x402 付费 API,通过 CDP facilitator 在 Base 上以 USDC 结算。