使用说明
PDF MCP服务器
MCP(模型上下文协议)服务器,从URL中获取PDF并智能解析,以实现最佳的AI消费。支持文本提取、图像渲染和混合模式。
特性
-
多种处理模式:
- 🔤 文本模式:文本密集型文档的快速文本提取
- 🖼️ 图像模式:将所有页面渲染为高质量图像
- 🔄 混合模式:提取文本+呈现视觉页面(图表、示意图)
- 🤖 自动模式:根据内容智能检测最佳方法
-
智能文档分析:自动识别包含视觉内容的页面
-
可配置的质量:可调DPI(72-300)用于图像渲染
-
元数据提取:提取PDF标题、作者、页数等
-
安全:URL验证、文件大小限制和超时保护
安装
# Install dependencies
npm install
# Build the project
npm run build
发展
# Run in development mode
npm run dev
# Watch mode (auto-rebuild on changes)
npm run watch
用法
作为MCP服务器
添加到您的MCP客户端配置中(例如,Claude Desktop):
{
"mcpServers": {
"pdf-parser": {
"command": "node",
"args": ["C:\\dev\\aii-mcp-example\\dist\\index.js"]
}
}
}
或者在开发模式下:
{
"mcpServers": {
"pdf-parser": {
"command": "npm",
"args": ["run", "dev"],
"cwd": "C:\\dev\\aii-mcp-example"
}
}
}
工具:fetch_and_parse_pdf
从URL获取PDF,并根据指定模式对其进行解析。
参数:
url(必填):要获取的PDF的URLmode(可选):处理模式-"text","images","hybrid",或"auto"(默认值:"auto")dpi(可选):图像渲染质量,72-300(默认值:150)maxPages(可选):渲染为图像的最大页面数,1-100(默认值:50)pages(可选):要呈现的特定页码数组
示例:
// Auto mode - intelligently detects best approach
{
"url": "https://example.com/document.pdf"
}
// Text-only extraction
{
"url": "https://example.com/report.pdf",
"mode": "text"
}
// Render all pages as images
{
"url": "https://example.com/slides.pdf",
"mode": "images",
"dpi": 200,
"maxPages": 20
}
// Hybrid mode with specific pages
{
"url": "https://example.com/report.pdf",
"mode": "hybrid",
"pages": [1, 5, 10]
}
运作原理
模式选择逻辑
自动模式 分析文档并选择:
- 文本模式:适用于文本密度高且没有视觉元素的文档
- 图像模式:对于视觉页面超过50%或文本密度非常低的文档
- 混合模式:用于混合内容文档(文本+图表/示意图)
混合模式智能
在混合模式下,该工具:
- 提取所有文本内容
- 分析每个页面以检测视觉元素(图像、图表、低文本密度)
- 有选择地仅呈现具有重要视觉内容的页面
- 返回文本和图像以获得最佳的AI理解
性能注意事项
- 文本提取:对于大多数PDF文件,<1s
- 图像渲染:每页约500毫秒
- 内存使用:典型文档约200MB
- 最大文件大小:50MB(可配置)
- 请求超时:30秒
建筑
src/
├── index.ts # MCP server entry point
├── tools/
│ └── pdfTool.ts # PDF tool implementation
├── utils/
│ ├── fetcher.ts # URL fetching with validation
│ ├── pdfParser.ts # Text extraction (PDF.js)
│ ├── pdfRenderer.ts # Image rendering (Canvas)
│ └── documentAnalyzer.ts # Intelligent content detection
└── types/
└── index.ts # TypeScript type definitions
技术
- @模型上下文协议/sdk:MCP服务器框架
- PDF.js:PDF解析和文本提取
- @纳帕/帆布:用于渲染的高性能服务器端画布
- 萨德:运行时类型验证
- TypeScript:类型安全开发
安全功能
- ✅ URL协议验证(仅限HTTP/HTTPS)
- ✅ 文件大小限制(默认50MB)
- ✅ 请求超时(30秒)
- ✅ 内容类型验证
- ✅ 使用Zod模式进行输入验证
错误处理
服务器为以下对象提供详细的错误消息:
- URL无效
- 网络故障
- 超时错误
- PDF解析错误
- 文件大小违规
- 不支持的内容类型
局限性
- 最大文件大小:50MB
- 渲染的最大页数:100
- 支持的协议:HTTP,仅HTTPS
- 图像格式:PNG(base64编码)
用例
- 📄 研究论文:混合模式提取文本+渲染图形
- 📊 财务报告:文本+图表的混合模式
- 📝 文本文档:文本模式,快速高效提取
- 🎨 演示:幻灯片的图像模式
- 📋 表单:保留布局的图像模式
- 📚 电子书:文本模式可实现最佳阅读效果
许可证
麻省理工学院