使用说明
项目简介
本项目 'pdf-tools-mcp' 是一个基于 Model Context Protocol (MCP) 框架构建的 PDF 文档处理服务器。它提供了一系列工具,用于操作 PDF 文档,包括本地和远程 PDF 文件的处理。通过 MCP 协议,该服务器可以与 LLM 客户端集成,为 LLM 应用提供 PDF 文档处理能力。
主要功能点
- 本地 PDF 操作:
- 页面渲染 (Display): 将 PDF 页面渲染为图片。
- 页面合并 (Merge): 将 PDF 文档的所有页面合并成一个单页文档。
- 元数据提取 (Metadata): 提取 PDF 文档的元数据信息。
- 文本提取 (Text): 提取 PDF 页面的文本块或详细文本信息(JSON格式)。
- 页面片段 (Snippets): 从 PDF 页面创建自由或全宽的片段,生成新的 PDF 文件。
- 文档融合 (Fuse): 将多个 PDF 文档的指定页面合并到一个新的 PDF 文档中。
- 远程 PDF 操作:
- 远程页面渲染 (Display): 渲染远程 URL PDF 文档的指定页面为图片。
- 远程下载 (Download): 从 URL 下载 PDF 文档到本地存储。
安装步骤
- 克隆仓库:
git clone https://github.com/danielkennedy1/pdf-tools-mcp.git cd pdf-tools-mcp - 安装依赖:
uv pip install -e .- 确保已安装 Python 3.12 或更高版本。
- 推荐使用 'uv' 包管理器加速依赖安装。
服务器配置
为了让 MCP 客户端能够连接到 'pdf-tools-mcp' 服务器,需要提供以下服务器配置信息。客户端需要配置 'command' 和 'args' 来启动服务器进程。
{ "server_name": "pdf-tools-mcp", "command": "python", "args": ["-m", "src.main"] }
配置参数说明:
- 'server_name': 服务器名称,可以自定义,用于客户端识别。这里设置为 "pdf-tools-mcp"。
- 'command': 启动服务器的命令,这里使用 'python' 解释器。
- 'args': 传递给 'python' 命令的参数,'-m src.main' 表示运行 'src/main.py' 文件,该文件是服务器的启动入口。
注意: MCP 客户端需要能够执行 'python' 命令,并确保 Python 环境中已安装 'pdf-tools-mcp' 及其依赖。'DATA_DIR' 默认为项目根目录下的 'data' 文件夹,用于存放处理的 PDF 文件。
基本使用方法
-
启动服务器: 在项目根目录下,运行以下命令启动 MCP 服务器:
python -m src.main服务器成功启动后,将监听 MCP 客户端的请求。
-
使用 MCP 客户端: 配置 MCP 客户端连接到 'pdf-tools-mcp' 服务器,并根据需要调用服务器提供的工具。例如,客户端可以发送 JSON-RPC 请求来调用 'display_page_as_image' 工具渲染本地 PDF 文件的页面,或调用 'download_pdf' 工具下载远程 PDF 文件。
具体的请求格式和参数需要参考 MCP 协议和 'pdf-tools-mcp' 服务器提供的工具定义。客户端可以通过 MCP 的能力发现机制获取服务器支持的工具列表和参数信息。
示例工具调用 (假设使用 MCP 客户端 SDK):
以下是一个假设的 MCP 客户端调用 'display_page_as_image' 工具的示例 (伪代码,具体客户端 SDK 调用方式可能不同):
# 假设 client 是已连接到 pdf-tools-mcp 服务器的 MCP 客户端实例 # 调用本地 PDF 页面渲染工具 response = client.call_tool( tool_name="display_page_as_image", params={"name": "example.pdf", "page_number": 1} # example.pdf 需要先上传到服务器 data 目录 ) if response.success: image_data = response.result.data # 获取图片数据 image_format = response.result.format # 获取图片格式 (png) # ... 处理图片数据 ... else: error_message = response.error # ... 处理错误 ... # 调用远程 PDF 页面渲染工具 response = client.call_tool( tool_name="display_remote_document_page_as_image", params={"url": "https://example.com/remote.pdf", "page_number": 1} ) # ... 处理远程页面渲染结果 ...
请注意: 'pdf-tools-mcp' 服务器主要提供 PDF 处理工具,Prompt 模板相关的定义和渲染可能需要客户端自行处理或结合其他 MCP 服务器实现。
信息
分类
开发者工具