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 文件。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/trafflux/pdf-reader-mcp.git
    cd pdf-reader-mcp
  2. 构建 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,则路径为宿主机挂载到容器内的路径。

信息

分类

数据库与文件