mcpField
P
PDF Form Proof

PDF Form Proof

ローカル
github.com生産性02 日前に更新

PDF Form Proof について

PDF Form Proofは、AcroForm PDFに値を入力し、レンダリングしたページ上で値が見えるかを確認します。繰り返しフォームを扱う組織や運用担当者向けで、保存データの確認に加えてOCRで表示内容を検証します。

主な機能

  1. 01入力可能なフィールドと値の確認
  2. 02元ファイルを上書きしないフォーム入力
  3. 03OCRによる描画後の値の検証
  4. 04SHA-256による出力ファイルの指紋生成

活用シーン

  1. 01助成金や取引先の定型フォームへの入力
  2. 02必須の値がページに表示されるか確認
  3. 03提出前のフォーム出力の確認

MCP 対応

PDFの検査、入力、検証、ハッシュ計算のツールをMCPクライアントに提供します。ページをレンダリングし、OCRで値が見えるかを判定します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"essencealignment-pdf-form-proof": {
"command": "uvx",
"args": [
"pdf-form-proof"
]
}
}
}
起動コマンドuvx pdf-form-proof

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

パッケージ
pypipdf-form-proof0.1.1

ツール

4

掲載時のツール一覧 · 6 日前に更新

パラメーター型必須説明
pdf_pathstringはい

詳細

pdf-form-proof

入力可能な PDF フォームに記入し、すべての値が実際にページ上に表示されることを確認します。

mcp-name: io.github.EssenceAlignment/pdf-form-proof

PDF 内のデータに値が入っていても、ユーザーが見たり、印刷したり、アップロードしたりするページには何も表示されなかったり、途中で切れて表示されたりすることがあります。ほとんどのフォームツールは「フィールドに値を設定した」ところで処理を終えます。このツールはさらに処理を続け、ページをレンダリングして OCR(光学文字認識。画像から文字を読み取るソフトウェア)で読み取り、ファイルに保存されたテキストと比較します。各値には VISIBLE、INVISIBLE、RENDER-ONLY、MISSING のいずれかの判定が返されます。

MCP サーバーとして(MCP(Model Context Protocol)は、Claude などの AI アプリが外部ツールを呼び出すためのプラグイン標準です)、Claude プラグインとして、Gemini CLI 拡張機能として、または通常のコマンドラインツールとして動作します。

このツールの機能

ツール機能ファイルを変更しますか?
pdf_form_inspect入力可能なフィールドをすべて一覧表示します。正確な名前、種類、現在の値、必須フラグ、および各チェックボックスやラジオボタンをチェックする値を確認できますいいえ
pdf_form_fill正確な名前でフィールドに入力し、新しい PDF を書き込みます。フォームにない名前が 1 つでもある場合は、入力全体を拒否します。ソースは変更せず、既存のファイルも上書きしません。新しいファイルの SHA-256 を返し、すべてのテキスト値を読み戻します新しいファイルを 1 つ書き込みます
pdf_form_verifyページをレンダリングして OCR で読み取り、各値を判定します。ページの特定の領域に限定できるため、同じ値が別の場所にあっても合格することはありませんいいえ
pdf_sha256ファイルの SHA-256 フィンガープリントを返し、生成された内容を正確に記録できますいいえ

すべてのツールには MCP アノテーションが付与されており、4 つすべてで readOnlyHint と destructiveHint が設定されています。

対象ユーザー

同じ公的な PDF に繰り返し記入するすべての方が対象です。小規模な非営利団体や地域団体(IRS W-9 などのベンダーフォーム、助成金や資金提供者のフォーム、プログラムの受付・同意フォーム)、オペレーション担当者、そして入力の一部が欠けたり見えなかったりすることを隠さずに、AI アシスタントでフォームに記入したい開発者が含まれます。

インストール

Python 3.10 以降と uv(https://docs.astral.sh/uv/)が必要です。verify ツールには、次の無料プログラムも必要です。

  • macOS:brew install poppler tesseract
  • Debian または Ubuntu:sudo apt install poppler-utils tesseract-ocr
Claude Desktop(MCP サーバー)

claude_desktop_config.json に次の内容を追加します。

{
  "mcpServers": {
    "pdf-form-proof": {
      "command": "uvx",
      "args": ["pdf-form-proof"]
    }
  }
}

または、最新の GitHub リリースから .mcpb ファイルをインストールします。ダブルクリックするか、Settings > Extensions > Advanced settings > Install Extension を選択してください。

Claude Code(プラグイン)
claude plugin marketplace add EssenceAlignment/pdf-form-proof
claude plugin install pdf-form-proof@pdf-form-proof
Gemini CLI(拡張機能)
gemini extensions install https://github.com/EssenceAlignment/pdf-form-proof
コマンドライン
uvx --from pdf-form-proof pdf-form-inspect form.pdf
uvx --from pdf-form-proof pdf-form-fill form.pdf filled.pdf values.json
uvx --from pdf-form-proof pdf-form-verify filled.pdf --require "Sample Community Food Bank"

values.json では、正確なフィールド名(pdf-form-inspect で取得)と値を対応付けます。

{
  "topmostSubform[0].Page1[0].f1_01[0]": "Sample Community Food Bank",
  "topmostSubform[0].Page1[0].Boxes3a-b_ReadOrder[0].c1_1[0]": "/1"
}

テキストフィールドには文字列を指定します。チェックボックスまたはラジオボタンには、オン状態の値(inspect で表示される値。例:「/1」や「/Yes」)または、クリアする場合は空文字列を指定します。

終了コード:0 は成功、1 は検出事項あり(verify で表示されない値が見つかった、または入力後に値を読み戻せなかった)、2 は拒否(不明なフィールド名、ファイルの欠落、出力先ファイルの存在、または tesseract などのツールの失敗)を示します。

例

$ pdf-form-verify filled.pdf --require "Sample Community Food Bank" --require "Sample Pantry Program"
PDF FORM PROOF - legibility check  verdict: PASS
  file: filled.pdf  page 1 at 300 dpi  scope: whole page
  VALUE                       SOURCE    TEXT  RENDER  VERDICT
  Sample Community Food Bank  required  yes   yes     VISIBLE
  Sample Pantry Program       required  yes   yes     VISIBLE
  limit: legibility only; says nothing about whether values are correct

制限事項(必ずお読みください)

  • AcroForm フォームのみ対応しています。XFA のみのフォーム(Adobe LiveCycle の動的フォーム)は検出して拒否し、入力しません。
  • finalize は XFA パケットと NeedAppearances フラグを削除し、ビューアーが独自の外観ストリームから値を描画するようにします。フォームをフラット化するわけではなく、フィールドは編集可能なままです。
  • Verify で確認できるのは判読可能かどうかであり、正確性ではありません。値がフォームに対する正しい回答かどうかは判断できません。
  • OCR は、小さいフォント、装飾的なフォント、手書き風フォントを誤読することがあります。REFUSE 判定は「ページを確認してください」という意味であり、「ファイルが壊れています」という意味ではありません(原文:A REFUSE verdict means "look at the page," not "the file is broken.")。poppler や tesseract の欠落、レンダリングエラーなどのツール障害は、ドキュメントに関する検出事項ではなく、ツール障害として報告されます。
  • 署名は作成されません。署名フィールドは inspect で一覧表示されますが、変更されません。
  • このツールはフォームに入力します。法律、税務、給付、その他の専門的な助言を行うものではなく、どのフィールドに何を記入すべきかを判断することもありません。

プライバシーポリシー

pdf-form-proof はすべてお使いのコンピューター上で実行されます。

  • データ収集:ありません。指定した PDF ファイルのみを読み込み、指定した出力先にのみ書き込みます。
  • 使用と保存:レンダリングされた各ページ画像は ~/.cache/pdf-form-proof 配下の一時フォルダーに書き込まれ、OCR ステップが完了するとすぐに削除されます。ステップが失敗した場合も同様です。--keep-render を指定してコピーを保存しない限り、ディスク上に何も残りません。(バージョン 0.1.0 では最後の画像が次回実行まで残っていましたが、0.1.1 では初回実行時にそのような残存ファイルを削除します。)
  • 第三者との共有:ありません。ネットワークへの接続やテレメトリーの送信は行いません。
  • 保持期間:作成したファイル以外は保持されません。
  • お問い合わせ:https://github.com/EssenceAlignment/pdf-form-proof/issues で issue を作成してください。

開発の経緯

入力済みフォームがテキストベースのチェックをすべて通過したにもかかわらず、ページ上で値を確認できなかったために差し戻されたことを受け、本番環境のドキュメントパイプライン向けに入力エンジンとページ上での表示確認機能を開発しました。そこから生まれたルールは 2 つです。不完全な入力を隠さないこと、そしてファイル内のデータだけでなく、人が実際に見るページを確認することです。

作者

Eric Brakebill-Jones, MSW Systems Architect | Clinical Workflow and Grant Data Lineage によって開発されました。 GitHub:https://github.com/EssenceAlignment

変更履歴

  • 0.1.1:OCR 完了後すぐにレンダリングされたページ画像を削除するようになりました(0.1.0 では次回実行まで保持されていました)。作者の行を追加しました。
  • 0.1.0:初回リリース。

ライセンス

MIT。LICENSE を参照してください。

コメント

MCP は初めてですか?

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

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