/ ディレクトリ / プレイグラウンド / pdf-reader-mcp
● コミュニティ SylphxAI ⚡ 即起動

pdf-reader-mcp

作者 SylphxAI · SylphxAI/pdf-reader-mcp

単一ツール read_pdf で、ローカルまたはリモートのPDFからテキスト・画像・メタデータを抽出。並列ページ処理により5〜10倍高速です。

pdf-reader-mcp(SylphxAI)は、単一ツールであらゆるPDF抽出を処理する特化型Node.js MCPサーバーです。PDF.jsを使用し、並列ページワーカーとY座標ベースのレイアウト保持機能を備えています。ローカルパスおよびHTTP/HTTPS URLに対応。94%のテストカバレッジにより、本番パイプラインでも安心して利用できます。

なぜ使うのか

主な機能

ライブデモ

実際の動作

pdf-reader.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "pdf-reader": {
      "command": "npx",
      "args": [
        "-y",
        "pdf-reader-mcp"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "pdf-reader": {
      "command": "npx",
      "args": [
        "-y",
        "pdf-reader-mcp"
      ],
      "_inferred": true
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "pdf-reader": {
      "command": "npx",
      "args": [
        "-y",
        "pdf-reader-mcp"
      ],
      "_inferred": true
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "pdf-reader": {
      "command": "npx",
      "args": [
        "-y",
        "pdf-reader-mcp"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "pdf-reader",
      "command": "npx",
      "args": [
        "-y",
        "pdf-reader-mcp"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "pdf-reader": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "pdf-reader-mcp"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add pdf-reader -- npx -y pdf-reader-mcp

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: pdf-reader-mcp

Claudeで契約書PDFをレビューする方法

👤 法務オペレーション、創業者、PM ⏱ ~20 min beginner

使うタイミング: 50ページの契約書の内容を把握し、異常な条項をフラグしたいとき。

フロー
  1. PDF全体を読み取る
    Use read_pdf on ./contracts/msa-acme.pdf. Extract text and metadata.✓ コピーしました
    → 全文テキスト+作成者・タイトル・日付のメタデータ
  2. 構造化されたサマリーを依頼する
    Summarize: parties, term, payment terms, IP, termination, unusual clauses. Quote the exact clause for each.✓ コピーしました
    → 引用付きの構造化サマリー
  3. リスク条項のレビュー
    Compared to a standard SaaS MSA, what clauses are unusual or risky? Cite page numbers.✓ コピーしました
    → 交渉すべき事項の優先順位付きリスト

結果: 2時間かかるレビューが15分で完了 — 引用付き。

注意点
  • スキャンPDFではテキストが空で返される — pdf-readerにはテキストレイヤーが必要です。先に ocrmypdf input.pdf output.pdf を実行してください

研究論文PDFフォルダをサマリーテーブルにまとめる

👤 アナリスト、研究者 ⏱ ~15 min beginner

使うタイミング: 30本のホワイトペーパーをダウンロードし、深く読むべきものを判断するための概要レイヤーが必要なとき。

フロー
  1. PDFを一覧表示
    List all PDFs in ./papers/. For each, extract title and abstract.✓ コピーしました
    → テーブル:ファイル名、タイトル、概要
  2. 分類とランク付け
    Classify each paper into [relevant / tangential / skip]. Give a 1-line 'why'.✓ コピーしました
    → 優先順位付きの読書リスト

結果: ファイル名ではなく、内容に基づいた読書順序。

組み合わせ: filesystem

請求書PDFから構造化データを抽出する

👤 経理、買掛金チーム ⏱ ~20 min intermediate

使うタイミング: PDF請求書を受け取り、会計処理のためにCSVやJSONに変換したいとき。

フロー
  1. 請求書ごとに抽出
    For each PDF in ./inbox/, extract: vendor, invoice_number, date, total, line_items[]. Return as JSON array.✓ コピーしました
    → 請求書ごとの構造化JSON
  2. 異常値のフラグ
    Highlight any invoices with totals >$10k or with line items that don't add up✓ コピーしました
    → レビューキュー

結果: 人間によるフラグ確認を組み込んだ、自動化された買掛金トリアージ。

組み合わせ: google-sheets

組み合わせ

他のMCPと組み合わせて10倍の力を

pdf-reader + filesystem

PDFフォルダを反復処理し、サマリーを同じ場所に書き出す

For each PDF in ./papers/, write a corresponding .md summary in the same folder.✓ コピーしました
pdf-reader + google-sheets

請求書データをSheetsの台帳に直接投入

Extract invoices from ./inbox/*.pdf and append one row per invoice to my 'AP' sheet.✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
read_pdf path: str (local or URL), options?: { pages?, include_images?, include_metadata? } あらゆるPDF取り込み — 単一ツールですべての操作に対応 Local CPU only

コストと制限

運用コスト

APIクォータ
なし — ローカルで実行
呼び出しあたりのトークン
50ページのドキュメントで2万〜10万トークン
金額
無料
ヒント
プロトタイピング時は pages オプションで最初のNページに抽出を限定してください

セキュリティ

権限、シークレット、影響範囲

認証情報の保管: なし
データ送信先: HTTP URLが指定された場合のみ外部通信が発生します。ローカルパスはローカルに留まります

トラブルシューティング

よくあるエラーと対処法

Empty text from a valid PDF — 有効なPDFからテキストが空で返される

PDFが画像のみです。先にOCRを実行してください: ocrmypdf in.pdf out.pdf、その後読み取り

確認: メタデータを確認し、`producer` が 'Scanner' の場合は画像PDFです
Out-of-memory on huge PDFs — 巨大なPDFでメモリ不足

pages: [1, 50] を渡してチャンク処理し、範囲ごとに処理してください

Garbled text / wrong reading order — 文字化けや読み取り順序の乱れ

一部のPDFは非標準レイアウトを使用しています。レイアウト保持を無効にして、生のストリーム順序を試してください

代替案

pdf-reader-mcp 他との比較

代替案代わりに使う場面トレードオフ
mcp-server-pdf (simple)依存関係を最小限にしたい場合。シングルスレッドで低速でも許容できるとき大きなドキュメントでは大幅に低速
LlamaParse API複雑なフォームやテーブルに対してLLMレベルのレイアウト理解が必要なとき有料、クラウド型だが、レイアウトが乱れたドキュメントには強い

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る