PDF Reader MCP Server 使用说明
项目简介
PDF Reader MCP Server 是一个实现了 Model Context Protocol (MCP) 的服务器,专注于提供 PDF 文档的文本内容提取功能。它允许 LLM 客户端通过标准化的 MCP 协议调用工具,从本地文件或网络 URL 读取 PDF 文件内容,并以 JSON 格式返回提取的文本。
主要功能点
- 本地 PDF 文件读取: 支持读取服务器本地文件系统中存储的 PDF 文件,并提取文本内容。
- URL PDF 文件读取: 支持通过 URL 获取远程 PDF 文件,并提取文本内容。
- 错误处理: 提供完善的错误处理机制,能够识别并报告无效或损坏的 PDF 文件、文件未找到、网络请求失败等问题。
- Docker 部署: 通过 Docker 镜像进行部署,简化安装和运行过程,并支持通过 volume mounting 访问本地 PDF 文件。
安装步骤
-
克隆仓库:
git clone https://github.com/trafflux/pdf-reader-mcp.git cd pdf-reader-mcp -
构建 Docker 镜像:
docker build -t mcp/pdf-reader .
服务器配置
为了让 MCP 客户端能够连接和使用 PDF Reader MCP Server,需要在客户端的 MCP 配置中添加以下服务器信息。
配置示例 (访问本地 PDF 文件):
{ "mcpServers": { "pdf-reader": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "/path/to/pdfs:/pdfs", // 请将 "/path/to/pdfs" 替换为实际存放 PDF 文件的本地目录路径 "mcp/pdf-reader" ], "disabled": false, "autoApprove": [] } } }
配置示例 (不访问本地 PDF 文件,仅URL读取):
{ "mcpServers": { "pdf-reader": { "command": "docker", "args": ["run", "-i", "--rm", "mcp/pdf-reader"], "disabled": false, "autoApprove": [] } } }
配置参数说明:
- '"pdf-reader"': 服务器名称,客户端用此名称标识和调用该服务器。
- '"command": "docker"': 启动服务器的命令,这里使用 Docker 运行镜像。
- '"args"': 命令参数列表,用于配置 Docker 运行时的行为:
- '"run"': Docker 运行命令。
- '"-i"': 保持 STDIN 打开,即使未连接。
- '"--rm"': 容器退出后自动删除。
- '"-v", "/path/to/pdfs:/pdfs"' (可选): 将宿主机的 '/path/to/pdfs' 目录挂载到容器内的 '/pdfs' 目录,用于访问本地 PDF 文件。 请务必替换 '/path/to/pdfs' 为实际的本地 PDF 文件目录。 如果不需要访问本地文件,可以移除 '-v' 及其后续参数。
- '"mcp/pdf-reader"': 要运行的 Docker 镜像名称。
- '"disabled": false': 启用该服务器。
- '"autoApprove": []': 自动允许所有工具调用 (可以根据需要配置更细粒度的权限控制)。
基本使用方法
配置完成后,MCP 客户端可以通过以下工具调用 PDF Reader MCP Server 的功能。
1. 'read_local_pdf' 工具
- 功能: 读取本地 PDF 文件的文本内容。
- 输入参数:
{ "path": "/pdfs/document.pdf" // PDF 文件在容器内的路径,如果配置了 volume mounting,则为挂载到容器内的路径,例如 "/pdfs/your_pdf_file.pdf" } - 输出结果 (成功):
{ "success": true, "data": { "text": "Extracted content..." // 提取的 PDF 文本内容 } } - 输出结果 (失败):
{ "success": false, "error": "Detailed error message" // 详细的错误信息,例如 "PDF file not found: /pdfs/document.pdf" }
2. 'read_pdf_url' 工具
- 功能: 读取 URL 指向的 PDF 文件的文本内容。
- 输入参数:
{ "url": "https://example.com/document.pdf" // PDF 文件的 URL 地址 } - 输出结果 (成功):
{ "success": true, "data": { "text": "Extracted content..." // 提取的 PDF 文本内容 } } - 输出结果 (失败):
{ "success": false, "error": "Detailed error message" // 详细的错误信息,例如 "Failed to fetch PDF from URL: ..." }
注意: 使用 'read_local_pdf' 工具时,请确保 PDF 文件位于 Docker 容器可以访问的路径下。如果使用了 volume mounting,则路径为宿主机挂载到容器内的路径。
信息
分类
数据库与文件