← 返回目录
S

Scan MCP

社区
通过 SANE 在 Linux 上进行扫描仪发现和批量捕获的 MCP 服务器
GitHub 源仓库 ↗
★ 6 Stars 分类 · 文件系统 热门 源版本 e7a6fa110276

FMRS 53/100 · D — 查看 FMRS 评分方法 →

scan-mcp 是一个极简的 MCP 服务器,提供通过 SANE (scanimage) 控制扫描仪的工具。它支持设备发现、ADF/双面扫描、页面大小选择、文档拆分政策、多页 TIFF 组装以及工件管理。它专为 Linux 和 Node 22 设计,默认使用 stdio 传输以保护隐私,也可选择 HTTP 传输。输出文件存储在指定的收件箱目录中。

工具能力

list_devices
列出已连接的扫描仪及其后端详细信息。
get_device_options
获取特定扫描仪的 SANE 选项,以便在启动作业前进行配置。
start_scan_job
开始扫描作业;如果不提供设备 ID,则自动选择扫描仪并使用最佳默认设置。支持 ADF/双面、分辨率、颜色模式、页面大小、文档拆分、输出格式和裁剪载体页。
get_job_status
检查作业的状态和生成的文件数量。
cancel_job
请求取消正在运行的作业(尽力而为)。
list_jobs
列出收件箱中的最近作业,可按状态和数量过滤。
get_manifest
获取作业的 manifest.json 文件。
get_events
获取作业的 events.jsonl 日志。

安装接入

  1. 确保系统满足要求:Node 22+,Linux 且装有 SANE 工具 (scanimage/scanadf),并有 TIFF 工具 (tiffcp 或 ImageMagick convert)。
  2. 如 README 所示,在 MCP 客户端配置中添加服务器条目(例如对于 Claude Desktop,使用 npx -y scan-mcp)。
  3. 配置环境变量,如 INBOX_DIR(输出目录)和任何扫描偏好(SCAN_PREFER_BACKENDS 等)。
  4. 运行客户端并测试 list_devices 以确保扫描仪可见。
claude_desktop_config.json
{
  "mcpServers": {
    "scan": {
      "command": "npx",
      "args": [
        "-y",
        "scan-mcp"
      ],
      "env": {
        "INBOX_DIR": "~/Documents/scanned_documents/inbox"
      }
    }
  }
}

选型与风险

适合谁

  • Linux 用户使用 SANE 兼容扫描仪
  • 需要本地、隐私优先的扫描自动化(stdio)
  • 希望通过可编程工具实现批量和多页扫描的开发者或高级用户

不适合谁

  • Windows 或 macOS 用户(仅 Linux)
  • 依赖网络认证或安全传输的用户(HTTP 无认证)
  • 需要相机或非 SANE 扫描后端的用户(虽然会尝试避免此类设备)

所需权限

  • 执行 scanimage/scanadf 命令所需系统权限
  • 对 INBOX_DIR 的写入访问权限(默认:scanned_documents/inbox)
  • 能够访问临时目录和输出文件的文件系统权限
  • 可选:如果使用 HTTP 传输,需要网络权限和 TCP 端口访问

风险与副作用

  • HTTP 传输无内置认证,仅适用于可信内部网络
  • 扫描失败可能导致数据丢失或不完整;应启用任务取消和状态监控
  • 错误的设备选项或高分辨率可能导致大量磁盘空间的使用
  • 外部命令依赖:缺少工具或 SANE 配置不当会导致服务器不可用

常见排障

  1. 使用 scanimage -L 检查扫描仪是否被识别
  2. 验证 scanimage、tiffcp/convert 已安装且可执行
  3. 检查 INBOX_DIR 是否存在且可写
  4. 查看服务端日志或事件以获取错误详情

使用场景

自动化文档扫描到本地收件箱目录
批量扫描多页文档(自动文档进纸器/双面)
通过载体纸检测自动裁剪扫描页
将扫描作业集成到 AI 工作流中

支持客户端

Claude Desktop完整支持