scan-mcp
スキャナキャプチャ(ADF/両面/用紙サイズ)、バッチ処理、複数ページの結合のための最小限のMCPサーバーです。
特徴
デバイス検出とスキャンジョブのためのツールを公開する、小規模で型付けされたMCPサーバー
JSON Schemaで検証された入力と、決定的で型付けされた出力
スマートなデバイス選択(ADF/両面を優先し、カメラバックエンドを回避)、堅牢なデフォルト設定
ローカルファーストのトランスポート: デフォルトではstdioを使用してすべてをデバイス上に保持し、独自のネットワーク展開用にオプションのHTTPもサポート
注: このパッケージはNode 22とLinux SANEバックエンド(scanimage)を対象としています。
Related MCP server: MCPOSprint
クイックスタート(ローカルstdio、デフォルト)
MCPクライアント設定にサーバーエントリを追加します:
{
"mcpServers": {
"scan": {
"command": "npx",
"args": [
"-y",
"scan-mcp"
],
"env": {
"INBOX_DIR": "~/Documents/scanned_documents/inbox"
}
}
}
}この呼び出しは、プライバシー優先の単一マシン構成のためにstdio経由で実行されます。
device_idを指定せずにstart_scan_jobを呼び出すと、スキャナが自動選択され、スキャンが開始されます。成果物はジョブごとに
INBOX_DIRの下に書き込まれます:job-*/page_*.tiff、doc_*.tiff、manifest.json、events.jsonl。crop_carrier_sheetsが設定され、キャリアシートが検出された場合、影響を受けるページごとにpage_*.cropped.tiff派生ファイルも書き込まれます。
ストリーミング可能なHTTPトランスポート
スキャナをネットワーク上の別のマシンに接続したい場合、scan-mcpはストリーミング可能なHTTPトランスポートもサポートしています:
scan-mcp --httpデフォルトのポートは
3001です。MCP_HTTP_PORTを設定して上書きします(例:MCP_HTTP_PORT=3333 scan-mcp --http)。デフォルトではすべてのインターフェース(
::)にバインドします。MCP_HTTP_HOSTを設定して制限します(例: リバースプロキシがサーバーの前にある場合はMCP_HTTP_HOST=127.0.0.1)。HTTPレスポンスは、ツール出力のストリーミングにサーバー送信イベント(SSE)を使用します。Claude DesktopやWindsurfなどのクライアントはこのトランスポートをサポートしています。
現在、認証はありません。これは社内LANネットワーク用に意図されています。
インストール
npxで実行:
npx scan-mcp(推奨)CLIはNode 22+と必要なスキャナ/画像ツールの簡単な事前チェックを実行し、不足しているものがあればインストールのヒントを表示します。
上記の推奨サーバー設定を参照してください。
別のマシンで実行する場合は、
npx scan-mcp --httpを使用してストリーミング可能なHTTPトランスポートを起動します。CLIヘルプ:
scan-mcp --helpソースから(開発用):
npm installnpm run build
Clineのセットアップやその他の自動エージェントインストールについては、llms-install.mdを参照してください。
システム要件
SANEユーティリティを備えたLinux:
scanimage(およびオプションでscanadf)TIFFツール:
tiffcp(推奨)またはImageMagickのconvert
環境変数
SCAN_MOCK(デフォルト:false): テスト用にSANE呼び出しをモックし、偽のTIFFを生成します。INBOX_DIR(デフォルト:scanned_documents/inbox): ジョブの実行と成果物のベースディレクトリ。SCANIMAGE_BIN/SCANADF_BIN(デフォルト:scanimage/scanadf): バイナリパスを上書きします。TIFFCP_BIN/IM_CONVERT_BIN(デフォルト:tiffcp/convert): 複数ページ結合ツール。SCAN_EXCLUDE_BACKENDS(CSV): 除外するバックエンド(例:v4l)。SCAN_PREFER_BACKENDS(CSV): 優先するバックエンド(例:epjitsu,epson2)。PERSIST_LAST_USED_DEVICE(デフォルト:true): 最後に使用したデバイスを永続化し、軽く優先します。MCP_HTTP_PORT(デフォルト:3001): HTTPトランスポートのTCPポート。
API
ツール
list_devices
バックエンドの詳細を含む接続済みスキャナを検出します。
入力: なし。
get_device_options
特定のデバイスのSANEオプションを取得します。
入力:
device_id(文字列): 対象デバイスの識別子。
start_scan_job
スキャンジョブを開始します。
device_idを省略すると、自動選択とデフォルトオプションがトリガーされます。入力(特に記載がない限りすべてオプション):
device_id(文字列)resolution_dpi(整数、50〜1200)color_mode(Color|Gray|Lineart): color_modeはデフォルトでLineart(ドキュメント優先)です。600dpi以上ではデフォルトでColorになります。高dpiキャプチャは通常、アートワークや写真を意味し、1ビットでは情報が破壊されるためです。どちらのデフォルトも上書きするにはcolor_modeを明示的に渡します。高dpiのみが使用されるシグナルです。source(Flatbed|ADF|ADF Duplex)duplex(ブール値)page_size(Letter|A4|Legal|Custom)custom_size_mm{width,height}doc_break_policy{type,blank_threshold,page_count,timer_ms,barcode_values}output_format(文字列、デフォルトtiff)tmp_dir(文字列)crop_carrier_sheets(ブール値、デフォルトfalse): キャリアシートの先端バンドを検出し、切り抜いたページの派生ファイルを書き込みます。元のページは保持されます。
get_job_status
ジョブの状態と成果物の数を検査します。
入力:
job_id(文字列)
cancel_job
ジョブのキャンセルを要求します。スキャンループ中はベストエフォートです。
入力:
job_id(文字列)
list_jobs
インボックスディレクトリから最近のジョブを一覧表示します。
入力(オプション):
limit(整数、最大100)state(running|completed|cancelled|error|unknown)
get_manifest
ジョブの
manifest.jsonを取得します。入力:
job_id(文字列)
get_events
ジョブの
events.jsonlログを取得します。入力:
job_id(文字列)
入力の形状については、schemas/のJSON Schemaを参照してください。テストはこれらの契約に対して検証されます。
選択とデフォルトの仕組み
デフォルトは300dpi、適切なカラーモード、利用可能な場合はADF/両面を目指します。スコアリングとフォールバックの詳細はドキュメントに記載されています:
選択とデフォルト:
docs/SELECTION.md
プロジェクト構成
src/mcp.ts— MCPサーバーのエントリポイントとツール登録src/services/*— ハードウェアインターフェースとジョブオーケストレーションschemas/— 検証とテストに使用されるJSON Schemadocs/— アーキテクチャ、規約、詳細な解説
開発
npm run dev(stdio MCPサーバー)、npm run dev:http(HTTPトランスポート)make verifyはlint、型チェック、テストを実行します。規約:
docs/CONVENTIONS.md、アーキテクチャ:docs/BLUEPRINT.md
ロードマップ
アイデアの追跡と今後の改善はdocs/ROADMAP.mdに文書化されています。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceA universal MCP server for document processing, conversion, and automation. Handle PDF, DOCX, HTML, Markdown, and more through a unified API and toolset.1343139MIT
- AlicenseAqualityDmaintenanceAn MCP server that enables users to print markdown tasklists, Notion tasks with QR codes, and arbitrary images directly to ESC/POS thermal printers over USB. It includes specialized tools for task processing, automated card generation, and printer diagnostics.71MIT

polydoc-mcpofficial
AlicenseNot gradedqualityCmaintenanceMCP server that converts HTML or URLs to PDF, captures screenshots, and generates EU-compliant e-invoices (Factur-X/ZUGFeRD).53MIT- AlicenseNot gradedqualityAmaintenanceA full-featured secure MCP server for local file system operations, with built-in image processing, OCR and media tools.Apache 2.0
Related MCP Connectors
MCP server for the PDFGate API. Generate PDFs, manage documents and handle e-signatures.
A paid remote MCP for developer endpoint scanner MCP, built to return verdicts, receipts, usage logs
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jacksenechal/scan-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server