PDF阅读器MCP服务器
](https://www.npmjs.com/package/@fabriqa.ai/pdf-reader-mcp) ](https://www.npmjs.com/package/@fabriqa.ai/pdf-reader-mcp)
一种模型上下文协议(MCP)服务器,为Claude Code提供高效的PDF文本提取功能。此服务器允许您从PDF文件中读取、搜索和提取元数据,而无需将整个内容加载到Claude的上下文窗口中。
npm包: @fabriqa.ai/pdf-reader-mcp 作者: 韩 博客文章: 我如何构建这个工具来保存我的上下文
特性
- 阅读PDF文件:使用可选的文本清理从PDF文件中提取全文内容
- 搜索PDF:在PDF中搜索具有上下文感知结果的特定文本
- 提取元数据:获取详细的元数据,包括标题、作者、页数、日期等。
- 高效的上下文使用:在不消耗过多克劳德代码上下文的情况下处理大型PDF
- 灵活的选项:支持页面范围、区分大小写的搜索等
安装
选项A:从npm安装(推荐)
npm install -g @fabriqa.ai/pdf-reader-mcp安装后,服务器将在全球范围内可用。您可以通过运行以下命令进行配置:
# The package will be installed in your global node_modules
# Typically: /usr/local/lib/node_modules/@fabriqa.ai/pdf-reader-mcp选项B:从源代码安装
- 克隆此存储库:
git clone https://github.com/hancengiz/read_pdf_as_text_mcp.git
cd read_pdf_as_text_mcp- 安装依赖项:
npm install配置
如果通过npm安装(推荐):
选项1:使用Claude Code CLI(最简单)
# Add the MCP server
claude mcp add pdf-reader npx @fabriqa.ai/pdf-reader-mcp@latest
# Or use the convenience script
npx @fabriqa.ai/pdf-reader-mcp/update-config.js选项2:手动配置
添加到您的 ~/.claude.json:
{
"mcpServers": {
"pdf-reader": {
"command": "npx",
"args": [
"@fabriqa.ai/pdf-reader-mcp@latest"
]
}
}
}这使用 npx 自动运行全局安装的包,而无需指定路径。
快速设置脚本(可选):
通过npm安装后,您可以使用附带的配置脚本自动更新您的 ~/.claude.json:
npx @fabriqa.ai/pdf-reader-mcp/update-config.js或者,如果从源代码安装:
node update-config.js这将使用以下命令自动添加MCP服务器 npx,使其在所有项目中都可以在机器范围内使用。
手动配置:
对于 Claude桌面版,编辑 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"pdf-reader": {
"command": "npx",
"args": [
"@fabriqa.ai/pdf-reader-mcp@latest"
]
}
}
}用法
配置后,重新启动Claude Code。将提供以下工具:
1.阅读pdf
从PDF文件中提取文本内容。
参数:
file(必填):PDF文件的路径pages(可选):页面范围(例如,“1-5”、“1,3,5”和“全部”)。默认值:“全部”clean_text(可选):清理并规范提取的文本。默认值:falseinclude_metadata(可选):在输出中包含PDF元数据。默认值:true
例子:
Can you read the PDF at /path/to/document.pdf?2.搜索pdf
在PDF文件中搜索特定文本。
参数:
file(必填):PDF文件的路径query(必填):要搜索的文本case_sensitive(可选):区分大小写的搜索。默认值:falsewhole_word(可选):仅匹配整个单词。默认值:false
例子:
Search for "machine learning" in /path/to/document.pdf3.pdf元数据
从PDF文件中提取元数据。
参数:
file(必填):PDF文件的路径
例子:
Get metadata from /path/to/document.pdf工作流示例
以下是如何将此MCP服务器与Claude Code一起使用:
- 先提取元数据 要理解该文件:
What's the metadata for ~/Documents/research-paper.pdf?- 搜索特定主题 不读取整个文件:
Search for "neural networks" in ~/Documents/research-paper.pdf- 阅读具体章节 当你知道自己在寻找什么时:
Read pages 10-15 from ~/Documents/research-paper.pdf with cleaned text益处
- 上下文效率:处理大型PDF文件,无需将所有内容加载到Claude的上下文中
- 更快的分析:只搜索和提取您需要的内容
- 更好的性能:处理多个或大型PDF时减少令牌使用
- 灵活提取:选择要提取的信息以及如何格式化
技术细节
- 与 @模型上下文协议/sdk
- 用途 pdf解析 用于PDF文本提取
- 作为通过stdio进行通信的本地Node.js进程运行
- 支持PDF解析可以处理的所有PDF版本
故障排除
服务器未出现在Claude代码中
- 验证配置文件中的路径是否正确
- 确保Node.js已安装并位于您的PATH中
- 检查是否安装了依赖项:
npm install - 完全重新启动Claude代码
- 检查克劳德代码日志是否有任何错误消息
PDF未找到错误
- 使用PDF文件的绝对路径
- 验证文件权限
- 确保PDF文件存在于指定位置
文本提取问题
- 某些PDF(扫描图像)可能不包含可提取的文本
- 尝试启用
clean_text更好的格式化选项 - 复杂的布局可能会影响文本提取质量
发展
要修改或扩展服务器,请执行以下操作:
- 编辑
index.js添加新工具或修改现有工具 - 更新
ListToolsRequestSchema注册新工具的处理程序 - 在中添加相应的处理程序
CallToolRequestSchema处理器 - 重新启动服务器(重新启动Claude Code)以测试更改
许可证
麻省理工学院
作者
由...创建 韩
贡献
请随时提交问题或拉取请求以改进此MCP服务器。
