使用说明
PDF MCP 服务器
一个用于处理大型PDF文件的模型上下文协议(MCP)服务器,具备智能分块和文本提取功能。
特点/功能
- PDF 元数据获取文件信息、页数、作者、标题等。
- 文本提取从特定页码范围中提取字符有限制的文本
- PDF搜索在PDF中搜索并获取上下文相关结果
- 智能分块计算处理大型PDF文件时的最佳页面范围
工具
1. pdf_get_metadata
获取PDF文件的元数据。
参数:
pdf_path(字符串,必填):PDF文件的完整路径
返回值:
- 文件大小、页数、标题、作者及其他元数据
2. pdf_extract_text
从一系列页面中提取文本。
参数:
pdf_path(字符串,必填):PDF文件的完整路径start_page(整数,可选):起始页码(从1开始计数,默认值:1)end_page(整数,可选):结束页码(默认:最后一页)max_chars(整数,可选):要提取的最大字符数
返回:
- 提取的文本(含页码标记)
- 字符数统计和截断信息
3. pdf_search
在PDF中搜索文本。
参数:
pdf_path(字符串,必填):PDF文件的完整路径query(字符串,必填):要搜索的文本(不区分大小写)context_chars(整数,可选):匹配周围的上下文字符数(默认:200)max_results(整数,可选):最大结果数(默认:50)
返回:
- 带有页码和上下文的比赛列表
4. pdf_get_chunks
为大型PDF文件计算最佳分块策略。
参数:
pdf_path(字符串,必填):PDF文件的完整路径max_chars_per_chunk(整数,可选):目标块大小(默认:50000)overlap_pages(整数,可选):块之间的页面重叠(默认:1)
返回值:
- 包含页码范围和估计字符数的段落列表
安装
- 安装依赖项:
pip install -r requirements.txt
- 在Claude代码中进行配置(参见配置部分)
配置
添加到您的Claude Code MCP设置中(%APPDATA%\Claude\claude_desktop_config.json (在Windows上):
{
"mcpServers": {
"pdf-processor": {
"command": "python",
"args": ["c:\\Users\\Will\\pdf-mcp-server\\server.py"]
}
}
}
配置完成后,重启 Claude Code 以加载 MCP 服务器。
使用示例
处理一个55MB的PDF文件
- 首先,获取元数据:
Use pdf_get_metadata to check the page count
- 计算数据块:
Use pdf_get_chunks to determine optimal page ranges
- 按块提取文本:
Use pdf_extract_text with the page ranges from step 2
- 在PDF中搜索:
Use pdf_search to find specific content
技术细节
- 用途
pdfplumber用于高质量文本提取 - 用途
pypdf用于元数据和PDF结构 - 在本地运行,使用您的计算资源
- 无文件大小限制(分块处理)
- 处理加密的PDF文件(如果未设置密码保护)
故障排除
服务器未在Claude代码中显示:
- 检查配置中的路径是否正确
- 配置更改后重启Claude代码
- 检查是否可以从命令行访问Python
提取问题:
- 扫描的PDF文件可能文本提取效果不佳(OCR功能尚未实现)
- 有些PDF文件可能具有非标准的编码
