Integrates with Baidu OCR API to provide optical character recognition for scanned PDF documents, supporting 10 languages including Chinese, English, Japanese, Korean, French, Spanish, Portuguese, German, Italian, and Russian.
MCP PDF Reader
🚀 基于 Model Context Protocol 的智能 PDF 处理服务器
功能强大 · 易于使用 · 智能识别
📖 项目简介
MCP PDF Reader 是一个专业的 PDF 文档处理工具,通过 Model Context Protocol (MCP) 为 AI 应用提供强大的 PDF 文本提取、搜索、OCR 识别等功能。它能够智能识别 PDF 类型,自动选择最佳处理策略,为用户提供高效便捷的文档处理体验。
🎯 核心优势
🤖 智能识别:自动判断 PDF 类型(文本型/扫描型),选择最佳处理方案
🔍 强大搜索:支持正则表达式、全字匹配、大小写敏感搜索
📊 完整元数据:提取作者、标题、创建日期等 13 项元数据
🌏 多语言 OCR:支持中文、英文、日文、韩文等 10 种语言识别
⚡ 高性能:令牌缓存机制、智能错误处理、并发保护、使用文件缓存重复读取pdf文件不消耗API调用
🛡️ 安全可靠:文件大小限制、路径验证、错误隔离
🚀 快速开始
1. 安装依赖
2. 配置 MCP 服务器
在你的 AI 客户端(如 Cursor)配置文件中添加:
3. (可选)配置百度 OCR
创建应用,每个月大约 1000-5000 页的免费额度,获取 API Key 和 Secret Key
如果需要使用 OCR 功能,有两种配置方式:
方式一:环境变量配置(推荐)
设置环境变量:
方式二:配置文件配置
也可以直接在 Cursor 配置文件中配置:
4. 重启客户端
重启 Cursor 或你的 MCP 客户端,即可开始使用!
✨ 功能特性
🛠️ 核心工具
功能 | 工具名称 | 说明 | 推荐指数 |
智能阅读 |
| 自动识别文本/扫描型 PDF,选择最佳策略 | ⭐⭐⭐⭐⭐ |
文本提取 |
| 从文本型 PDF 提取内容,支持页码范围 | ⭐⭐⭐⭐ |
内容搜索 |
| 全文搜索,支持正则、大小写、全字匹配 | ⭐⭐⭐⭐ |
元数据提取 |
| 获取 PDF 文件的完整元数据信息 | ⭐⭐⭐ |
OCR 识别 |
| 百度 OCR 识别(手动传递密钥) | ⭐⭐⭐ |
自动 OCR |
| 百度 OCR 识别(自动读取环境变量) | ⭐⭐⭐⭐ |
🎯 智能特性
自动类型检测:智能识别 PDF 是文本型还是扫描型
自动降级策略:文本提取失败时自动切换到 OCR
成本优化:优先使用免费的文本提取,需要时才调用 OCR
质量保证:三重文本质量检查(字符密度、行数、空白率)
图像检测警告:提醒可能包含的重要图像内容
智能缓存:OCR 结果缓存,避免重复识别
批量处理:支持多页批量处理和分页处理
🛠️ 技术栈
核心依赖
系统要求
Node.js: 18.0.0 或更高版本
内存: 至少 512MB 可用内存(处理大文件需要更多)
磁盘: 足够的临时存储空间
📚 使用指南
🌟 推荐工具:read-pdf-smart
最智能的 PDF 阅读工具,适合 99% 的使用场景。
参数说明
参数 | 类型 | 默认值 | 说明 |
| string | 必填 | PDF 文件的完整路径 |
| string |
| 页码范围(支持
,
,
,
,
) |
| enum |
| OCR 语言类型(需要时使用) |
使用示例
📄 工具:read-pdf
基础文本提取工具,适用于文本型 PDF。
参数说明
参数 | 类型 | 默认值 | 说明 |
| string | 必填 | PDF 文件路径 |
| string |
| 页码范围(如
,
,
) |
| boolean |
| 是否包含 PDF 元数据 |
| boolean |
| 是否清理和规范化文本 |
使用示例
🔍 工具:search-pdf
PDF 全文搜索工具,支持高级搜索选项。
参数说明
参数 | 类型 | 默认值 | 说明 |
| string | 必填 | PDF 文件路径 |
| string | 必填 | 要搜索的文本 |
| boolean |
| 是否区分大小写 |
| boolean |
| 是否全字匹配 |
使用示例
📊 工具:pdf-metadata
元数据提取工具,获取 PDF 文件信息(不读取文本内容)。
提取的元数据
文件名、文件大小、页面数
作者、标题、主题
创建者、生成器软件
创建日期、修改日期
关键词
是否加密
PDF 版本
使用示例
🖼️ OCR 工具
ocr-pdf-auto-legacy(推荐)
自动 OCR 识别工具(从环境变量读取密钥,更方便)。
参数说明
参数 | 类型 | 默认值 | 说明 |
| string | 必填 | PDF 文件路径 |
| string |
| 页码范围(支持
,
,
,
,
) |
| enum |
| 语言类型 |
| boolean |
| 是否检测方向 |
| boolean |
| 是否检测语言 |
支持的语言类型
CHN_ENG- 中英文混合(默认)ENG- 英文JAP- 日文KOR- 韩文FRE- 法文SPA- 西班牙文POR- 葡萄牙文GER- 德文ITA- 意大利文RUS- 俄文
使用示例
⚙️ 配置说明
系统要求
Node.js: 18.0.0 或更高版本
内存: 至少 512MB 可用内存(处理大文件需要更多)
磁盘: 足够的临时存储空间
安装步骤
1. 克隆或下载项目
2. 安装依赖
3. 配置 Cursor(或其他 MCP 客户端)
编辑 Cursor 配置文件,添加 MCP 服务器配置:
4. (可选)配置百度 OCR
获取百度 OCR API 密钥:
访问 百度智能云控制台
创建应用并选择"文字识别 OCR"服务
在应用管理页面获取
API Key和Secret Key
配置环境变量:
方式 1:永久配置(推荐)
Windows 系统设置:
右键"此电脑" → "属性" → "高级系统设置"
点击"环境变量"
在"用户变量"中添加:
BAIDU_OCR_API_KEY= 你的 API KeyBAIDU_OCR_SECRET_KEY= 你的 Secret Key
方式 2:临时配置
5. 重启客户端
重启 Cursor 或你的 MCP 客户端以加载配置。
核心模块说明
MCP 服务器: 基于
@modelcontextprotocol/sdk实现PDF 处理: 集成
pdf-parse和pdf-lib进行文本提取OCR 识别: 集成百度 OCR API,支持多语言识别
缓存系统: 智能缓存机制,提升处理效率
错误处理: 完善的错误处理和用户友好的错误信息
🔧 高级配置
文件大小限制
默认最大文件大小:50MB
修改限制(在 index.js 中):
OCR 处理页数限制
默认最多处理:10 页
修改限制(在 index.js 中):
文本质量检查阈值
可以调整质量判断规则(在 index.js 中):
💡 使用技巧
如何选择合适的工具?
最佳实践
1. 优先使用 read-pdf-smart
2. 处理大文件时指定页码范围
3. OCR 识别时使用正确的语言类型
4. 搜索时使用合适的选项
🔬 开发指南
添加新工具
调试技巧
由于 MCP 协议的限制,不能直接使用 console.log。建议:
🤝 贡献指南
我们欢迎所有形式的贡献!
贡献方向
🐛 Bug 修复:修复已知问题
✨ 新功能:添加新的 PDF 处理功能
📝 文档改进:完善使用文档和示例
⚡ 性能优化:提升处理速度和内存使用
🧪 测试:添加单元测试和集成测试
🌏 国际化:支持更多语言
代码规范
使用 ES6+ 语法
添加 详细的中文注释
遵循 异步/等待 模式
包含 错误处理
提供 JSDoc 文档
📄 许可证
本项目采用 MIT 许可证。详见 LICENSE 文件。
🙏 致谢
Model Context Protocol - MCP 协议框架
pdf-parse - PDF 解析库
pdf-to-png-converter - PDF 转图片工具
pdf-lib - PDF 文档操作库
Baidu AI - OCR 服务提供商
所有贡献者和用户的支持!
如果这个项目对你有帮助,请给个 ⭐ Star 支持一下!