NanoPDF MCP Server
使用说明内容(Markdown格式)
-
项目简介 NanoPDF MCP Server 是一个完整的本地 MCP 服务器实现,提供将 PDF 作为资源进行管理、通过工具与 AI 功能对页面进行编辑或新增页面,以及渲染页面预览的能力。所有数据都在本地处理与存储,便于在隐私敏感场景中使用,并可通过 MCP 客户端(如 Claude Desktop)进行调用。
-
主要功能点
- MCP 工具集:open_pdf、get_pdf_info、preview_pdf_page、edit_pdf_page、add_pdf_page、undo_pdf_change,支持对同一会话的多步操作与撤销/重做。
- PDF 处理与渲染:提取文本、渲染指定页为图像、将图像转换为可合并的 PDF 页、替换或插入页面。
- 本地智能生成功能:利用 Gemini Pro 通过 AI 生成/编辑页面内容,支持按照上下文文本、风格参照和用户提示进行图像生成与整页更新。
- 会话与版本历史:Session 基于本地目录存储,自动维护多版本历史,便于回滚与导出。
- 本地化存储与隐私:所有会话、预览和生成结果均在本地目录下管理,避免远程上传。
-
安装步骤
- 系统依赖
- macOS:安装 poppler 和 tesseract
- Linux:安装 poppler-utils 与 tesseract-ocr
- 环境变量
- GEMINI_API_KEY 需要设置为 Gemini/Google AI Studio 的 API Key,用于 Gemini Pro 内容生成
- 运行与开发环境
- 进入 mcp-server 目录
- 安装并同步依赖(示例使用 uv 包管理器,执行 uv sync)
- 运行方式
- 通过 MCP 客户端(如 Claude Desktop)配置连接,服务器将作为 MCP 服务提供工具接口
- Claude Desktop 配置示例(需要自行替换实际路径)
- 配置名称:nanopdf
- command: /Users/username/.local/bin/uv
- args: ["run","--directory","/Users/username/nano-pdf-mcp/mcp-server","server.py"]
- 说明:将 username 替换为实际用户名,directory 为 mcp-server 的绝对路径
- 系统依赖
-
服务器配置(MCP 客户端需要的连接信息) 以下为示例 JSON 字段描述,实际使用时请在客户端提供的配置中填入相应值: { "server_name": "nanopdf", "command": "/Users/username/.local/bin/uv", // 执行器路径,请替换为你本地的 uv 可执行文件路径 "args": ["run","--directory","/Users/username/nano-pdf-mcp/mcp-server","server.py"] // 运行参数,启动入口为 mcp-server/server.py } 注释:
- server_name:MCP 客户端将展示的服务器名称,这里设为 nanopdf
- command:启动 MCP 服务器的命令执行器(示例给出常见路径,请根据实际安装位置填写)
- args:启动参数,包含工作目录和服务器入口脚本 server.py
- 以上路径请替换为你本地实际路径,directory 必须是服务器根目录的绝对路径
-
基本使用方法
- 打开一个 PDF 会话 调用 open_pdf,传入 PDF 的绝对路径,返回一个 Session ID 与工作目录信息。
- 获取 PDF 信息 使用 get_pdf_info,传入 Session ID,获取页数和文本摘要等信息。
- 预览页面 使用 preview_pdf_page,传入 Session ID 和页码,生成该页的 PNG 预览。
- 编辑页面 使用 edit_pdf_page,传入 Session ID、页码和提示文本,服务器将生成新页面并替换到原 PDF,自动创建新版本并保存历史。
- 插入新页面 使用 add_pdf_page,传入 Session ID、after_page、提示文本,生成新页面并插入到指定位置,生成新版本。
- 撤销/重做 使用 undo_pdf_change、redo 相应的会话,回退或前进至历史版本。
- 导出当前版本 使用 commit 将当前版本导出到原始位置或指定路径,以便分享或长期存档。
-
进一步信息
- 项目结构、依赖,以及详细用法请参考仓库中的实现文件(mcp-server/、mcp-server/mcp_pdf_utils.py、mcp-server/mcp_ai_utils.py、mcp-server/history_manager.py 等)。
- 如需本地调试,请确保 Poppler 与 Tesseract 已正确安装,并正确配置 GEMINI_API_KEY。