mcpField
P
pdffr

pdffr

ローカル
amersarhan.github.io生産性08 週間前に更新

pdffr について

pdffr-mcpは、エージェントや他のMCPクライアント向けにPDFをMarkdownへ変換するローカルMCPサーバーです。まずグリフの幾何情報を読み取り、説明できないページ内容に限ってオンデバイスOCRを使うため、文書は端末内に留まります。

主な機能

  1. 01PDFからMarkdownへの変換
  2. 02幾何情報に基づくテキスト抽出
  3. 03説明できない内容へのオンデバイスOCR
  4. 04PDF見出しアウトラインの抽出
  5. 05JSON形式での表取得

活用シーン

  1. 01デジタル生成PDFからのテキスト抽出
  2. 02OCRによるスキャンページの読み取り
  3. 03ページ選択前の文書見出し確認
  4. 04構造化処理向けのPDF表取得

MCP 対応

MCPクライアントにPDF変換、アウトライン、表のツールを提供します。入力にはファイルパス、URL、base64データを指定できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"amersarhan-pdffr": {
"command": "npx",
"args": [
"-y",
"pdffr-mcp"
]
}
}
}
起動コマンドnpx -y pdffr-mcp

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

パッケージ
npmpdffr-mcp0.1.1

ツール

3

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
ocrbooleanいいえテキストレイヤーで説明できないインクをオンデバイス OCR に切り替えます(デフォルト true)
urlstringいいえ取得する PDF の URL
langstringいいえOCR に使用する Tesseract の言語(例:'eng'、'deu'、'eng+ara'。デフォルトは 'eng')
pathstringいいえこのマシン上の PDF のパス
pagesstringいいえページの選択(例:'1-3,7'。デフォルトはすべて)
base64stringいいえbase64 エンコードされた PDF の生バイト列
maxCharsintegerいいえMarkdown を指定した文字数に切り詰めます(デフォルト 200000)

詳細

pdffr-mcp

Claude Desktop、Claude Code、Cursor、Windsurf、Zed、ご自身の環境など、あらゆるエージェントに、pdffrを基盤とした、ローカルでプライベートな PDF → Markdown ツールを提供するMCPサーバーです。デジタル生成されたページはグリフの幾何情報からミリ秒単位で逆コンパイルされます。スキャンやスクリーンショットでは、テキストレイヤーで判別できない文字部分に限り、デバイス上でOCRを実行します。データがマシンの外に送信されることはありません。

インストール

Claude Desktop/Claude Code/Cursor/Windsurfでは、MCP 設定に追加します。

{
  "mcpServers": {
    "pdffr": {
      "command": "npx",
      "args": ["-y", "pdffr-mcp"]
    }
  }
}

Claude Code のワンライナー:

claude mcp add pdffr -- npx -y pdffr-mcp

Node 20 以降が必要です。初回実行時に、指定した言語(デフォルトは英語)のOCRモデルがOSの一時ディレクトリにダウンロードされます。

ツール

pdf_to_markdown

PDFをMarkdownに逆コンパイルします。path、url、base64のいずれかを指定してください。

引数型説明
pathstring絶対パスまたは相対ファイルパス
urlstringサーバーのネットワークアクセスを使って取得
base64stringPDFの生バイト列
pagesstring例:"1-3,7"。デフォルトではすべてのページ
ocrboolean判別できない文字部分をOCRに回します(デフォルトはtrue)
langstringtesseractの言語。例:"deu"、"eng+ara"(デフォルトは"eng")
maxCharsnumber結果を切り詰めます(デフォルトは200 000)。切り詰めた場合は応答で通知します

Markdownに続いて、統計情報(ページ数、処理時間、OCR領域数)を1行で返します。

pdf_outline

見出しのみを、レベル、テキスト、ページ番号とともに返します。エージェントは、各ページの内容を取得する前に、どのページを読むか判断できます。入力は同じです(path/url/base64、ocr、lang)。

pdf_tables

すべての表をJSONの行として返します([{ page, rows: string[][] }])。入力は同じです。

なぜビジョンモデルを使わないのか

PDFには、すべてのグリフの位置情報がすでに含まれています。pdffrはその幾何情報を直接読み取り、テキストレイヤーで判別できないピクセルに限ってOCRを行います。そのため、30ページのレポートは1秒もかからず、スキャンされた請求書は数秒で処理できます。APIキーもアップロードも必要ありません。アーキテクチャの解説をご覧ください。

MIT © Amer Sarhan

コメント

MCP は初めてですか?

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

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