小贴士:按下Ctrl+D 或 ⌘+D,一键收藏本站,方便下次快速访问!
10
最近更新:26天前

集成PyPDF2,支持从PDF文档中高效提取文本和检索信息,适用于多种应用场景。

PDF 阅读器 MCP 服务器

一个 Model Context Protocol (MCP) 服务器,提供从 PDF 文件读取和提取文本的工具,支持本地文件和 URL。

作者

Philip Van de Walker
邮箱:philip.vandewalker@gmail.com
GitHub:https://github.com/trafflux

功能

  • 从本地 PDF 文件读取文本内容
  • 从 PDF URL 读取文本内容
  • 针对损坏或无效 PDF 的错误处理
  • 用于访问本地 PDF 的卷挂载
  • 自动检测 PDF 编码
  • 标准化的 JSON 输出格式

安装

  1. 克隆仓库:
bash 复制代码
git clone https://github.com/trafflux/pdf-reader-mcp.git
cd pdf-reader-mcp
  1. 构建 Docker 镜像:
bash 复制代码
docker build -t mcp/pdf-reader .

使用

运行服务器

运行服务器以访问本地 PDF 文件:

bash 复制代码
docker run -i --rm -v /path/to/pdfs:/pdfs mcp/pdf-reader

/path/to/pdfs 替换为您的 PDF 文件目录的实际路径。

如果不使用本地 PDF 文件:

bash 复制代码
docker run -i --rm mcp/pdf-reader

MCP 配置

添加到您的 MCP 设置配置中:

json 复制代码
{
  "mcpServers": {
    "pdf-reader": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "/path/to/pdfs:/pdfs",
        "mcp/pdf-reader"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}

不使用本地 PDF 文件时:

json 复制代码
{
  "mcpServers": {
    "pdf-reader": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "mcp/pdf-reader"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

可用工具

  1. read_local_pdf

    • 用途:从本地 PDF 文件读取文本内容
    • 输入:
      json 复制代码
      {
        "path": "/pdfs/document.pdf"
      }
    • 输出:
      json 复制代码
      {
        "success": true,
        "data": {
          "text": "提取的内容..."
        }
      }
  2. read_pdf_url

    • 用途:从 PDF URL 读取文本内容
    • 输入:
      json 复制代码
      {
        "url": "https://example.com/document.pdf"
      }
    • 输出:
      json 复制代码
      {
        "success": true,
        "data": {
          "text": "提取的内容..."
        }
      }

错误处理

服务器处理各种错误情况并提供清晰的错误消息:

  • 无效或损坏的 PDF 文件
  • 文件缺失
  • URL 请求失败
  • 权限问题
  • 网络连接问题

错误响应遵循以下格式:

json 复制代码
{
  "success": false,
  "error": "详细的错误消息"
}

依赖项

  • Python 3.11+
  • PyPDF2:PDF 解析和文本提取
  • requests:用于从 URL 获取 PDF 的 HTTP 客户端
  • MCP SDK:Model Context Protocol 实现

项目结构

复制代码
.
├── Dockerfile          # 容器配置
├── README.md          # 本文档
├── requirements.txt   # Python 依赖项
└── src/
    ├── __init__.py    # 包初始化
    └── server.py      # 主服务器实现

许可证

版权所有 2025 Philip Van de Walker

根据 Apache License, Version 2.0(“许可证”)授权;
除非符合许可证要求,否则不得使用此文件。
您可以在以下网址获取许可证副本:

复制代码
http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则按“原样”分发的软件,
没有任何明示或暗示的保证或条件。
请参阅许可证了解具体的权限和限制。

贡献

欢迎贡献!请随时提交 Pull Request。

联系

如有问题、疑问或贡献,请联系 Philip Van de Walker: