PDF Reader について
PDF Readerは、MCPクライアント向けのPDF読み取り・分析サーバーです。テキスト、ページ画像、表、リンク、注釈、メタデータを抽出し、検索や統計、ページ間のテキスト比較も行えます。
主な機能
- 01テキストとページ画像の抽出
- 02目次、リンク、注釈の取得
- 03表の検出と画像の抽出
- 04ページの文脈付きテキスト検索
- 05メタデータとテキスト統計の取得
- 06ページ間のテキスト比較
活用シーン
- 01レポート内の特定内容の検索
- 02PDFページと文書情報の確認
- 03表、画像、リンクの抽出
- 042ページ間のテキスト比較
MCP 対応
互換性のあるMCPクライアントに、テキスト、画像、表、リンク、注釈、メタデータなどを扱うPDF読み取り・分析ツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
pdf-reader-mcp
PDF ファイルの読み取りと分析に使用する MCP サーバーです。MCP(Model Context Protocol)に対応するクライアントに、PDF のテキスト、ページ画像、表、リンク、注釈、目次、メタデータ、基本的なテキスト統計を提供します。
PDF ファイルからテキスト、レンダリングしたページ、表、リンク、注釈、アウトライン、メタデータ、テキスト統計を抽出することに特化した MCP サーバーです。
パッケージ名
- GitHub リポジトリ:
pdf-reader-mcp - MCP Registry 名:
io.github.Xvvln/pdf-reader-mcp - PyPI パッケージ:
pdf-insight-mcp - CLI コマンド:
pdf-reader-mcpおよびpdf-insight-mcp
pdf-reader-mcp はプロジェクト名です。PyPI では、pdf-reader-mcp というパッケージ名が利用できないため、pdf-insight-mcp として公開されています。
機能
| ツール | 説明 |
|---|---|
get_pdf_info | ドキュメントのメタデータ、ページ数、ファイルサイズ、暗号化状態を読み取ります。 |
read_pdf_as_text | ページ数と文字数の上限を指定して、選択したページからテキストを抽出します。 |
read_pdf_as_images | 選択したページを Base64 エンコードされた画像としてレンダリングします。 |
get_pdf_outline | ブックマークとアウトライン項目を読み取ります。 |
search_pdf_text | テキストを検索し、一致箇所ごとのページコンテキストを返します。 |
extract_pdf_tables | PyMuPDF が検出できる場合、構造化された表を抽出します。 |
extract_pdf_images | PDF に埋め込まれた画像を抽出します。 |
get_pdf_page_info | 1 ページのサイズ、テキスト、画像、リンク、回転を調べます。 |
extract_pdf_links | 外部 URL と内部ページへのジャンプを抽出します。 |
get_pdf_annotations | コメント、ハイライト、注釈のメタデータを読み取ります。 |
get_pdf_text_stats | テキスト、行、段落、およびスキャン文書らしさの統計を算出します。 |
compare_pdf_pages | 2 ページ間のテキストの類似度を比較します。 |
クイックスタート
まだインストールしていない場合は、uv をインストールします。
curl -LsSf https://astral.sh/uv/install.sh | sh
PyPI からサーバーを直接実行します。
uvx pdf-insight-mcp
または、先にインストールします。
python -m pip install pdf-insight-mcp
pdf-reader-mcp
MCP クライアントの設定
公開済みの PyPI パッケージを使用します。
{
"mcpServers": {
"pdf-reader": {
"command": "uvx",
"args": ["pdf-insight-mcp"]
}
}
}
開発にはローカルのチェックアウトを使用します。
{
"mcpServers": {
"pdf-reader": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/pdf-reader-mcp",
"run",
"pdf-reader-mcp"
]
}
}
}
/absolute/path/to/pdf-reader-mcp を、お使いのマシン上にあるこのリポジトリの絶対パスに置き換えてください。
一般的な使い方
MCP クライアントに、絶対パスで PDF を指定してツールを呼び出すよう依頼します。リクエストの例:
Read /Users/me/Documents/report.pdf as text.
Search /Users/me/Documents/report.pdf for "baseline characteristics".
Render pages 1-3 of /Users/me/Documents/report.pdf as images.
Extract links and annotations from /Users/me/Documents/review.pdf.
大きな PDF の場合は、まず小さなページ範囲を指定してください。スキャンされた PDF やレイアウトが重要な PDF では、read_pdf_as_images を使い、pages の範囲を小さくして、適度な dpi を指定してください。
制限と動作
read_pdf_as_textは、デフォルトで最大 50 ページ、返される文字数は最大 200000 文字です。read_pdf_as_imagesは、20 ページを超えるリクエストを拒否します。read_pdf_as_imagesの画像ペイロード全体の上限は、デフォルトで約 20 MB です。extract_pdf_imagesは、埋め込み画像を最大 20 個返しますが、実際に検出した総数も報告します。- 暗号化された PDF は、パスワードなしですでにアクセスできる場合を除き、拒否されます。
- スキャンされた PDF では、抽出可能なテキストがほとんどない、またはまったくない場合があります。必要に応じて、画像のレンダリングを使用するか、このサーバーの外部で OCR を行ってください。
開発
依存関係をインストールします。
uv sync --extra dev
テストを実行します。
uv run pytest -q
パッケージをビルドします。
uv build
uvx twine check dist/*
ローカルサーバーを実行します。
uv run pdf-reader-mcp
リリース
リリースは GitHub Actions を通じて公開されます。
初回リリースの前に、以下の設定で PyPI Trusted Publishing を構成してください。
PyPI project name: pdf-insight-mcp
Owner: Xvvln
Repository name: pdf-reader-mcp
Workflow filename: publish.yml
Environment name: leave empty
その後、pyproject.toml と server.json のバージョンを更新し、変更をコミットして、バージョンタグをプッシュするとリリースできます。
git tag vX.Y.Z
git push origin main --tags
Publish ワークフローは、テストの実行、Python パッケージのビルド、PyPI への公開、GitHub OIDC による MCP Registry の認証、server.json の公開を行います。
技術スタック
- Python 3.10+
- MCP Python SDK
- PyMuPDF
- uv
- pytest
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。