返回市场
MCP-PDF提取服务器

MCP-PDF提取服务器

作者:xraywu24 星标更新:2025-05-31

项目介绍

PDF 提取 MCP 服务器 (Claude Code 分支)

用于从PDF文件中提取内容的MCP服务器,并修复了Claude Code CLI安装的问题。

此分支包括安装和运行与Claude Code(CLI版本)相关的关键修复。

此分支的不同之处

  1. 添加了 __main__.py - 允许通过 python -m pdf_extraction 命令作为模块运行包。
  2. 针对Claude Code的具体说明 - 清晰的安装步骤,适用于Claude Code CLI。
  3. 测试安装过程 - 验证了与 claude mcp add 命令一起工作的安装过程。

组件

工具

服务器实现了一个工具:

  • extract-pdf-contents: 从本地PDF文件中提取内容
    • 接受 pdf_path 作为必需的字符串参数(本地文件路径)
    • 接受 pages 作为可选的字符串参数(逗号分隔的页码,支持负索引如 -1 表示最后一页)
    • 支持PDF文本提取和扫描文档的OCR

安装步骤(针对Claude Code CLI)

先决条件

  • Python 3.11 或更高版本
  • pip 或 conda
  • 已安装的Claude Code CLI (claude 命令)

第一步:克隆并安装

# 克隆这个分支
git clone https://github.com/lh/mcp-pdf-extraction-server.git
cd mcp-pdf-extraction-server

# 在开发模式下安装
pip install -e .

第二步:查找已安装的命令

# 检查pdf-extraction安装的位置
which pdf-extraction
# 示例输出: /opt/homebrew/Caskroom/miniconda/base/bin/pdf-extraction

第三步:添加到Claude Code

# 使用上面的完整路径添加服务器
claude mcp add pdf-extraction /opt/homebrew/Caskroom/miniconda/base/bin/pdf-extraction

# 验证是否已添加
claude mcp list

第四步:在Claude中使用

# 启动一个新的Claude会话
claude

# 在Claude中键入:
/mcp

# 应该看到:
# MCP 服务器状态
# • pdf-extraction: 连接

使用示例

连接后,你可以让Claude提取PDF内容:

"你能从 /path/to/document.pdf 中提取内容吗?"

"提取 /path/to/document.pdf 的第1-3页和最后一页"

故障排除

服务器无法连接

  1. 确保在添加服务器后启动了一个新的Claude会话。
  2. 验证命令路径是否正确:ls -la $(which pdf-extraction)
  3. 直接测试命令(它应该等待输入):pdf-extraction

模块未找到错误

如果你遇到Python导入错误:

  1. 确保你使用的是安装包的同一Python环境。
  2. 尝试使用完整的Python路径:claude mcp add pdf-extraction /path/to/python -m pdf_extraction

安装问题

如果 pip install -e . 失败:

  1. 确保你有Python 3.11+:python --version
  2. 尝试创建一个全新的虚拟环境:
    python -m venv venv
    source venv/bin/activate  # 在Windows上:venv\Scripts\activate
    pip install -e .
    

针对Claude Desktop用户

此分支特别适用于Claude Code CLI。如果你使用的是Claude Desktop(GUI应用程序),请参阅原始仓库获取安装说明。

依赖项

  • mcp>=1.2.0
  • pypdf2>=3.0.1
  • pytesseract>=0.3.10(用于OCR支持)
  • Pillow>=10.0.0
  • pydantic>=2.10.1,<3.0.0
  • pymupdf>=1.24.0

贡献

欢迎贡献!此分支的主要更改是添加了 __main__.py,使其可以作为模块运行。

许可证

同原始仓库。

致谢

原始服务器由 @xraywu 提供 Claude Code修复由 @lh 提供