/ 目錄 / 演練場 / pdf-reader-mcp
● 社群 SylphxAI ⚡ 即開即用

pdf-reader-mcp

作者 SylphxAI · SylphxAI/pdf-reader-mcp

單一工具 read_pdf,透過平行頁面處理,從本機或遠端 PDF 擷取文字、圖片與中繼資料,速度提升 5-10 倍。

pdf-reader-mcp(SylphxAI)是一個精簡的 Node.js MCP,僅暴露一個工具即可處理所有 PDF 擷取需求。採用 PDF.js 搭配平行頁面 worker,並保留 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
    對 ./contracts/msa-acme.pdf 使用 read_pdf,擷取文字與中繼資料。✓ 已複製
    → 完整文字 + 作者/標題/日期等中繼資料
  2. 請求結構化摘要
    請摘要以下內容:合約雙方、期限、付款條件、智慧財產權、終止條款、異常條款,並為每項引用原文條款。✓ 已複製
    → 附引用原文的結構化摘要
  3. 風險條款審查
    與標準 SaaS MSA 相比,哪些條款不尋常或具有風險?請標注頁碼。✓ 已複製
    → 優先排序的待談判事項清單

結果: 原本需要 2 小時的審閱,縮短為 15 分鐘——並附有引用來源。

注意事項
  • 掃描版 PDF 擷取文字為空 — pdf-reader 需要文字層;請先執行 ocrmypdf input.pdf output.pdf

將一整個資料夾的研究 PDF 整理成摘要表格

👤 分析師、研究人員 ⏱ ~15 min beginner

何時使用: 下載了 30 份白皮書,需要先快速篩選,再決定哪些值得深入閱讀時。

步驟
  1. 列出 PDF 清單
    列出 ./papers/ 中的所有 PDF,並為每份擷取標題與摘要。✓ 已複製
    → 表格:檔名、標題、摘要
  2. 分類與排序
    將每篇論文分類為 [相關 / 次要 / 略過],並附上一行說明原因。✓ 已複製
    → 依優先順序排列的閱讀清單

結果: 依內容而非檔名決定的閱讀順序。

搭配使用: filesystem

從發票 PDF 擷取結構化資料

👤 財務、應付帳款團隊 ⏱ ~20 min intermediate

何時使用: 收到 PDF 格式的發票,需要轉為 CSV 或 JSON 進行帳務處理時。

步驟
  1. 逐一擷取發票
    對 ./inbox/ 中的每份 PDF,擷取:供應商、發票編號、日期、總金額、明細項目[],以 JSON 陣列回傳。✓ 已複製
    → 每張發票的結構化 JSON
  2. 標記異常
    請標出總金額超過 $10k,或明細加總與總額不符的發票。✓ 已複製
    → 待人工審核的佇列

結果: 自動化應付帳款初篩,異常項目由人工複核。

搭配使用: google-sheets

組合

與其他 MCP 搭配,撬動十倍槓桿

pdf-reader + filesystem

遍歷 PDF 資料夾,並在同目錄寫入對應摘要

對 ./papers/ 中的每份 PDF,在同一資料夾內建立對應的 .md 摘要檔案。✓ 已複製
pdf-reader + google-sheets

將發票資料直接寫入 Sheets 帳本

從 ./inbox/*.pdf 擷取發票資料,並將每張發票附加為 'AP' 工作表中的一列。✓ 已複製

工具

此 MCP 暴露的能力

工具輸入參數何時呼叫成本
read_pdf path: str (local or URL), options?: { pages?, include_images?, include_metadata? } 所有 PDF 擷取需求——單一工具處理全部操作 Local CPU only

成本與限制

運行它的成本

API 配額
無——在本機執行
每次呼叫 Token 數
50 頁文件約需 20k-100k tokens
費用
免費
提示
在原型開發階段,使用 pages 參數限制僅擷取前 N 頁

安全

權限、密鑰、影響範圍

憑證儲存:
資料出站: 僅在提供 HTTP URL 時才會對外傳輸;本機路徑的資料不會離開本機

故障排查

常見錯誤與修復

Empty text from a valid PDF

PDF 為純圖片格式,請先進行 OCR:ocrmypdf in.pdf out.pdf,再讀取

驗證: 檢查中繼資料;若 `producer` 顯示為 'Scanner',即為圖片型 PDF
Out-of-memory on huge PDFs

傳入 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