PDF到CSV MCP服务器
FastMCP服务器,用于从PDF文件中提取表格并将其转换为CSV格式。
特性
- 批量PDF处理:从单个或多个PDF中提取表格
- 多种提取策略:自动、晶格(基于网格)和流(基于空白)
- 灵活的输出:保存单个表或合并每个PDF的所有表
- 可配置文件夹:设置自定义输入/输出目录
安装
# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install fastmcp pdfplumber pandas配置
服务器在Claude Desktop中配置为: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"pdf-to-csv": {
"command": "/Users/sara/MCP_PDF_CSV/.venv/bin/python3",
"args": ["/Users/sara/MCP_PDF_CSV/pdf_to_csv_server.py"]
}
}
}用法
默认文件夹
- 输入:
/Users/sara/MCP_PDF_CSV/pdfs/ - 输出:
/Users/sara/MCP_PDF_CSV/output_csv/
可用的MCP工具
- set_folder(文件夹:str)
- 设置包含PDF文件的输入文件夹 - 例子: set_folder("/path/to/pdfs")
- set_output(文件夹:str)
- 设置CSV文件的输出文件夹 - 例子: set_output("/path/to/output")
- list_pdf()
- 列出当前输入文件夹中的所有PDF文件
- extract_tables(文件名:str,页面:str=“all”,策略:str=”auto“,合并:bool=False,strip_ws:bool=True)
- 从单个PDF中提取表格 - 参数: - filename:输入文件夹中的PDF文件名 - pages:“所有”或特定页面,如“1,3-5” - strategy:“auto”、“lattice”或“stream” - merge:使用所有表创建合并的CSV - strip_ws:从单元格中删除空格
- extract_all(pages:str=“all”,策略:str=“auto”,合并:bool=False,strip_ws:bool=True)
- 从文件夹中的所有PDF中提取表格 - 与extract_tables参数相同(文件名除外)
- show_config()
- 显示当前输入/输出文件夹配置
测试
运行测试脚本以验证安装:
source .venv/bin/activate
python test_server.py故障排除
检查克劳德桌面日志
tail -50 ~/Library/Logs/Claude/mcp-server-pdf-to-csv.log常见问题
- “只读文件系统”错误:使用绝对路径(SCRIPT_DIR)修复
- 连接错误:配置更改后重新启动Claude Desktop
- 缺少依赖项:重新安装
pip install fastmcp pdfplumber pandas
技术细节
- 框架:FastMCP 2.13.0.2
- PDF库:pdfplumber(带pdfminer.six后端)
- 数据处理:熊猫
- 运输:STDIO(标准输入/输出)
- 协议:MCP(模型上下文协议)2025-06-18
文件
pdf_to_csv_server.py-主MCP服务器test_server.py-验证脚本README.md-此文件.venv/-Python虚拟环境pdfs/-默认输入文件夹output_csv/-默认输出文件夹
