使用说明
项目简介
该项目实现了一个基于 Model Context Protocol (MCP) 的服务器,专注于从PDF文档中提取文本内容。它提供了一个名为 'extract-pdf-contents' 的工具,允许用户指定本地PDF文件路径和页码范围,服务器将返回提取出的文本信息。该服务器支持处理普通PDF文件以及扫描件PDF文件(通过OCR技术)。
主要功能点
- PDF文本提取: 提供 'extract-pdf-contents' 工具,可以从指定的PDF文件中提取文本内容。
- 页码选择: 支持通过参数指定需要提取的页码范围,包括具体页码和负数页码(如-1表示最后一页)。
- OCR支持: 对于扫描件PDF文件,能够自动识别并使用OCR技术提取图片中的文字。
- 本地文件处理: 服务器设计用于处理本地文件系统中的PDF文件,通过文件路径访问。
安装步骤
-
环境准备: 确保你的运行环境中已安装 Python 和必要的库。该服务器依赖于 'PyPDF2', 'pytesseract', 'Pillow (PIL)', 'PyMuPDF (fitz)'。你可以使用 pip 安装这些依赖:
pip install PyPDF2 pytesseract Pillow PyMuPDF注意: 如果需要OCR功能,你还需要安装 Tesseract OCR 引擎,并确保 'pytesseract' 能够找到 Tesseract 的可执行文件路径。
-
下载代码: 从 GitHub 仓库 https://github.com/xraywu/mcp-pdf-extraction-server 下载源代码。
-
运行服务器: 在代码根目录下,使用 'uv' 或 'python' 运行 'src/pdf_extraction/init.py' 文件。例如,如果使用 'uv',并且 'uv' 已经配置好运行 Python 项目,可以使用如下命令:
uv run src/pdf_extraction或者直接使用 Python 运行:
python -m src.pdf_extraction服务器默认通过标准输入/输出 (stdio) 与 MCP 客户端通信。
服务器配置
MCP 服务器是为 MCP 客户端(如 Claude 客户端)设计的后端服务。要让 MCP 客户端连接到此 PDF 提取服务器,你需要在 MCP 客户端的配置文件中添加服务器配置信息。以 Claude Desktop 为例,你需要编辑 'claude_desktop_config.json' 文件(路径在 README.md 中已给出)。在 '"mcpServers"' 字段下,添加如下配置:
"pdf_extraction": { "command": "uv", "args": [ "--directory", "/path/to/mcp-pdf-extraction-server", // 替换为你的 pdf_extraction 服务器代码的根目录绝对路径 "run", "src/pdf_extraction" // 或者 "pdf_extraction" 如果你的 uv 环境配置正确 ] }
配置参数说明:
- '"pdf_extraction"': 服务器名称,在客户端配置中用于唯一标识此服务器。可以自定义。
- '"command"': 启动服务器的命令。这里示例使用 'uv',你也可以根据你的环境配置使用 'python' 或其他命令。
- '"args"': 启动命令的参数列表。
- '"--directory"': 指定服务器代码所在的目录。请务必将 '/path/to/mcp-pdf-extraction-server' 替换为你实际存放 'mcp-pdf-extraction-server' 代码的本地绝对路径。
- '"run"': 'uv' 命令的子命令,用于运行 Python 模块或包。
- '"src/pdf_extraction"' (或 '"pdf_extraction"'): 指定要运行的 Python 模块或包。根据你的 'uv' 环境配置和项目结构选择。
注意: 请根据你的实际环境调整 'command' 和 'args',确保 MCP 客户端能够正确启动 PDF 提取服务器。 如果你直接使用 'python -m src.pdf_extraction' 运行服务器, 对应的 'command' 应设置为 'python', 'args' 应设置为 '["-m", "src.pdf_extraction"]',并且不需要 '--directory' 参数。
基本使用方法
-
启动 MCP 客户端: 配置完成后,启动你的 MCP 客户端(如 Claude Desktop)。客户端应该能够检测到你配置的 'pdf_extraction' 服务器并与之建立连接。
-
调用工具: 在 MCP 客户端中,你可以通过自然语言指令或相应的界面操作来调用 'extract-pdf-contents' 工具。你需要提供以下参数:
- 'pdf_path': 本地 PDF 文件的绝对路径。
- 'pages' (可选): 需要提取的页码范围,字符串格式,页码之间用逗号分隔。例如,'"1,3,5"' 表示提取第1, 3, 5页; '"-1, -2"' 表示提取最后两页。如果不提供此参数,则默认提取所有页面的内容。
-
获取结果: 服务器执行工具后,会将提取的 PDF 文本内容返回给 MCP 客户端。你可以在客户端中查看和使用这些文本内容。
示例: 假设你正在使用 Claude 客户端,并希望提取本地文件 '/Users/yourname/documents/example.pdf' 的内容。你可以在 Claude 中输入类似这样的指令:
提取 '/Users/yourname/documents/example.pdf' 的内容
或者,如果你只想提取前两页,可以输入:
提取 '/Users/yourname/documents/example.pdf' 前两页的内容
MCP 客户端会将这些指令转换为对 'extract-pdf-contents' 工具的调用,并将 'pdf_path' 和 'pages' 参数传递给 PDF 提取服务器。服务器处理请求后,会将提取的文本内容返回给 Claude 客户端。
信息
分类
生产力应用