PDF文本提取服务

一个基于Model Context Protocol (MCP)的服务,提供从本地文件和URL中读取和提取PDF文本内容的功能。

  • by trafflux
  • Python
  • 本地部署
  • 47 星标
  • 更新于
在 GitHub 查看 trafflux/pdf-reader-mcp

使用说明

PDF阅读器MCP服务器

一种模型上下文协议(MCP)服务器,提供从PDF文件中读取和提取文本的工具,支持本地文件和URL。

作者

菲利普·范德沃克
电子邮件:philip.vandewalker@gmail.com
github:https://github.com/trafflux

特性

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

安装

  1. 克隆存储库:
git clone https://github.com/trafflux/pdf-reader-mcp.git
cd pdf-reader-mcp
  1. 构建Docker镜像:
docker build -t mcp/pdf-reader .

用法

运行服务器

要运行服务器并访问本地PDF文件,请执行以下操作:

docker run -i --rm -v /path/to/pdfs:/pdfs mcp/pdf-reader

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

如果不使用本地PDF文件:

docker run -i --rm mcp/pdf-reader

MCP配置

添加到MCP设置配置中:

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

没有本地文件PDF文件:

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

可用工具

  1. read_local_pdf

    • 目的:从本地PDF文件读取文本内容
    • 输入:
      {
        "path": "/pdfs/document.pdf"
      }
      
    • 输出:
      {
        "success": true,
        "data": {
          "text": "Extracted content..."
        }
      }
      
  2. read_pdf_url

    • 目的:从PDF URL读取文本内容
    • 输入:
      {
        "url": "https://example.com/document.pdf"
      }
      
    • 输出:
      {
        "success": true,
        "data": {
          "text": "Extracted content..."
        }
      }
      

错误处理

服务器处理各种错误情况,并显示明确的错误消息:

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

错误响应遵循以下格式:

{
  "success": false,
  "error": "Detailed error message"
}

依赖项

  • Python 3.11+
  • PyPDF2:PDF解析和文本提取
  • 请求:用于从URL获取PDF的HTTP客户端
  • MCP SDK:模型上下文协议实现

项目结构

.
├── Dockerfile          # Container configuration
├── README.md          # This documentation
├── requirements.txt   # Python dependencies
└── src/
    ├── __init__.py    # Package initialization
    └── server.py      # Main server implementation

许可证

版权所有2025菲利普·范德沃克

根据Apache许可证2.0版(“许可证”)许可; 除非遵守许可证,否则您不得使用此文件。 您可以在以下网址获得许可证副本

http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则软件 根据许可证分发的内容按“原样”分发, 无任何明示或暗示的保证或条件。 请参阅许可证,了解管理权限和 许可证下的限制。

贡献

欢迎投稿!请随时提交拉取请求。

联系

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

  • 电子邮件:philip.vandewalker@gmail.com
  • github:https://github.com/trafflux