关于 pdf4vllm
pdf4vllm 是面向视觉大模型的 PDF 阅读 MCP 服务,适合需要从 PDF 提取内容并减少乱码和上下文溢出的场景。它会检测文本损坏并切换为图像模式,同时保留文本、表格和图像的阅读顺序。
主要功能
- 01自动检测文本损坏并切换图像模式
- 02按顺序提取文本、表格和图像块
- 03限制页数以避免上下文溢出
- 04过滤标志、线条及页眉页脚
- 05查找、读取和搜索 PDF
适用场景
- 01读取文本提取结果乱码的 PDF
- 02按页数限制处理长篇 PDF
- 03搜索 PDF 中的文本内容
MCP 相关
pdf4vllm 提供 `list_pdfs`、`read_pdf` 和 `grep_pdf` 工具,供 MCP 客户端查找、读取和搜索 PDF。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
pdf4vllm
专为视觉大模型优化的 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
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。