PDF操作服务器

一个为AI助手提供全面PDF操作能力的服务器,支持自然语言交互,包括编辑、表单填充、页面操作和安全工具等功能。

  • by nitaiaharoni1
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 nitaiaharoni1/pdf-mcp

使用说明

PDF MCP服务器

模型上下文协议(MCP)服务器,为AI助手提供全面的PDF操作功能。该服务器通过强大的编辑、表单填充、页面操作和安全工具,实现了与PDF文档的自然语言交互。

🚀 快速安装

适用于Claude桌面用户

快速设置(NPX-无需安装):

  1. 添加到Claude Desktop配置(请参阅 安装 下节)
  2. 重新启动克劳德桌面
  3. 开始使用PDF工具!

或全局安装:

npm install -g mcp-pdf
# Then configure Claude Desktop (see Installation section)

适用于Cursor IDE用户

  1. 配置光标MCP设置(请参阅 安装 下节)
  2. 重新启动游标IDE
  3. PDF工具将在聊天中提供!

✨ 提示: 使用NPX方法-无需安装!需要时,软件包会自动下载。

✨ 特性

📄 文档操作

  • 打开PDF -使用会话管理加载和读取PDF文件
  • 创建PDF -生成新的空白PDF文档
  • 保存PDF -将修改后的PDF保存到文件系统
  • 显示简介 -检索元数据、页数、大小、加密状态

📝 表单操作

  • 列表表单字段 -发现所有具有类型和值的表单字段
  • 填写表单字段 -填充单个表单字段(文本、复选框、单选框、下拉列表)
  • 填写表单字段 -通过一次操作同时填写多个表单字段
  • 获取表单值 -导出所有表单数据
  • 扁平表格 -使表单字段不可编辑

✏️ 编辑操作

  • 添加文本 -在具有样式的特定坐标处插入文本
  • 添加图像 -将图像嵌入PDF页面
  • 添加注释 -创建评论、亮点和笔记
  • 添加水印 -将文本或图像水印应用于所有页面
  • 修改元数据 -更新标题、作者、主题、关键字

📑 页面操作

  • 列表页面 -获取页面尺寸和信息
  • 合并PDF -合并多个PDF文档
  • 拆分PDF -将PDF拆分为单独的文件(每页一个)
  • 旋转页面 -旋转特定页面
  • 删除页面 -从PDF中删除页面
  • 提取页面 -将页面提取为新的PDF文件

✍️ 签名操作

  • 视觉签名 -添加基于图像的签名
  • 签名字段 -在表单中创建签名字段
  • 数字签名 -使用证书应用数字签名(需要实施)
  • 验证签名 -检查现有数字签名

🔒 安全操作

  • 加密PDF -添加密码保护(有限支持)
  • 设置权限 -控制打印、复制、编辑权限
  • 获取安全信息 -检查加密和权限状态

📤 出口业务

  • 提取文本 -提取所有文本内容(需要额外实现)
  • 提取图像 -提取嵌入图像(需要额外实现)
  • 导出表单数据 -将表单数据导出为JSON或CSV
  • 压缩PDF -优化PDF文件大小

🛠️ 安装

先决条件

  • Node.js(v18或更高版本)- 下载Node.js
  • 已安装Cursor IDE或Claude Desktop

📱 Cursor IDE的安装

Cursor IDE通过其配置支持MCP服务器。请按照以下步骤操作:

第一步:安装Node.js

确保已安装Node.js(v18或更高版本):

node --version  # Should be v18.0.0 or higher

步骤2:配置游标IDE

  1. 打开光标设置:

    • 按 Cmd+, (macOS)或 Ctrl+, (Windows/Linux)打开设置
    • 或前往 Cursor → Settings → Features → Model Context Protocol
  2. 添加MCP服务器配置:

    配置文件的位置取决于您的操作系统:

    • macOS: ~/Library/Application Support/Cursor/User/globalStorage/mcp.json
    • 窗户: %APPDATA%\Cursor\User\globalStorage\mcp.json
    • Linux: ~/.config/Cursor/User/globalStorage/mcp.json
  3. 编辑配置文件:

    创建或编辑 mcp.json 文件并添加:

    {
      "mcpServers": {
        "mcp-pdf": {
          "command": "npx",
          "args": ["-y", "mcp-pdf"]
        }
      }
    }
    

    替代方案(如果使用全局安装):

    {
      "mcpServers": {
        "mcp-pdf": {
          "command": "pdf-mcp"
        }
      }
    }
    
  4. 重新启动游标IDE:

    • 完全退出Cursor(不仅仅是关闭窗口)
    • 重新打开Cursor以应用更改
  5. 验证安装:

    • 在Cursor中打开聊天
    • 现在,MCP工具菜单中应该可以使用PDF工具

🖥️ Claude Desktop的安装

Claude Desktop使用配置文件连接到MCP服务器。

第一步:安装Node.js

确保已安装Node.js(v18或更高版本):

node --version  # Should be v18.0.0 or higher

步骤2:安装软件包(可选但推荐)

选项A:使用NPX(无需安装)

# No installation needed - npx will download and run automatically

选项B:全局安装

npm install -g mcp-pdf

步骤3:配置Claude桌面

  1. 找到配置文件:

    配置文件的位置取决于您的操作系统:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 窗户: %APPDATA%\Claude\claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  2. 创建或编辑配置文件:

    如果文件不存在,请创建它。然后添加或更新 mcpServers 章节:

    {
      "mcpServers": {
        "mcp-pdf": {
          "command": "npx",
          "args": ["-y", "mcp-pdf"]
        }
      }
    }
    

    如果全局安装,请使用:

    {
      "mcpServers": {
        "mcp-pdf": {
          "command": "pdf-mcp"
        }
      }
    }
    

    如果您有多个MCP服务器,请合并它们:

    {
      "mcpServers": {
        "mcp-pdf": {
          "command": "npx",
          "args": ["-y", "mcp-pdf"]
        },
        "other-server": {
          "command": "npx",
          "args": ["-y", "other-package"]
        }
      }
    }
    
  3. 重新启动克劳德桌面:

    • 完全退出Claude Desktop(不仅仅是关闭窗口)
    • 重新打开Claude Desktop以应用更改
  4. 验证安装:

    • 打开克劳德桌面
    • 开始对话
    • PDF工具应该可用——试着问:“有哪些PDF工具可用?”

快速设置脚本(macOS/Linux)

您可以使用此命令快速添加配置:

# For Claude Desktop (macOS)
mkdir -p ~/Library/Application\ Support/Claude
cat > ~/Library/Application\ Support/Claude/claude_desktop_config.json << 'EOF'
{
  "mcpServers": {
    "mcp-pdf": {
      "command": "npx",
      "args": ["-y", "mcp-pdf"]
    }
  }
}
EOF

🔧 故障排除

常见问题

1.MCP服务器未出现:

  • 验证是否安装了Node.js: node --version
  • 检查配置文件语法(必须是有效的JSON)
  • 确保完全重新启动应用程序(退出并重新打开)
  • 检查应用程序日志是否有错误

2.“找不到命令”错误:

  • 如果使用全局安装,请确保npm global bin在您的PATH中
  • 尝试使用 npx 方法(不需要安装)
  • 验证包名称: mcp-pdf (不是 pdf-mcp)

3.找不到配置文件:

  • 如果目录不存在,则创建该目录
  • 确保您使用的操作系统路径正确
  • 检查文件权限

4.工具不工作:

  • 验证MCP服务器是否正在运行(检查应用程序日志)
  • 确保PDF文件使用绝对路径
  • 检查PDF文件是否存在并且可读

验证安装

测试安装:

# Test CLI (if installed globally)
pdf-mcp --version

# Test with npx
npx mcp-pdf --version

📦 替代安装方法

从源代码安装:

git clone https://github.com/nitaiaharoni1/pdf-mcp.git
cd pdf-mcp
npm install
npm run build
npm start

🎯 可用工具

PDF MCP服务器提供30多种强大的PDF操作工具:

文档工具

  • open_pdf -打开并阅读PDF文件信息
  • create_pdf -创建新的空白PDF或从模板创建
  • save_pdf -将PDF保存到文件系统
  • close_pdf -关闭PDF并清理资源
  • get_pdf_info -获取元数据、页数、大小、加密状态

表单工具

  • list_form_fields -列出所有具有类型和值的表单字段
  • fill_form_field -填写特定的表单字段(文本、复选框、单选框、下拉列表)
  • fill_form_fields -一次填写多个表单字段(批量操作)
  • get_form_values -获取所有当前表单值
  • flatten_form -展平表单以使字段不可编辑

编辑工具

  • add_text -在带有样式的坐标处向PDF添加文本
  • add_image -将图像插入PDF
  • add_annotation -添加评论、亮点、注释
  • add_watermark -添加文本或图像水印
  • modify_metadata -更新标题、作者、主题、关键字

页面工具

  • get_pages -列出所有有尺寸的页面
  • merge_pdfs -合并多个PDF
  • split_pdf -将PDF拆分为单独的文件
  • rotate_page -旋转特定页面
  • delete_pages -从PDF中删除页面
  • extract_pages -将页面提取为新的PDF

签名工具

  • add_visual_signature -添加基于图像的签名
  • create_signature_field -在表单中创建签名字段
  • sign_pdf_digital -使用证书应用数字签名
  • verify_signature -验证现有数字签名

安全工具

  • encrypt_pdf -添加密码保护和权限
  • decrypt_pdf -删除密码保护
  • set_permissions -设置打印、复制、编辑权限
  • get_security_info -检查加密和权限

导出工具

  • extract_text -提取所有文本内容
  • extract_images -提取嵌入图像
  • export_form_data -将表单数据导出为JSON/CSV
  • compress_pdf -优化PDF文件大小

🖥️ CLI命令

pdf-mcp包提供了几个命令行工具:

设置命令

  • pdf-mcp init [directory] -初始化PDF工作目录
    pdf-mcp init ~/my-pdfs
    pdf-mcp init  # Uses default: ~/pdf-mcp
    

管理命令

  • pdf-mcp status -显示当前配置和活动会话
    pdf-mcp status
    

测试命令

  • pdf-mcp test [pdf_path] -使用示例PDF测试PDF操作
    pdf-mcp test /path/to/sample.pdf
    

信息命令

  • pdf-mcp --help/-h -显示帮助信息
  • pdf-mcp --version/-v -显示版本信息

💡 使用示例

基本PDF操作

"Open the PDF at /path/to/document.pdf"
"Create a new PDF document"
"Save the PDF to /path/to/output.pdf"
"Get information about the current PDF"

表单操作

"List all form fields in this PDF"
"Fill the 'name' field with 'John Doe'"
"Fill multiple form fields: name='John Doe', email='john@example.com', agree=true"
"Get all form values"
"Flatten the form to make it non-editable"

编辑操作

"Add text 'DRAFT' at coordinates 100, 100 on page 1"
"Add an image from /path/to/image.png to page 1"
"Add a watermark 'CONFIDENTIAL' to all pages"
"Update the PDF title to 'My Document'"

页面操作

"List all pages with their dimensions"
"Merge /path/to/file1.pdf and /path/to/file2.pdf"
"Split this PDF into separate files"
"Rotate page 2 by 90 degrees"
"Delete pages 3 and 4"
"Extract pages 1-5 to a new PDF"

签名操作

"Add a visual signature from /path/to/signature.png to page 1"
"Create a signature field named 'signature' on page 1"

出口业务

"Export form data to /path/to/output.json as JSON"
"Export form data to /path/to/output.csv as CSV"
"Compress this PDF and save to /path/to/compressed.pdf"

🔧 配置

环境变量

  • PDF_WORKING_DIR -PDF操作的工作目录(默认: ~/pdf-mcp)
  • TEMP_DIR -PDF操作的临时目录(默认: /tmp/pdf-mcp)

文件路径

所有文件路径必须 绝对路径。出于安全原因,不支持相对路径。

会话管理

PDF文档通过会话进行管理。每个打开或创建的PDF都会获得一个唯一的会话ID,用于后续操作。会话在1小时不活动后会自动清理。

🧪 测试

PDF MCP服务器包括测试功能:

# Test PDF operations
pdf-mcp test /path/to/sample.pdf

# Run unit tests (if available)
npm test

🏗️ 发展

地方发展设置

  1. 克隆存储库:

    git clone https://github.com/nitaiaharoni1/pdf-mcp.git
    cd pdf-mcp
    
  2. 安装依赖项:

    npm install
    
  3. 构建项目:

    npm run build
    
  4. 本地测试:

    npm run dev
    

📋 技术细节

第一文库

  • pdf库 -全面的PDF操作(表单、编辑、页面操作)

存储

  • 仅支持绝对路径的本地文件系统

会话管理

  • 使用唯一ID在内存中维护打开的PDF文档
  • 自动清理非活动会话

错误处理

  • 妥善处理损坏的PDF
  • 权限错误处理
  • 不支持的功能检测

局限性

  • 数字签名:需要使用节点伪造进行额外实施
  • 文本提取:需要pdfjs dist或类似库
  • 图像提取:需要PDF解析库
  • 加密:pdf库的加密支持有限

📄 许可证

MIT许可证 -请参阅 许可证 提交完整的条款和条件。

🙋‍♂️ 支持


由...制作❤️ 面向人工智能和PDF处理社区