项目简介
该项目实现了一个 Model Context Protocol (MCP) 服务器,专门用于处理 PDF 文档。它允许连接的 LLM 客户端通过标准化的 MCP 请求调用其功能,例如从指定的 URL 下载 PDF、提取 PDF 内容(包括识别并转换 LaTeX 数学公式)、以及读取处理后的文本结果。这为 LLM 分析、总结或回答基于 PDF 内容的问题提供了强大的支持。
主要功能点
- PDF 获取: 通过 URL 下载 PDF 文件到服务器端。
- 文本提取: 从 PDF 中提取可读文本,保留文档结构。
- LaTeX 公式提取: 识别 PDF 中的数学区域(包括图像公式),并尝试将其转换为 LaTeX 格式,集成到提取的文本中。
- MCP 集成: 以 MCP 标准工具的形式提供上述功能,方便 LLM 客户端调用。
- 多种传输协议: 支持 Stdio 和 SSE 协议与 MCP 客户端通信。
安装步骤
- 克隆仓库: 将项目代码克隆到本地目录。
git clone https://github.com/MichaelLevinson/mcp_pdf_processor.git cd mcp_pdf_processor - 标准安装: 推荐使用 pip 的可编辑模式安装,方便开发和更新。
这会安装所有必要的依赖,包括 PyMuPDF (fitz), mcp, pydantic, aiohttp 等。如果需要 LaTeX 提取功能,确保已安装 'pix2tex' 及其依赖 (如 torch)。安装步骤中已包含 'pix2tex' 作为可选依赖。pip install -e .
服务器配置(供 MCP 客户端使用)
MCP 客户端需要配置连接到此服务器。通常需要指定服务器名称、启动命令及参数。根据项目代码,可以通过运行 'python pdf_tool_server.py' 脚本启动服务器。
- 服务器名称 (Server Name): 'PDF_TOOLS'
- 启动命令 (Command): 'python'
- 启动参数 (Args): 'pdf_tool_server.py', '--transport', 'stdio'
如果您希望使用 SSE 传输,可以将参数更改为:'pdf_tool_server.py', '--transport', 'sse', '--port', '8000' (端口号可自定义)。
例如,在支持配置 MCP 服务器的客户端中,您需要添加一个配置项,包含上述信息。
基本使用方法
服务器启动并被 MCP 客户端成功连接后,LLM 就可以通过调用工具来使用 PDF 处理功能。以下是典型的使用流程(示例命令可能因客户端而异,这里以 Claude Desktop 风格为例):
-
获取 PDF: 使用 'fetch_pdf' 工具下载 PDF。
/mcp PDF_TOOLS fetch_pdf url=https://arxiv.org/pdf/2505.05522服务器将返回一个 PDF 的 'hash_id'。
-
处理 PDF: 使用上一步获取的 'hash_id' 调用 'process_pdf' 工具进行处理。您可以选择是否提取 LaTeX 公式 ('extract_latex=true' 或 'false')。
/mcp PDF_TOOLS process_pdf hash_id=<HASH_ID> extract_latex=true服务器将返回处理后输出文件的 'filename'。
-
读取处理后的内容: 使用上一步获取的 'filename' 调用 'read_processed_pdf' 工具获取文本内容。
/mcp PDF_TOOLS read_processed_pdf filename=<FILENAME>服务器将返回提取并格式化后的 PDF 文本内容,LLM 客户端可以读取并用于后续分析。
服务器会将处理后的文本文件保存在其运行目录下的 'llm_output' 文件夹中。
信息
分类
AI与计算