mcpField
P
pdf4vllm

pdf4vllm

ローカル
github.com/PyJudge生産性041 週間前に更新

pdf4vllm について

pdf4vllmはビジョンLLM向けのPDF読み取りMCPサーバーで、テキストの破損やコンテキスト制限に対処しながらPDFを抽出する用途に適しています。テキストの破損を検知すると画像モードに切り替え、テキスト、表、画像の順序を保ちます。

主な機能

  1. 01テキスト破損を検知して画像モードに切替
  2. 02テキスト・表・画像を順序どおりに抽出
  3. 03コンテキストあふれを防ぐページ数制限
  4. 04ロゴ、線、ヘッダー、フッターを除外
  5. 05PDFの検索・読み取り・テキスト検索

活用シーン

  1. 01抽出テキストが破損したPDFを読む
  2. 02ページ数を制限して長いPDFを処理
  3. 03PDF内のテキストを検索

MCP 対応

`list_pdfs`、`read_pdf`、`grep_pdf`ツールをMCPクライアントに公開し、PDFの検索、読み取り、テキスト検索を可能にします。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"pyjudge-pdf4vllm": {
"command": "uvx",
"args": [
"pdf4vllm-mcp"
]
}
}
}
起動コマンドuvx pdf4vllm-mcp

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

パッケージ
pypipdf4vllm-mcp1.0.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

pdf4vllm

License: MIT Python 3.10+ PyPI Open in Gitpod

ビジョン LLM 向けに最適化された PDF 読み取り用 MCP サーバー。

한국어

문제

방식문제점
텍스트 추출인코딩 깨짐 → 쓰레기 출력, 이미지-텍스트 순서 뒤섞임
이미지 변환토큰 폭발 (특히 페이지 많을 때)

해결

pdf4vllm은 PDF가 지저분하다고 가정합니다.

  • 텍스트 손상 자동 감지 → 이미지로 자동 전환
  • 읽기 순서 보존 (텍스트 → 표 → 이미지 블록 순서대로)
  • 페이지 제한으로 컨텍스트 오버플로우 방지
  • 불필요한 이미지 자동 필터링 (로고, 선, 헤더/푸터)

설치

pip install pdf4vllm-mcp
# 또는
uvx pdf4vllm-mcp

Claude Desktop 설정

git clone https://github.com/PyJudge/pdf4vllm-mcp.git
cd pdf4vllm-mcp
python scripts/install_mcp.py

또는 직접 설정 (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "pdf4vllm": {
      "command": "/python/경로",
      "args": ["/pdf4vllm-mcp/경로/src/server.py"]
    }
  }
}

도구

도구설명
list_pdfsPDF 파일 찾기 (glob 패턴 name_pattern 지원)
read_pdfPDF 내용 블록으로 추출
grep_pdfPDF 내 텍스트 검색 (pdfgrep 설치 필요)

추출 모드

모드설명
auto (기본)텍스트 추출 시도 → 손상 감지 시 이미지로 전환
text_only텍스트/표만 추출, 이미지 없음
image_only페이지를 이미지로만 렌더링

問題

方法問題点
テキスト抽出エンコーディングの破損 → 意味不明な出力、テキストと画像の順序が混在
画像変換トークンの爆発的な増加(特にページ数が多い場合)

解決策

pdf4vllmは、PDFは乱雑なものだと想定しています。

  • テキストの破損を自動検出 → 自動的に画像に切り替え
  • 読み取り順序を保持(テキスト → 表 → 画像ブロックの順)
  • ページ数の上限により、コンテキストのオーバーフローを防止
  • 不要な画像(ロゴ、線、ヘッダー/フッター)を自動で除外
PDF Input
    ↓
Corruption Detection (pdfminer.six + pattern analysis)
    ↓
┌─────────────┬─────────────┐
│  Corrupted  │    Clean    │
│  → Image    │  → Text +   │
│    only     │    Tables + │
│             │    Images   │
└─────────────┴─────────────┘
    ↓
Ordered Blocks (JSON)

インストール

pip install pdf4vllm-mcp
# or run without installing
uvx pdf4vllm-mcp

Claude Desktop の設定

git clone https://github.com/PyJudge/pdf4vllm-mcp.git
cd pdf4vllm-mcp
python scripts/install_mcp.py

または、~/Library/Application Support/Claude/claude_desktop_config.jsonを手動で編集します。

{
  "mcpServers": {
    "pdf4vllm": {
      "command": "/path/to/python",
      "args": ["/path/to/pdf4vllm-mcp/src/server.py"]
    }
  }
}

Claude Code の設定

プロジェクトに.mcp.jsonを作成します。

{
  "mcpServers": {
    "pdf4vllm": {
      "command": "uvx",
      "args": ["pdf4vllm-mcp"]
    }
  }
}

ツール

ツール説明
list_pdfsglob フィルタリング(name_pattern)を使って PDF ファイルを検索
read_pdfPDF の内容を順序付きブロックとして抽出
grep_pdfpdfgrep を使って PDF 内のテキストを検索(pdfgrepのインストールが必要)

抽出モード

モード説明
auto(デフォルト)テキスト抽出を試行 → 破損があれば画像に切り替え
text_onlyテキスト/表のみ。画像なし
image_onlyページを画像としてのみレンダリング

出力形式

{
  "pages": [
    {
      "page_number": 1,
      "content_blocks": [
        {"type": "text", "content": "..."},
        {"type": "table", "content": "| A | B |"},
        {"type": "image", "content": "[IMAGE_0]"}
      ]
    }
  ]
}

テキストが破損している場合:

{
  "page_number": 2,
  "content_blocks": [],
  "text_corrupted": true,
  "page_image": "[IMAGE_1]"
}

設定

config.jsonまたは環境変数:

{
  "max_pages_per_request": 10,
  "max_image_dimension": 842,
  "page_image_dpi": 100
}
export PDF_MAX_PAGES=20
export PDF_PAGE_IMAGE_DPI=150

テストサーバー

pip install pdf4vllm-mcp[test]
python test_server.py
# → http://localhost:8000

ライセンス

MIT


GitHub · PyPI

コメント

MCP は初めてですか?

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

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