設定方法
MCP は、お使いの対応アプリ(クライアント)に下記の設定を貼り付けて使います。 タブからアプリを選び、表示された設定をコピーしてください。
Claude Desktop / Claude Code: Claude Desktop(公式デスクトップアプリ)と Claude Code(公式CLI)は同じ JSON を使います。Desktop は設定ファイルに貼り付け、Claude Code は `.mcp.json` に記述するか `claude mcp add` で追加します。
{
"mcpServers": {
"pdf": {
"command": "uvx",
"args": ["pdf-mcp"]
}
}
}
Cursor: AI 機能を内蔵したコードエディタ(`~/.cursor/mcp.json` に記述)
{
"mcpServers": {
"pdf": {
"command": "uvx",
"args": ["pdf-mcp"]
}
}
}
Cline: VS Code に追加する AI アシスタント拡張(設定画面の MCP Servers から記述)
{
"mcpServers": {
"pdf": {
"command": "uvx",
"args": ["pdf-mcp"]
}
}
}
Gemini CLI: Google の AI CLI。設定形式は Claude Desktop と同じで、`~/.gemini/settings.json` の `mcpServers` に記述するか `gemini mcp add` で追加します。
{
"mcpServers": {
"pdf": {
"command": "uvx",
"args": ["pdf-mcp"]
}
}
}
OpenAI Codex: OpenAI の CLI/IDE。設定は TOML 形式で `~/.codex/config.toml` に記述します(下記は左の JSON から自動変換した参考値です)。
[mcp_servers.pdf]
command = "uvx"
args = ["pdf-mcp"]VS Code: VS Code(GitHub Copilot のエージェント)。`mcp.json` の `servers` キーに記述します(下記は左の JSON から自動変換した参考値です)。
{
"servers": {
"pdf": {
"type": "stdio",
"command": "uvx",
"args": [
"pdf-mcp"
]
}
}
}※ Gemini CLI は Claude Desktop と同じ mcpServers 形式のため同一の JSON を表示しています。Codex / VS Code タブの設定は、上記 JSON を各公式スキーマ(Codex=~/.codex/config.toml の TOML 形式 / VS Code=mcp.json の servers キー)へ 自動変換した参考値です。貼り付け前にお使いのバージョンの公式ドキュメントもご確認ください。
PDF(ファイル形式)とは
PDF は、文書・資料・契約書・論文・スキャン画像などを「どの環境でも同じ見た目」で配布できるファイル形式です。電子契約書・社内マニュアル・営業資料・学術論文・スキャン領収書など、業務文書の事実上の標準形式として使われています。
ただし PDF は「そのままでは AI に読ませにくい」という弱点があります。実際に詰まるのは次のような場面です。
- スキャンした PDF は画像なので、文字として取り出せない(契約書・領収書・役所の書類に多い)
- 縦書きの日本語は行が入り乱れて読める形にならない
- 表やグラフの数値が、ただの文字の羅列や画像になってしまう
- 何百ページもある資料をまるごと渡すと、AI が読みきれない
pdf-mcp はこれらをまとめて引き受けるために作られた PDF 専門ツールです。
これは公式提供ではなく、有志が作った非公式ツールです。
PDF × AI でできること
この MCP サーバーを導入すると、上で挙げた詰まりどころをそれぞれ解消できます。
🖼️ スキャンした PDF が文字として読めない
「このスキャンした領収書から日付・金額・取引先を読み取って」
→ Tesseract OCR で画像から文字を起こす(日本語は言語指定が必要・後述)
📜 縦書きの日本語が入り乱れる
「この縦書きの資料を読んで要点をまとめて」
→ 文字の配置から本来の順序(右から左・上から下)に組み直して読む
🔍 何百ページもあって渡しきれない
「300 ページの仕様書から API の一覧だけ表にして」
→ 検索で当たりをつけてから、該当ページだけ読み込む
📊 グラフの数値が画像に閉じ込められている
「この折れ線グラフの数値を表にして」
→ 図形として描かれたグラフから座標の値を取り出す
提供される主なツール
pdf-mcp が提供するツールは全 13 種です(v2.1.0 時点)。
| 機能カテゴリ | 主なツール |
|---|---|
| 最初に呼ぶ | pdf_info(ページ数・メタデータ・目次の要約・スキャン判定)/ server_info(OCR や意味検索など、いま使える機能の確認) |
| 読む | pdf_read_pages(ページ範囲を指定・OCR も可・表と画像を位置情報つきで返す)/ pdf_read_all(全体を一度に・容量上限あり) |
| 探す | pdf_search(キーワードと意味の組み合わせ検索)/ pdf_get_toc(目次が 50 件を超える文書の全目次) |
| フォルダ横断 | pdf_corpus_overview(文書ごとの要点カードで一覧把握)/ pdf_corpus_search(フォルダ内を横断検索)/ pdf_corpus_warm(時間を区切って事前読み込み) |
| 画像・グラフ | pdf_render_pages(ページを画像化して視覚モデルに見せる)/ pdf_extract_chart(グラフから座標の値を表として抽出・確実に読めない場合は画像を返して辞退する) |
| キャッシュ | pdf_cache_stats(文書ごとの内訳と合計サイズ)/ pdf_cache_clear(期限切れのみ、または全削除) |
「まず pdf_info で構造を把握 → pdf_search で関連箇所を絞り込み → pdf_read_pages で該当箇所だけ読む」というフローが、巨大 PDF をコンテキスト溢れなく扱う鍵です。フォルダ単位で扱うときは pdf_corpus_overview で全体を見てから pdf_corpus_search に進みます。
pdf-mcp について
pdf-mcp は、コミュニティメンバー jztan 氏が公開する PDF 処理特化の MCP サーバーです。PyPI pdf-mcp として配布され、uvx コマンドで起動します。PyMuPDF をエンジンとして、AI が大きな PDF をコンテキスト溢れなく扱えるように設計されています。
文書情報の取得(メタデータ / 目次 / スキャン判定)、ページ範囲指定の読み取り、表構造の抽出、グラフからの数値抽出、画像レンダリング、キーワードと意味を組み合わせた検索、フォルダ横断の検索まで、PDF 周りの処理を 1 つの MCP で完結できます。SQLite キャッシュで一度処理した PDF は高速に再アクセス可能。日本語の縦書きは、文字の配置から本来の読み順に組み直したうえで、単語の区切りがない日本語でも検索できるようになっています。
スペック
- 配布形態: PyPI パッケージ(
pdf-mcp)+uvxランナー(Python 3.10+) - 認証: 不要(ローカルファイル / URL いずれも。URL 取得は HTTPS 限定・SSRF 対策あり)
- 提供元: コミュニティ実装(jztan/pdf-mcp)/ MIT
- 対応範囲: テキスト・表・画像・グラフの抽出 / OCR / 縦書きと CJK の読み取り / 検索 / フォルダ横断 / キャッシュ
- オプション:
pdf-mcp[multicolumn](段組みの読み取り順序) / システム Tesseract(OCR) - 別の使い方: 手元のパソコンで動かす通常の方式に加え、
pdf-mcp-httpでサーバーとして立てる方式もあります(プロセスを起動できないクライアント向け・認証トークン必須) - 公式リポジトリ: github.com/jztan/pdf-mcp
クラウド OCR との使い分け: ローカルで完結させたい・機密文書を扱う場合は本 MCP(Tesseract)、大量 / 複雑レイアウト / 多言語混在の場合は Mistral OCR MCP(クラウド・高精度)が適しています。
導入手順
前提条件
- uv(Python パッケージマネージャー)— 設定例の
uvxはこれに含まれるコマンドです - (任意)Tesseract — OCR を使う場合のみ・システムレベルでインストール
- macOS:
brew install tesseract - Linux:
sudo apt-get install tesseract-ocr - Windows: UB-Mannheim 公式インストーラ
- macOS:
- (任意)日本語 OCR を使う場合は
tesseract-ocr-jpn言語パック
uv のインストール
設定例の uvx は uv に含まれるコマンドのため、先に uv を入れておく必要があります。ターミナル(Windows は PowerShell)で次の 1 行を実行してください。
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows(PowerShell)
irm https://astral.sh/uv/install.ps1 | iex
ステップ
- ページ上部のタブから使用環境を選択し、JSON 設定をコピー
- コピーした JSON を設定ファイルに追記して保存
- クライアントを再起動
uvx pdf-mcp が初回実行時に PyPI からパッケージを取得・起動します。
意味での検索は既定で使えます(v2 系から同梱。初回利用時に約 67MB の埋め込みモデルを取得します)。段組みの多い PDF で読み取り順序を正したい場合のみ、args を ["pdf-mcp[multicolumn]"] に変更してください。
注意事項
- 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を追加してください。 - OCR の言語指定の初期値は英語です(
ocr_langの既定値がeng)。日本語のスキャン PDF をそのまま読ませると文字化けします(編集部が 2026-06-12 に実機確認)。AI への依頼に「日本語の書類なので OCR は日本語(jpn)で」と一言添えるか、ocr_lang="jpn"を指定してください。同検証では数字の細部の誤読(「8,234」→「8.234」のカンマ誤読)も確認しており、金額・日付を使う際は原本確認をおすすめします。 - 縦書きの日本語は、文字の配置から本来の読み順(右から左・上から下)に組み直して読み取ります。雑誌のように密なレイアウトでは記事単位の切り分けも行い、文字化けは除去されます。
- 段組みの多い PDF は、
pdf-mcp[multicolumn]を入れない場合、位置による並べ替えのみになるため段が混ざることがあります。 - グラフの数値抽出は、図形として描かれたグラフが対象です。写真やスキャン画像のグラフは対象外で、確実に読み取れない場合はツール側が数値を返さず画像を返します。
- 人間には見えない文字が埋め込まれた PDF を検出して印を付けます(白い文字・極小の文字・ページ外など)。検出しても中身は消さず、「そのまま信用しない方がよい」という印が付く仕様です。
- Intel 版 macOS で Python 3.14 以降、および Alpine / musl 環境では、同梱される
onnxruntimeに対応する配布物がありません。Python 3.13 以下をお使いください。 - 本サーバーはコミュニティ実装(jztan 氏)です。サポート契約等はありません(OSS としての MIT ライセンス提供)。
主なユースケース
- 「このスキャンした領収書 PDF から日付・金額・取引先を読み取って」と頼めば、画像だけの PDF でも文字として取り出せる
- 「この縦書きの資料を読んで要点をまとめて」と、行が入り乱れがちな縦書きの日本語 PDF も本来の順序で読み取れる
- 「300 ページの仕様書から API の一覧だけ表にして」と、巨大な PDF でも必要な箇所だけ抜き出せる
- 「このフォルダの PDF 全部から、値上げに触れている箇所を探して」とフォルダ単位で横断検索できる
プラットフォーム別の注意事項
- WindowsPowerShell からの `uvx` 実行に追加設定は不要です。OCR を使う場合は別途 Tesseract(システムレベル)のインストールが必要です([公式インストーラ](https://github.com/UB-Mannheim/tesseract/wiki))。
セットアップ・利用上の注意
- 導入・前提OCR 機能はオプショナルでシステム Tesseract が必要。日本語 PDF を OCR したい場合は `tesseract-ocr-jpn` 言語パックを併せてインストールしてください(README には記載なし / Tesseract の標準フローに準拠)。意味検索は v2 系から既定で同梱されており、初回利用時に約 67MB の埋め込みモデルを取得します。段組みの多い PDF で読み取り順序を正したい場合のみ `pdf-mcp[multicolumn]` を追加してください。