PDF表格提取转换服务

一款用于从PDF文件中提取表格并转换为CSV格式的服务器工具,支持批量处理、多种提取策略和灵活的输出配置。

  • by sergiudanstan
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 sergiudanstan/mcp-pdf-to-csv

使用说明

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工具

  1. set_folder(文件夹:str)

    • 设置包含PDF文件的输入文件夹
    • 例子: set_folder("/path/to/pdfs")
  2. set_output(文件夹:str)

    • 设置CSV文件的输出文件夹
    • 例子: set_output("/path/to/output")
  3. list_pdf()

    • 列出当前输入文件夹中的所有PDF文件
  4. 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:从单元格中删除空格
  5. extract_all(pages:str=“all”,策略:str=“auto”,合并:bool=False,strip_ws:bool=True)

    • 从文件夹中的所有PDF中提取表格
    • 与extract_tables参数相同(文件名除外)
  6. show_config()

    • 显示当前输入/输出文件夹配置

测试

运行测试脚本以验证安装:

source .venv/bin/activate
python test_server.py

故障排除

检查克劳德桌面日志

tail -50 ~/Library/Logs/Claude/mcp-server-pdf-to-csv.log

常见问题

  1. “只读文件系统”错误:使用绝对路径(SCRIPT_DIR)修复
  2. 连接错误:配置更改后重新启动Claude Desktop
  3. 缺少依赖项:重新安装 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/ -默认输出文件夹