mcpField
R
redact-pdf-mcp

redact-pdf-mcp

ローカル
github.com/dambuchsセキュリティ12 週間前に更新

redact-pdf-mcp について

redact-pdf-mcpは、契約書、身分証、明細書などのPDFや画像から個人情報を完全に除去するMCPサーバーです。OCRとエンティティ検出に加え、一貫したタグによる匿名化に対応し、隠すだけでなく元のテキスト層も削除します。

主な機能

  1. 01文書内の機微なテキストを完全に除去
  2. 02スキャン文書や画像のOCR
  3. 038種類の個人情報エンティティを検出
  4. 04一貫したタグと対応表による置換
  5. 05必ず除去・除外する語句の指定

活用シーン

  1. 01契約書を外部へ送る前に個人情報を除去
  2. 02文書を匿名化してからテキストをAIに渡す
  3. 03会社名を残して明細書をまとめて処理
  4. 04出力前に検出箇所を人が確認

MCP 対応

MCPサーバーとして、文書の匿名化、ジョブ状態確認、出力取得、デモ、名前の復元を行うツールを提供します。ローカルのSTDIOとステートレスなStreamable HTTPに対応し、リモートではリクエストごとにAPIキーを渡します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"dambuchs-redact-pdf": {
"command": "npx",
"args": [
"-y",
"redact-pdf-mcp"
]
}
}
}
起動コマンドnpx -y redact-pdf-mcp

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

パッケージ
npmredact-pdf-mcp0.4.1

ツール

6

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

パラメーター型必須説明
file_pathstringはいこのマシン上のファイルの絶対パス。PDF、JPEG、PNG を受け付けます。画像は事前に変換せず、そのまま渡してください。このサーバーはローカルで実行されるため、ファイルを直接読み取ります。この引数にファイルの内容を貼り付けないでください。
retentionenumいいえ"ephemeral"(デフォルト)は処理後に原本を削除し、出力のみを短期間保持します。"studio" は原本と検出されたマスクを保持し、redact-pdf.ai で人が確認・調整してからエクスポートできるようにします。担当者の承認が必要な重要文書に使用してください。ephemeral | studio
output_pathstringいいえこのマシン上で墨消し済み PDF を書き込む場所です。デフォルトでは元のファイルと同じ場所に、入力パスの末尾に "-redacted" を付けて保存します。出力は常に PDF なので、画像を入力した場合も .pdf ファイルが生成されます。元のファイルは変更されません。
pii_categoriesarrayいいえ墨消しするエンティティの種類です。アカウントのデフォルトを使用するには省略してください。通常はこれがユーザーの希望です。空のリストを渡すと「何も墨消ししない」ことになり、未処理のファイルが返されるため、渡さないでください。有効な値:Person、Email、PhoneNumber、Address、Organization、Date、IBAN、CreditCard。
idempotency_keystringいいえ省略可能です。デフォルトでは、ファイルのバイト列と設定からキーが生成されるため、同一の呼び出しを繰り返すと、再度墨消し(および課金)されずに同じジョブが返されます。同じドキュメントを別個にもう一度墨消しすると明確に決めた場合に限り、ここに異なる値を渡してください。
timeout_secondsintegerいいえ完了まで待機する時間(秒)。デフォルトは 300、最大は 900 です。タイムアウト後もジョブはサーバー側で実行され続け、get_job_status で再開できます。
pii_excluded_termsarrayいいえ個人情報として検出されても絶対に墨消ししてはならない語句です。通常は、自社名、公開連絡先住所、または文書の宛先です。
pii_included_termsarrayいいえモデルが個人情報と見なさない場合でも、必ず墨消しする語句です。プロジェクトのコードネーム、社内参照情報、特定の案件番号などです。単語全体に対して大文字と小文字を区別せずに照合します。競合する場合は除外語句より優先されます。

詳細

PDF Redact MCP サーバー

PDF から PII を恒久的に墨消しする MCP サーバーです。 エージェントに PDF を渡すと、機密テキストが ファイルから削除された PDF が返されます。誰でも選択、コピー、削除できる黒い長方形で覆うのではありません。

多くの「墨消し」MCP サーバーは、プロンプトのテキストから PII を取り除きます。このサーバーは実際の文書を受け取り、墨消し済みの実際の文書を返します。

匿名化にも対応しています。 mode: "pseudonymize" を指定すると、人物、企業、住所がそれぞれ [Person 1] のような一貫したタグに置き換わり、黒塗りにせず文書の読みやすさを保てます(契約書を ChatGPT や Claude に貼り付ける前など)。タグと元の情報を対応付けた表も取得でき、名前を復元できます。

npm npm downloads No AI training EU & Swiss hosted MCP registry License: MIT

redact-pdf-mcp MCP server

claude mcp add redact-pdf -- npx -y redact-pdf-mcp

次のように依頼してください。「~/Documents/contract.pdf の個人情報を墨消しして」、または 「~/Documents/contract.pdf をプレースホルダーで匿名化して、AI に貼り付けられるようにして」。


お客様のデータ

エージェントに保護させる文書を送信するため、まずはデータの取り扱いについて説明します。

  • AI モデルのトレーニングには一切使用されません — 当社のモデルはもちろん、Microsoft のモデルや他社のモデルにも使用されません。OCR と PII 検出に使用する Azure AI サービスではコンテンツのログ記録を無効にしているため、文書の内容が保持されたり、モデルの改善に使用されたりすることはありません。
  • Microsoft Azure 上で EU とスイス国内で処理されます。
  • 転送中は TLS 1.2 以降で、保存中は AES-256 で暗号化されます。
  • デフォルトの ephemeral 保持設定では、処理後に元の文書は削除されます。 墨消し済みの出力はアカウントの保持期間(デフォルトでは 14 日間、変更可能)保持されます。また、いつでも DELETE /v1/jobs/{job_id} で完全に削除できます。
  • 認証済みのインフラストラクチャです。 Azure は SOC 2 Type II、ISO 27001、ISO 27017、ISO 27018 の認証を取得しており、Microsoft の BAA に基づき HIPAA の対象要件を満たしています。Redact PDF AI 自体は、これらのフレームワークに関する独立監査を受けていません。法務、医療、財務のチームが独自のコンプライアンス体制のもとで利用できるように構築されています。
  • MCP サーバー独自のテレメトリ送信はありません — サーバーがローカルで行う処理をご覧ください。

詳細:redact-pdf.ai/security · プライバシーポリシー

エージェント自身に墨消しさせないのはなぜですか?

エージェントはテキスト内の名前を見つけられます。しかし、それだけで PDF を安全な状態にすることはできません。

  • 黒い長方形は墨消しではありません。 テキストの上に長方形を描いても、下にはテキストレイヤーが残ります。誰でも選択、コピー、抽出できます。このサーバーは各ページをラスタライズしてテキストレイヤーとメタデータを削除するため、復元できる情報は残りません。
  • スキャン文書には検索できるテキストがありません。 契約書、身分証明書、明細書は画像であることがよくあります。まず 100 以上の言語に対応した OCR を実行し、読み取った内容を対象に PII を検出します。
  • 検出には正規表現ではなくモデルを使用します。 名前、住所、組織名には決まったパターンがありません。検出器は PII 専用に設計されており、残りは常時墨消しリストと墨消し対象外リストで対応できます。

例

サーバーをインストールすれば、そのまま使えるプロンプト:

  • 「代理店に送る前に、~/Documents/lease.pdf の個人データを墨消ししてください。」
  • 「~/Downloads/statements 内のすべての PDF から名前、メールアドレス、IBAN を墨消しし、会社名は表示したままにしてください。」 — エージェントは会社名を pii_excluded_terms に渡し、redact_pdf を使って並列処理します。
  • 「顧客チケットのスクリーンショットです。電話番号と住所を削除して、添付できる PDF を作成してください。」 — 画像をそのまま渡せるため、変換は不要です。
  • 「~/Documents/contract.pdf で redact-pdf のデモを試して、どのように動作するか確認してください。」 — キー不要で、最初のページのみです。

API キーなしで試す

サーバーにはキー不要のツール try_demo が付属しています。ファイルを渡すと、実際に最初のページを墨消しし、キーやアカウントなしで、検出した内容をエージェントに伝えます:

あなた: redact-pdf サーバーの try_demo ツールを使って、~/Documents/contract.pdf を処理してください。

Claude: contract.pdf(4 ページ)の最初のページを墨消ししました。そのページから削除した個人データ:人物、メールアドレス。墨消し済みのページはこちらです(リンクの有効期間は 14 日間)。4 ページすべてを墨消しするには、無料アカウントで最初の文書(最大 5 ページ)をカード登録なしで完全に処理できます。

ファイルを指定せずに呼び出すと、代わりに組み込みの合成サンプルを実行します。これは設定不要の接続確認です。インストールせずにターミナルから実行する場合も同じです:

curl https://www.redact-pdf.ai/v1/demo
curl -F [email protected] https://www.redact-pdf.ai/v1/demo/redact

できること

  • 恒久的で不可逆な墨消し。 マスクで覆うのではなく、元のテキストを削除します。コピー&ペースト、テキスト抽出、PDF エディターの「オブジェクトを削除」でも復元できません。
  • PDF と画像に対応。 PDF、JPEG、PNG を渡せます。写真やスクリーンショットは事前に変換する必要はなく、どちらの場合も出力は墨消し済み PDF です。
  • スキャン文書に対応。 OCR により、画像のみの PDF や文書の写真も処理できます。
  • エンティティ検出は 100 以上の言語に対応しています。
  • 8 種類のエンティティ:人物、メールアドレス、電話番号、住所、組織、日付、IBAN、クレジットカードに加え、常に墨消しする用語と墨消ししない用語を独自に指定できます。
  • EU/スイスで処理され、AI のトレーニングには使用されません。データについてをご覧ください。
  • 黒塗りではなく仮名化。 mode: "pseudonymize" は各エンティティを一貫したタグ([Person 1]、[Org 1]、[Address 1] など)に置き換えます。すべてのページと名前の表記揺れで同じタグが使われるため、同僚や別の AI にとっても文書を読みやすいまま保てます。テキストは覆われるのではなく削除され、redact_pdf_and_wait はタグと元のテキストの対応表(CSV)も返します。
  • 必要に応じて人が確認。 retention: "studio" を設定すると検出されたマスクが保持され、エクスポート前に人が確認・調整できます。

インストール

Claude Code
claude mcp add redact-pdf --env REDACT_PDF_API_KEY=your_key -- npx -y redact-pdf-mcp
Claude Desktop

claude_desktop_config.json:

{
  "mcpServers": {
    "redact-pdf": {
      "command": "npx",
      "args": ["-y", "redact-pdf-mcp"],
      "env": { "REDACT_PDF_API_KEY": "your_key" }
    }
  }
}
Cursor

.cursor/mcp.json:

{
  "mcpServers": {
    "redact-pdf": {
      "command": "npx",
      "args": ["-y", "redact-pdf-mcp"],
      "env": { "REDACT_PDF_API_KEY": "your_key" }
    }
  }
}
VS Code
code --add-mcp '{"name":"redact-pdf","command":"npx","args":["-y","redact-pdf-mcp"],"env":{"REDACT_PDF_API_KEY":"your_key"}}'

redact-pdf.ai/sign-up で API キーを取得してください。無料アカウントでは、最初の文書(最大 5 ページ)をカード情報なしで完全に墨消しできます。キーがなくても try_demo は引き続き動作します。それ以外の機能では、エージェントからキーを求められます。

キーを環境変数で渡せないクライアント(Cowork は、設定でプラグイン設定を参照しているプラグイン MCP サーバーを破棄するため、Claude プラグインからキーが渡されません)では、代わりにキーを保存できます。エージェントにキーを渡すと、set_api_key が API でキーを確認し、クライアントが MCP エリシテーションに対応している場合は、アカウント(メールアドレスとキーの末尾 4 文字)の確認を求めます。確認済みのキーは ~/.config/redact-pdf-mcp/key(または $XDG_CONFIG_HOME/redact-pdf-mcp/key)に書き込まれ、読み取り可能なのはユーザー本人だけです。同じ確認なしに置き換えられることはありません。エリシテーションに対応していないクライアントでは、そのセッション中に限りメモリ上にキーが保存されます。まだ有効なキーが上書きされることはなく、各ツールの結果にはアカウント名が示されます。これにより、処理済みの文書に埋め込まれたキーが、ファイルを知らないうちに別の場所へ誘導するのを防ぎます。ツールからキーが返されることはありません。ファイルを一度だけ自分で書き込むこともできます(1 行のコマンドについてはプラグインの README を参照してください)。REDACT_PDF_API_KEY が設定されている場合はそちらが優先されます。空の値、または ${user_config.api_key} のような置換されていないプレースホルダーは、未設定として扱われます。

ツール

ツール機能
redact_pdf_and_waitまずはこちらを使ってください。 アップロード、墨消し、完了まで待機し、完成した PDF を返します。1 回の呼び出しで実行します。
redact_pdfジョブを開始してすぐに返します。複数の文書を並列に墨消しする場合に使います。
get_job_statusジョブの状態をポーリングします:uploaded → analyzing → redacting → redacted | error。
download_redacted1 つの文書の墨消し済み出力を取得します。
download_correspondence仮名化した文書(mode: "pseudonymize")のタグと元の値の対応表を取得します。
try_demoキー不要です。ファイルがある場合は、最初のページを実際に墨消しします。ファイルがない場合は、組み込みのサンプルを実行します。
restore_namesローカルのみ。 仮名化したテキストからエージェントが作成した .md、.txt、.docx に実名を戻します。出力先と件数を返しますが、名前は返しません。
get_account_status大量の文書を処理する前に、API キーが有効か確認し、アカウントを表示します。
set_api_keyローカルのみ。 会話でユーザーから渡されたキーを確認し、このマシン上でユーザー本人のみが読み取れるように保存します。REDACT_PDF_API_KEY を渡せないクライアント向けです。キーは返しません。

いずれかの墨消しツールで指定できるルール:

引数効果
pii_categories対象とするエンティティの種類を限定します。省略すると、アカウントの既定値が使われます。
pii_included_termsPII として検出されなくても、指定した語句を必ず墨消しします(コードネーム、事件番号など)。
pii_excluded_terms検出された場合でも、指定した語句を墨消ししません(自社名など)。
retentionephemeral(既定値)は処理後に元の文書を削除します。studio は人による確認のためにマスクを保持します。
moderedact(既定値)は黒い四角形を描画します。pseudonymize は [Person 1] などの一貫したタグを描画し、対応表(stdio:PDF の隣に *-correspondence.csv として書き込み、リモート:correspondence_csv としてインラインで返します)と、タグを置き換えずに挿入した文書テキスト(document_text、または 32 KB を超える場合は document_text_path / document_text_url)を返します。try_demo でも使用できます。

匿名化 → AI に作業させる → 名前を元に戻す

ローカルサーバーを使えば、モデルに名前を見せることなく一連の処理を完了できます。

  1. mode: "pseudonymize" を指定して redact_pdf_and_wait を実行すると、匿名化された PDF、ディスク上の対応表、そして document_text が返されます。document_text は、すべての名前がタグに置き換えられた文書のテキストです。エージェントはこのテキストを基に作業します。
  2. エージェントは、タグをそのまま保持して、回答(要約、メモ、レター)を .md、.txt、または .docx ファイルに書き込みます。
  3. そのファイルと correspondence_path を指定して restore_names を実行すると、実名に戻した <name>-restored.<ext> が書き込まれ、パスと件数のみが返されます。

エージェントは最初に元の文書を開いてはならず、その後に対応表の CSV や復元後のファイルを開いてもなりません。これらのいずれかを読み取ると、個人データが会話に再び取り込まれるためです。サーバーの指示とツールの説明には、このルールが明記されています。

リモートサーバー

このパッケージには、API キーを環境変数ではなくリクエストごとに渡す、ホスト環境での利用向けのストリーミング可能な HTTP サーバーも含まれています。

npx redact-pdf-mcp-http     # listens on :8080/mcp
POST /mcp
X-API-Key: your_key          (or: Authorization: Bearer your_key)

このサーバーはステートレスです。セッションも保存されたキーもなく、リクエスト間で保持される情報はありません。そのため、各リクエストで短時間だけ存続するサーバーインスタンスが使われ、ある呼び出し元のキーが別の呼び出し元のツール呼び出しに漏れることはありません。

ハンドシェイク、tools/list、try_demo はキーなしで動作するため、サインアップする前にクライアントから接続してサーバーを確認できます。それ以外のすべてのツールは、WWW-Authenticate チャレンジを伴う 401 を返します。

文書は file_base64 として渡します(リモートサーバーはファイルシステムにアクセスできません)。

リモートサーバーでは、URL による文書の取得はデフォルトで無効です。アドレスチェックは実際に行われます。ループバック、プライベート、またはリンクローカルアドレスに解決される URL は拒否され、リダイレクトのたびに再チェックされます。ただし、そのチェック後にソケットがホスト名をもう一度解決するため、TTL の短い DNS リバインディング攻撃者は、サーバーにあるアドレスを検証させた後、別のアドレスに接続させることができます。これを防ぐには接続先を検証済みアドレスに固定する必要がありますが、まだ実装されていません。そのため、インターネットから到達できるサーバーでは、この機能自体を提供していません。

REDACT_PDF_ENABLE_URL_INPUT=1 を設定すると file_url を受け付けます。ただし、サーバーの前段に独自の送信トラフィック制御(ネットワークポリシーまたは許可リスト方式のプロキシ)を設けている場合に限ってください。 REDACT_PDF_ALLOW_PRIVATE_URLS=1 を設定すると、プライベートアドレスも許可されます。内部ストレージから取得するセルフホストインスタンス向けの設定です。

stdio モードには影響しません。stdio モードは自身のマシン上で実行されるため、URL の取得によって、すでに持っていない権限が付与されることはありません。

変数デフォルト用途
REDACT_PDF_API_KEY—API キー(stdio モード専用。リモートサーバーではリクエストごとに指定します)。空、または ${...} は未設定として扱われ、set_api_key で保存したキーが代わりに使用されます。
REDACT_PDF_BASE_URLhttps://www.redact-pdf.ai接続先の API ホストを変更します。
PORT8080HTTP サーバーのポートです。
REDACT_PDF_MCP_PATH/mcpHTTP エンドポイントのパスです。
REDACT_PDF_ENABLE_URL_INPUT未設定リモートサーバーで file_url を受け付けます。デフォルトでは無効です。上記の DNS リバインディングに関する注意をご覧ください。
REDACT_PDF_ALLOW_PRIVATE_URLS未設定セルフホストの場合のみ:file_url がプライベートアドレスにアクセスすることを許可します。インターネットから到達できるサーバーでは絶対に設定しないでください。

サーバーがローカルで行うこと

  • テレメトリーはありません。 サーバーはツールの説明にある API 呼び出しだけを行い、それ以外は何もしません。分析、エラー報告、ホームへの通信はありません。
  • ステートレスです。 データベース、キャッシュ、ディスクへの書き込みはありません。ただし、指定したパスに指定したファイルを書き込む場合と、set_api_key の呼び出し時にキー ファイルを書き込む場合を除きます。
  • 元のファイルはお客様のものです。 stdio モードでは入力ファイルを読み取りますが、変更はしません。デフォルトの ephemeral 保持設定では、処理後に API が元のファイルを削除します。
  • デフォルトで冪等です。 冪等性キーはファイルのバイト列と墨消し設定から生成されるため、エージェントが同じ呼び出しを再試行しても、二度墨消しして二重に課金されることなく、同じ ジョブが返されます。このキャッシュは 24 時間保持されます。同じファイルを別途もう一度墨消しする場合は、明示的に idempotency_key を渡してください。
  • 上書きはしません。 stdio モードでは墨消し済み PDF をアトミックに書き込み、既存ファイルを上書きしないようツールが拒否します。

プライバシーポリシー

ポリシー全文は redact-pdf.ai/privacy にあります。ウェブサイト、アプリ、このサーバーが呼び出す API が対象です。概要は次のとおりです。

  • 収集する情報。 送信したドキュメント、その処理メタデータ(ステータス、ページ数、選択した PII カテゴリー)、墨消しマスク、API キーを使用する場合はアカウント識別子とメールアドレス、お支払いの場合は請求データです。この MCP サーバー自体は何も収集せず、テレメトリーも送信しません。
  • 利用目的。 ご依頼の墨消しの実行、およびアカウントの運用、セキュリティ確保、請求です。ドキュメントは OCR と PII 検出のみに使用され、AI モデルのトレーニングには一切使用されません。
  • 保存場所。 EU およびスイスの Microsoft Azure で、転送中(TLS 1.2 以降)および保存時(AES-256)に暗号化されます。
  • 共有先。 ドキュメントは Microsoft Azure(ストレージ、OCR、PII 検出)のみに送信されます。アカウントデータと請求データは Clerk および Stripe に送信されます。ファイル名を含む場合がある内部運用アラートは、チームの Slack に送信されます。ポリシーには、すべてのサブプロセッサーが記載されています。
  • 保存期間。 デフォルトの ephemeral 保持設定では、処理後に元のファイルが削除されます。墨消し済みの出力はアカウントの保持期間(デフォルトでは 14 日間)に従い、いつでも削除できます。キー不要の try_demo に送信したファイルは、最初のページの墨消し後に削除され、そのページは 14 日間保持されます。
  • お問い合わせ。 プライバシーに関するご要望やご質問は [email protected] までご連絡ください。

制限事項

  • PDF は 50 MB、画像は 10 MB、1 ジョブあたり 100 ファイルまでです。
  • 入力は PDF、JPEG、PNG で、出力は常に PDF です。それ以外の形式(DOCX、TIFF、HEIC)は、事前に PDF に変換してください。
  • リモートサーバーでは、base64 によってドキュメントのサイズが約 3 分の 1 増えるため、大きなファイルには file_url を使用してください。
  • 空の pii_categories リストを渡すと拒否されます。API では空のリストは「何も墨消ししない」という意味になり、未変更のファイルが墨消し済みとして返されるためです。アカウントのデフォルト設定を使用するには、この引数を省略してください。
  • 無料の最初のドキュメント以降は、プランの利用枠とクレジットパックに基づいてページ単位で課金されます。quota_exceeded エラーが表示された場合は、残高を追加してください。ツールはエージェントに再試行しないよう指示します。

開発

npm install
npm run build
npm test                 # offline unit + tool tests
npm run test:integration # hits the live keyless demo endpoint; no key needed

リンク

墨消し品質、請求、またはアカウントに関するサポートのお問い合わせは [email protected] までお送りください。GitHub の issue は、この MCP サーバー自体に関する内容にご利用ください。

MIT ライセンスです。

コメント

MCP は初めてですか?

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

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