PDF处理服务器

一个通过AI自然语言命令操作PDF的工具,支持合并、分割、加密、优化和分析PDF文件。

  • by Sohaib-2
  • Python
  • 本地部署
  • 16 星标
  • 更新于
在 GitHub 查看 Sohaib-2/pdf-mcp-server

使用说明

PDF MCP服务器

通过Claude集成,使用AI驱动的自然语言命令转换PDF操作

全面的PDF工具包,通过MCP(模型上下文协议)与Claude AI无缝集成。使用简单的对话命令执行复杂的PDF操作-轻松合并、拆分、加密、优化和分析PDF。

🚀 快速开始

克隆和设置

git clone https://github.com/Sohaib-2/pdf-mcp-server.git
cd pdf-mcp-server

选项1:使用虚拟环境(推荐)

python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS/Linux  
source .venv/bin/activate

pip install -r requirements.txt

选项2:无虚拟环境

pip install fastmcp requests pathlib

安装PDF工具

PDFtk:

# Ubuntu/Debian
sudo apt-get install pdftk
# macOS
brew install pdftk-java
# Windows: Download from https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/

QPDF:

# Ubuntu/Debian
sudo apt-get install qpdf
# macOS
brew install qpdf
# Windows: Download from https://qpdf.sourceforge.io/

🔧 Claude桌面集成

  1. 找到Claude配置文件:

    • 窗户: %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  2. 添加PDF MCP服务器:

使用虚拟环境:

{
  "mcpServers": {
    "pdf-tools": {
      "command": "C:\\path\\to\\pdf-mcp-server\\.venv\\Scripts\\python.exe",
      "args": ["C:\\path\\to\\pdf-mcp-server\\server.py"]
    }
  }
}

没有虚拟环境:

{
  "mcpServers": {
    "pdf-tools": {
      "command": "python",
      "args": ["C:\\path\\to\\pdf-mcp-server\\server.py"]
    }
  }
}

带venv的macOS/Linux:

{
  "mcpServers": {
    "pdf-tools": {
      "command": "/path/to/pdf-mcp-server/.venv/bin/python",
      "args": ["/path/to/pdf-mcp-server/server.py"]
    }
  }
}
  1. 重新启动克劳德桌面

  2. 开始使用自然语言:

    • “将这3个PDF合并到一个文档中”
    • “使用密码保护加密我的报告”
    • “摘录本手册第1-10页”

📚 完整的工具参考

核心业务

工具 说明 示例
merge_pdfs 合并多个PDF merge_pdfs(['doc1.pdf', 'doc2.pdf'], 'combined.pdf')
split_pdf 拆分为单独的页面 split_pdf('document.pdf', './pages/')
extract_pages 提取特定页面范围 extract_pages('book.pdf', '1-5,10,15-20', 'excerpt.pdf')
rotate_pages 按度数旋转页面 rotate_pages('scan.pdf', '90', 'rotated.pdf', '1-3')

安全与加密

工具 说明 示例
encrypt_pdf AES-256加密 encrypt_pdf('file.pdf', 'secure.pdf', 'password123')
encrypt_pdf_basic 基本密码保护 encrypt_pdf_basic('doc.pdf', 'protected.pdf', 'pass', 'admin')
decrypt_pdf 删除密码保护 decrypt_pdf('locked.pdf', 'unlocked.pdf', 'password')

优化与修复

工具 说明 示例
optimize_pdf 压缩网页/电子邮件 optimize_pdf('large.pdf', 'small.pdf', 'high')
repair_pdf 修复损坏的PDF repair_pdf('broken.pdf', 'fixed.pdf')
check_pdf_integrity 验证PDF结构 check_pdf_integrity('suspicious.pdf')

信息与分析

工具 说明 示例
get_pdf_info 详细元数据(JSON) get_pdf_info('document.pdf')
update_pdf_metadata 修改标题/作者等 update_pdf_metadata('file.pdf', 'updated.pdf', title='New Title')
inspect_pdf_structure 内部结构分析 inspect_pdf_structure('complex.pdf', detailed=True)
extract_pdf_attachments 提取嵌入文件 extract_pdf_attachments('portfolio.pdf', './attachments/')

文件管理

工具 说明 示例
download_pdf 从URL下载 download_pdf('https://example.com/file.pdf', 'local.pdf')
open_pdf_preview 使用系统查看器打开 open_pdf_preview('report.pdf', browser=False)
get_file_info 文件大小/路径详细信息 get_file_info('document.pdf')
configure_pdf_workspace 设置工作目录 configure_pdf_workspace('/path/to/workspace')
count_pdfs_in_directory 在文件夹中列出PDF count_pdfs_in_directory('./pdf_folder/')

系统管理

工具 描述 目的
get_server_status 检查工具可用性 验证PDFtk/QPDF安装
list_default_directories 显示搜索路径 调试文件解析问题
get_pdf_tools_help 完整文档 应用内帮助参考

💬 自然语言示例

文件管理:

  • “将我所有的研究论文合并到一个参考书目中”
  • “将这本100页的手册分成章节”
  • “从第2-4页摘录执行摘要”

安全操作:

  • “用军用级保护加密此合同”
  • “删除此锁定文档中的密码”
  • “添加所有者权限以防止编辑”

文件优化:

  • “优化我下载文件夹中的所有PDF”
  • “修复此损坏的演示文稿文件”

高级分析:

  • “显示此学术论文的详细元数据”
  • “分析安全审计的内部结构”

🗂️ 文件路径处理

灵活的路径分辨率:

  • 绝对的: C:\Documents\file.pdf
  • 相对: ../pdfs/document.pdf
  • 仅限文件名: report.pdf (搜索默认目录)

默认搜索顺序:

  1. PDF_WORKSPACE 环境变量
  2. ~/Documents/PDFs
  3. ~/Downloads
  4. ~/Desktop
  5. 当前工作目录

⚙️ 配置

自定义工作区:

configure_pdf_workspace('/path/to/your/pdfs')

检查安装:

get_server_status()  # Verify PDFtk and QPDF availability

🛠️ 故障排除

常见问题:

问题 解决方案
PDFtk not found 安装PDFtk并添加到PATH
QPDF error 通过包管理器安装QPDF
File not found 使用 list_default_directories() 检查搜索路径
Permission denied 使用适当的文件权限运行
Invalid PDF 使用 check_pdf_integrity() 验证文件

调试命令:

get_server_status()           # Check tool installation
list_default_directories()    # Verify search paths  
get_pdf_info('file.pdf')      # Validate PDF structure

🏗️ 建筑

pdf-mcp-server/
├── server.py              # FastMCP server with 16 tools
├── pdftk_tools.py         # PDFtk CLI wrapper
├── qpdf_tools.py          # QPDF CLI wrapper  
├── utils.py               # File utilities & path resolution
└── requirements.txt       # Python dependencies

内置:

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支: git checkout -b feature/amazing-feature
  3. 提交更改: git commit -m 'Add amazing feature'
  4. 推送到分支: git push origin feature/amazing-feature
  5. 打开拉取请求

📄 许可证

该项目根据麻省理工学院许可证获得许可

👨‍💻 作者

Sohaib-2 - GitHub

🌟 致谢


⭐ 标记此回购 如果它对你有帮助! | 🐛 报告问题 | 💡 请求功能