mcpField
D
document-scanner

document-scanner

ローカル
github.com/GuardBeeセキュリティ21 日前に更新

document-scanner について

document-scannerは、PDF、画像、スキャンページ内の個人情報や認証情報を、LLMに渡す前に検出するMCPサーバー兼CLIです。PDFのテキストを読み取り、画像コンテンツにはトルコ語と英語のOCRを利用できます。

主な機能

  1. 01PDF、画像、フォルダーのスキャン
  2. 02PDFテキスト抽出とスキャンページのOCR
  3. 03個人情報と認証情報の検出
  4. 04テキスト、JSON、SARIF形式で結果を出力
  5. 05重要度のしきい値とスキャン上限の設定

活用シーン

  1. 01契約書をLLMに渡す前に検査
  2. 02画像添付内の個人情報をスキャン
  3. 03GitHub Code ScanningでSARIF結果を利用
  4. 04セキュリティプロキシでツール返却文書を検査

MCP 対応

ファイル、フォルダー、Base64データのスキャンと、検出器一覧取得のツールを提供します。@guardbee/mcp-security-proxyから利用し、ツール結果やリソース内の文書を検査することもできます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"guardbee-document-scanner": {
"command": "npx",
"args": [
"-y",
"@guardbee/mcp-document-scanner"
]
}
}
}
起動コマンドnpx -y @guardbee/mcp-document-scanner

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@guardbee/mcp-document-scanner0.3.0

ツール

3

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
ocrbooleanいいえテキストレイヤーのない画像と PDF ページを OCR で読み取ります(デフォルトは true。tesseract.js が必要です)
pathstringはいファイルのパス、またはその中のすべての PDF と画像をスキャンするフォルダーのパス
includearrayいいえオプトイン検出器:ip_address、mac_address、plate_tr
languagesarrayいいえTesseract の言語。デフォルトは ["tur", "eng"] です

詳細

@guardbee/mcp-document-scanner

🇬🇧 英語 | 🇹🇷 トルコ語

npm version npm downloads License: MIT

LLM に渡す前に、PDF、スクリーンショット、スキャンしたページなどのドキュメント内にある個人データや認証情報を検出する MCP サーバー兼 CLI です。プロキシや DLP のテキストチェックでは、PDF の添付ファイルや画像は内容を確認できないデータの塊として扱われますが、このパッケージは内容を読み取ります。まず PDF のテキストレイヤーを読み取り、画像やテキストのない PDF ページには OCR(トルコ語と英語)を使用します。

テレメトリーはデフォルトでオフです。GUARDBEE_TELEMETRY=1 を設定すると、サーバー、ツール、成功の有無、所要時間、およびファイルパスなどの短いパラメーター値を送信します。長い文字列や content、token、password などのフィールドはプレースホルダーに置き換えられます。詳しくは @guardbee/mcp-telemetry をご覧ください。

document ──► type from the bytes (PDF, PNG, JPEG, GIF, WebP, BMP, TIFF, text)
              │
              ├─ PDF page with a text layer ──► text
              ├─ PDF page without one ─────► render (@napi-rs/canvas) ──► OCR (tesseract.js)
              └─ image ─────────────────────► OCR (tesseract.js)
                                                 │
                     guard-core detectors ◄──────┘  TC Kimlik No, VKN, IBAN, card (checksums),
                                                    passport, SGK, MERSİS, birth date, address,
                                                    e-mail, KEP, phone, 22+ credential formats

インストール

npx -y @guardbee/mcp-document-scanner scan ./contracts      # text layers only
npm i -g @guardbee/mcp-document-scanner tesseract.js @napi-rs/canvas   # with OCR

OCR は任意です。画像の読み取りには tesseract.js を使用し、スキャンした PDF ページのレンダリングには @napi-rs/canvas(プリビルド済みで、コンパイラーは不要)を使用します。これらがなくても、スキャナーはすべての PDF テキストレイヤーを読み取り、読み取れなかったページや画像を示します。Tesseract は初回使用時に tur と eng の言語データ(約 10 MB)を ~/.cache/guardbee/tessdata(または $XDG_CACHE_HOME/guardbee/tessdata)にダウンロードします。作業ディレクトリには保存されません。オフラインで使用する場合は、<lang>.traineddata をフォルダーに配置し、--lang-path を渡してください。

MCP ツール

ツール内容
scan_documentファイル、またはフォルダー内のすべての PDF と画像をスキャンします
scan_base64base64 で指定したバイト列(添付ファイルや、ツールが返した画像など)をスキャンします。種類はバイト列から判定します
list_detectors実行される個人データおよび認証情報の検出器を表示します
{ "mcpServers": { "documents": { "command": "npx", "args": ["-y", "@guardbee/mcp-document-scanner"] } } }

CLI

guardbee-document-scanner scan <file|folder> [--format=text|json|sarif] [--fail-on=any|critical|high|medium|low|none]
                               [--no-ocr] [--lang=tur,eng] [--lang-path=<dir>] [--cache-path=<dir>] [--include=ip_address,plate_tr]
                               [--max-pages=50] [--max-files=500] [--text]
⚠️  Found 3 item(s) in 1 document(s) (812ms)
   Critical: 0  High: 2  Medium: 1  Low: 0

contracts/acme.pdf (pdf, 2 page(s) read)
  [HIGH] tc_kimlik (personal) — page 1, pdf-text: 10*******46
  [HIGH] iban (personal) — page 2, pdf-ocr: TR************26
  [MEDIUM] email (personal) — page 2, pdf-ocr: al***********om

検出結果には最初と最後の文字だけが表示されます。--format=sarif を指定すると、GitHub Code Scanning 用にページを行として扱う SARIF 2.1.0 を出力します。--fail-on 以上のものが検出された場合、終了コードは 1 です。

セキュリティプロキシでの使用

@guardbee/mcp-security-proxy は、このパッケージを interceptors.documents に使用します。ツールの結果やリソースのデータに含まれる画像と埋め込み PDF は、モデルに渡される前にスキャンされ、個人データや認証情報を含むドキュメントは破棄される(block)か、ログに記録されます(warn)。

interceptors:
  documents: { enabled: true, action: block, ocr: true, maxBytes: 26214400 }

制限事項

  • 種類はバイト列から判定し、ファイル名や MIME タイプからは判定しません。
  • デフォルトでは、ドキュメントあたり 25 MB、50 ページまでです(maxBytes、--max-pages)。
  • OCR の品質はスキャンの状態に左右されます。写真がぼやけていると数字を読み取れず、チェックサム検証に失敗することがあります。そのような値は報告されません。誤検知を避けるため、検出漏れを許容する設計です。
  • 名前、署名、手書き文字は検出されません。

ライセンス

MIT

フィードバック

質問、アイデア、または誤検知がありましたら、GitHub Discussions でスレッドを作成するか、issue を作成してください。GuardBee が役に立った場合は、リポジトリに ⭐ を付けていただけると、ほかの人にも見つけてもらいやすくなります。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。