mcpField
P
pdf4vllm

pdf4vllm

本地服务
github.com/PyJudge生产力041 周前更新

关于 pdf4vllm

pdf4vllm 是面向视觉大模型的 PDF 阅读 MCP 服务,适合需要从 PDF 提取内容并减少乱码和上下文溢出的场景。它会检测文本损坏并切换为图像模式,同时保留文本、表格和图像的阅读顺序。

主要功能

  1. 01自动检测文本损坏并切换图像模式
  2. 02按顺序提取文本、表格和图像块
  3. 03限制页数以避免上下文溢出
  4. 04过滤标志、线条及页眉页脚
  5. 05查找、读取和搜索 PDF

适用场景

  1. 01读取文本提取结果乱码的 PDF
  2. 02按页数限制处理长篇 PDF
  3. 03搜索 PDF 中的文本内容

MCP 相关

pdf4vllm 提供 `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

专为视觉大模型优化的 PDF 阅读 MCP 服务。

한국어

问题

方式问题
文本提取编码损坏 → 输出乱码,图像与文本的顺序混乱
图像转换Token 爆炸(尤其是页面较多时)

解决方案

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_pdfs查找 PDF 文件(支持 glob 模式 name_pattern)
read_pdf将 PDF 内容提取为内容块
grep_pdf搜索 PDF 中的文本(需要安装 pdfgrep)

提取模式

模式说明
auto(默认)尝试提取文本 → 检测到损坏时切换为图像
text_only仅提取文本/表格,不包含图像
image_only仅将页面渲染为图像

问题

方式问题
文本提取编码损坏 → 输出乱码,文本与图像顺序混乱
图像转换Token 爆炸(尤其是页面较多时)

解决方案

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_pdfs查找 PDF 文件,支持 glob 过滤(name_pattern)
read_pdf将 PDF 内容提取为有序内容块
grep_pdf使用 pdfgrep 搜索 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。