使用说明
PDF导航器MCP
一个全面的模型上下文协议(MCP)服务器,用于PDF阅读、导航和文本搜索,并集成了跨平台PDF查看器。建于 PyMuPDF(MuPDF),通过MCP公开,因此依赖关系与您的项目环境保持隔离。
为什么存在
Claude Code的内置 Read 该工具可以直接打开PDF,因此询问是否仍需要此服务器是公平的。它是——但原因比以前更窄。内置阅读器有两个局限性,这个服务器是围绕这两个局限设计的,还有第三个工具(poppler的 pdftotext)也无法填补空白:
内置 Read 该工具将每个PDF页面渲染为光栅图像。 科学论文的两个后果:
- 它象征性地昂贵,而且无法扩展。 一张25页的厚纸大约有25页的图片;阅读全文会消耗数万个图像标记,并挤出其余的对话。你 能 盖上一个
pages范围(最近的版本需要过去10页),但前提是你已经知道你想要哪些页面。 - 图像文本不可搜索。 您无法跨像素搜索。要找到一篇论文讨论的地方,比如“幸存者偏见”,你会把页面当作图像阅读,直到你发现它——这是填充上下文的确切行为。
Poppler's pdftotext 廉价且可搜索,但会破坏科学论文的内容:
- 内联数学中断。 组合标记从其底部分离,例如。
p̃(x;t)以流浪者的身份出现~在自己的线路上,从p(x;t). - 多列布局混乱。 默认模式是拖动正在运行的标题,并可以重新排序文本;
-layout将两列水平粘合,使每一行都读起来left-column … right-column,破坏阅读顺序并破坏跨越列的任何短语搜索。
此服务器使用MuPDF get_text(), 这保留了跨列的读取顺序并保持了内联数学的完整性, 可搜索的 文本加结构/大纲导航。预期的分工:
| 需要 | 工具 |
|---|---|
| 阅读文本,搜索相关页面,浏览结构 | 此服务器 (MuPDF文本+搜索)——便宜、可搜索、正确的阅读顺序 |
| 看 图形、面板、渲染的方程式或表格 | 内建 Read 与狭窄 pages 范围 --将其用于包含视觉效果的1-3页,而不是整个文档 |
特性
- PDF文本提取 -阅读完整的PDF或特定的页面/范围
- PDF结构分析 -摘录目录和页面摘要
- 带位置的文本搜索 -查找文本并跳转到结果
- 直接PDF导航 -将PDF打开到特定页面
- 跨平台PDF查看器 -支持Skim、Zathura、Evince等
- MCP集成 -与Claude Code和其他MCP客户合作
- 无依赖性问题 -PyMuPDF在MCP服务器环境中隔离
安装
# Install with pipx (recommended)
pipx install git+https://github.com/matsengrp/pdf-navigator-mcp.git
# Or install in current environment
pip install git+https://github.com/matsengrp/pdf-navigator-mcp.git
Claude代码集成
添加到您的 ~/.claude.json:
{
"mcpServers": {
"pdf-navigator": {
"type": "stdio",
"command": "pdf-navigator-mcp"
}
}
}
用法
在Claude Code中,您可以:
- “阅读paper.pdf中的摘要” → 提取并显示文本内容
- “paper.pdf的目录是什么?” → 显示PDF结构
- “阅读paper.pdf的第5-10页” → 提取特定页面范围
- “在paper.pdf中搜索‘参数效率’” → 查找文本和位置
- “打开纸张.pdf至第5页” → 将PDF查看器打开到特定页面
MCP工具
阅读工具
read_pdf_text(file_path, start_page, end_page)-从页面范围中提取文本read_pdf_page(file_path, page_number)-从单页中提取文本get_pdf_structure(file_path)-获取目录和页面摘要get_pdf_info(file_path)-获取文档元数据
导航工具
search_pdf_text(file_path, query)-搜索文本并返回位置open_pdf_page(file_path, page_number)-打开特定页面的PDF查看器search_and_open(file_path, query, result_index)-搜索并打开结果
支持的PDF阅读器
- 浏览 (macOS)-
skim://URL方案 - 迷走星球 (Linux)-
--page争论 - 证明 (Linux)-
--page-index争论 - 苏门答腊岛 (Windows)-
-page争论 - Adobe Acrobat (跨平台)-
/A page=N争论
配置
在中配置您的PDF阅读器 ~/.pdf-navigator-config.json:
{
"pdf_reader": "skim",
"reader_path": "/Applications/Skim.app"
}
发展
git clone https://github.com/matsengrp/pdf-navigator-mcp.git
cd pdf-navigator-mcp
pip install -e ".[dev]"
许可证
MIT许可证