pdf-mcp

シェア
ドキュメント・知識管理PDFOCRPyMuPDFTesseractセマンティック検索ドキュメント抽出
最終確認:
2026-05-25
ライセンス:
MIT
無料で使えるオープンソースです(商用利用も可)

PDF(ファイル形式)とは

PDF は、文書・資料・契約書・論文・スキャン画像などを「どの環境でも同じ見た目」で配布できるファイル形式です。電子契約書・社内マニュアル・営業資料・学術論文・スキャン領収書など、業務文書の事実上の標準形式として使われています。

ただし PDF は「そのままでは AI に読ませにくい」という弱点があります。テキスト埋め込み済み・スキャン画像・表・図など中身が雑多で、特に何百ページにも及ぶ巨大 PDF を AI のコンテキストに全部入れるのはトークン消費・処理時間の両面で現実的ではありません。pdf-mcp はこの問題を解決するために設計された PDF 専門ツールです。

PDF × AI でできること

この MCP サーバーを導入すると、巨大 PDF も AI が部分的に読み・検索し・抽出できます。

🔍 関連箇所だけ抽出

「300 ページ仕様書から API エンドポイントだけ表にして」
→ 検索 + 該当ページ読み込み

🖼️ スキャン PDF を OCR

「スキャン領収書 PDF から日付・金額・取引先を抽出して」
→ Tesseract OCR + 構造化抽出

📑 章単位アクセス

「論文の第 3 章だけ読んで要約して」
→ 目次取得 + 該当ページ範囲アクセス

🧠 セマンティック検索

「この技術書から transformer の章を探して」
→ pdf-mcp[semantic] でハイブリッド検索(BM25 + ベクトル)

提供される主なツール

pdf-mcp が公式に提供するツール(server.py@mcp.tool() デコレータから逐語抽出した 8 ツール):

ツール名役割
pdf_infoPDF のメタデータ・ページ数・目次を取得(まず最初に呼ぶことが公式推奨)
pdf_read_pagesページ範囲を指定してテキスト・画像を読み込み(OCR 対応
pdf_read_allPDF 全体を読み込み(小さい PDF 専用・大きい PDF は pdf_read_pages 推奨)
pdf_render_pagesPDF ページを画像レンダリング(vision モデルに直接見せたいとき)
pdf_searchPDF 内テキスト検索(pdf-mcp[semantic] 拡張で BM25 + ベクトルのハイブリッド検索に発展)
pdf_get_toc目次(ブックマーク)を取得
pdf_cache_statsキャッシュ統計の確認(削除はしない)
pdf_cache_clearキャッシュ削除(既定は期限切れエントリのみ。expired_only=False 指定で全削除)

まず pdf_info で構造を把握 → pdf_search で関連箇所を絞り込み → pdf_read_pages で該当箇所だけ読む」というフローが、巨大 PDF をコンテキスト溢れなく扱う鍵です。

pdf-mcp について

pdf-mcp は、コミュニティメンバー jztan 氏が公開する PDF 処理特化の MCP サーバーです。PyPI pdf-mcp として配布され、uvx コマンドで起動します。PyMuPDF をエンジンとして、AI が大きな PDF をコンテキスト溢れなく扱えるように設計されています。

文書情報の取得(メタデータ / トークン推定 / OCR 候補判定)、ページ範囲指定の読み取り、表構造の抽出、画像レンダリング、ハイブリッド検索(BM25 + セマンティック)まで、PDF 周りの処理を 1 つの MCP で完結できます。SQLite キャッシュで一度処理した PDF は高速に再アクセス可能。OCR やセマンティック検索はオプショナル拡張のため、軽量起動も可能です。

スペック

  • 配布形態: PyPI パッケージ(pdf-mcp)+ uvx ランナー(Python 3.10+)
  • 認証: 不要(ローカルファイル / URL いずれも。URL 取得は HTTPS 限定・SSRF 対策あり)
  • 提供元: コミュニティ実装(jztan/pdf-mcp)/ MIT
  • 対応範囲: PDF テキスト・表・画像抽出 / OCR / 検索 / セマンティック検索 / キャッシュ
  • オプション: pdf-mcp[semantic](ハイブリッド検索・fastembed + numpy 約 67MB) / システム Tesseract(OCR)
  • 公式リポジトリ: github.com/jztan/pdf-mcp

クラウド OCR との使い分け: ローカルで完結させたい・機密文書を扱う場合は本 MCP(Tesseract)、大量 / 複雑レイアウト / 多言語混在の場合は Mistral OCR MCP(クラウド・高精度)が適しています。

導入手順

前提条件

  • uv または Python 3.10+
  • (任意)Tesseract — OCR を使う場合のみ・システムレベルでインストール
  • (任意)日本語 OCR を使う場合は tesseract-ocr-jpn 言語パック

ステップ

  1. ページ上部のタブから使用環境(Claude Desktop / Cursor / Cline)を選択し、JSON 設定をコピー
  2. コピーした JSON を設定ファイルに追記して保存
  3. クライアントを再起動

uvx pdf-mcp が初回実行時に PyPI からパッケージを取得・起動します。

セマンティック検索を使う場合: 設定の args を ["pdf-mcp[semantic]"] に変更するか、pip install 'pdf-mcp[semantic]' を実行(約 67MB の fastembed + numpy が追加)。

注意事項

  • Python 3.10+ が必要です。
  • OCR 機能はオプショナルです。スキャン PDF を扱わない場合は Tesseract のインストール不要で軽量に起動できます。
  • 環境変数 PDF_MCP_CACHE_DIR(デフォルト ~/.cache/pdf-mcp)と PDF_MCP_CACHE_TTL(デフォルト 24 時間)でキャッシュ挙動を制御可能。
  • 表抽出pdf_read_pages の table extraction)は構造化データ(header + rows)として返されます。
  • 日本語 PDF(テキスト埋め込み済み)は PyMuPDF が直接読み取りますが、スキャン画像 PDF を日本語 OCR するには Tesseract に jpn.traineddata を追加してください。
  • 本サーバーはコミュニティ実装(jztan 氏)です。サポート契約等はありません(OSS としての MIT ライセンス提供)。

設定方法

MCP は、お使いの対応アプリ(クライアント)に下記の設定を貼り付けて使います。 タブからアプリを選び、表示された設定をコピーしてください。

Claude Desktop: Anthropic 公式のデスクトップ版 Claude アプリ

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

主なユースケース

  1. 「この 300 ページの仕様書 PDF から API エンドポイントだけ抜き出して表にして」と頼むだけで、必要な箇所をピンポイント抽出できる
  2. 「スキャン PDF の領収書から日付・金額・取引先を抽出して」と OCR 機能で画像化された PDF からテキスト化してくれる
  3. 「論文 PDF の第 3 章だけ読んで要約して」と目次取得 + 章単位アクセスで効率的に読める
  4. 「この技術書から `transformer` の章を探して」とハイブリッド検索(`pdf-mcp[semantic]`)で意味検索もできる

プラットフォーム別の注意事項

  • WindowsPowerShell からの `uvx` 実行に追加設定は不要です。OCR を使う場合は別途 Tesseract(システムレベル)のインストールが必要です([公式インストーラ](https://github.com/UB-Mannheim/tesseract/wiki))。
  • OCR 機能はオプショナルでシステム Tesseract が必要。日本語 PDF を OCR したい場合は `tesseract-ocr-jpn` 言語パックを併せてインストールしてください(README には逐語記載なし / Tesseract の標準フローに準拠)。
  • ハイブリッド検索を使うなら `pdf-mcp[semantic]` 拡張をインストール(fastembed + numpy 約 67MB)。