一个全面的模型上下文协议(MCP)服务器,用于PDF阅读、导航和文本搜索,并与跨平台PDF查看器集成。通过提供PDF功能来消除PyMuPDF依赖问题。
# 使用pipx安装(推荐)
pipx install git+https://github.com/matsengrp/pdf-navigator-mcp.git
# 或在当前环境安装
pip install git+https://github.com/matsengrp/pdf-navigator-mcp.git
添加到你的~/.claude.json:
{
"mcpServers": {
"pdf-navigator": {
"type": "stdio",
"command": "pdf-navigator-mcp"
}
}
}
在Claude Code中,你可以:
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) - 搜索并打开到结果extract_form_to_markdown(file_path, output_md_path) - 将表单字段提取到Markdown中,检测多行fill_form_from_markdown(pdf_path, markdown_path, output_pdf_path, distribute_text=True, max_chars_per_field=50, respect_line_breaks=True) - 使用智能文本分布从Markdown填充PDFPDF表单填写功能使用基于Markdown的工作流程:
# 第一步:将表单字段提取到Markdown
# 创建一个带有每个字段占位符的Markdown文件
extract_form_to_markdown("application.pdf", "application_form.md")
# 第二步:在编辑器中编辑application_form.md
# 在每个箭头(→)后填写值
# 第三步:用你的数据填写PDF
fill_form_from_markdown("application.pdf", "application_form.md", "application_filled.pdf")
提取的Markdown看起来像这样:
# PDF表单:application.pdf
类型:交互式表单
生成日期:2025-08-03
## 表单字段
### 第1页
- 全名 → 约翰·史密斯
- 电子邮件 → john@example.com
- 电话 → 555-0123
- [ ] 订阅新闻通讯 → true
PDF Navigator现在包括高级多行表单检测和智能文本分布:
distribute_text: bool - 启用/禁用多行文本分布(默认:True)max_chars_per_field: int - 每个字段的目标字符限制(默认:50)respect_line_breaks: bool - 尊重新行输入文本(默认:True)而不是将“与父母一起阅读书籍,做拼图和加法,去旅行,与姐姐一起做任何事情”挤进一个小字段,它会自动分配为:
为了在多行字段中实现最佳文本分布:
- personal_interests_love_1 (我爱...) → 阅读书籍与父母
做拼图和加法
去旅行
与姐姐一起做任何事情
新行允许智能地分布在多个PDF字段上,防止文本拥挤。使用extract_and_fill_form和format_multiline_form_data MCP提示进行引导工作流程。
skim:// URL方案--page 参数--page-index 参数-page 参数/A page=N 参数在~/.pdf-navigator-config.json中配置你的PDF阅读器:
{
"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许可证