PDF处理服务器

一个用于处理大型PDF文件的模型上下文协议(MCP)服务器,具有智能分块和文本提取功能。

  • by volume19
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 volume19/pdf-mcp-server

使用说明

PDF MCP 服务器

一个用于处理大型PDF文件的模型上下文协议(MCP)服务器,具备智能分块和文本提取功能。

特点/功能

  • PDF 元数据获取文件信息、页数、作者、标题等。
  • 文本提取从特定页码范围中提取字符有限制的文本
  • PDF搜索在PDF中搜索并获取上下文相关结果
  • 智能分块计算处理大型PDF文件时的最佳页面范围

工具

1. pdf_get_metadata

获取PDF文件的元数据。

参数:

  • pdf_path (字符串,必填):PDF文件的完整路径

返回值:

  • 文件大小、页数、标题、作者及其他元数据

2. pdf_extract_text

从一系列页面中提取文本。

参数:

  • pdf_path (字符串,必填):PDF文件的完整路径
  • start_page (整数,可选):起始页码(从1开始计数,默认值:1)
  • end_page (整数,可选):结束页码(默认:最后一页)
  • max_chars (整数,可选):要提取的最大字符数

返回:

  • 提取的文本(含页码标记)
  • 字符数统计和截断信息

3. pdf_search

在PDF中搜索文本。

参数:

  • pdf_path (字符串,必填):PDF文件的完整路径
  • query (字符串,必填):要搜索的文本(不区分大小写)
  • context_chars (整数,可选):匹配周围的上下文字符数(默认:200)
  • max_results (整数,可选):最大结果数(默认:50)

返回:

  • 带有页码和上下文的比赛列表

4. pdf_get_chunks

为大型PDF文件计算最佳分块策略。

参数:

  • pdf_path (字符串,必填):PDF文件的完整路径
  • max_chars_per_chunk (整数,可选):目标块大小(默认:50000)
  • overlap_pages (整数,可选):块之间的页面重叠(默认:1)

返回值:

  • 包含页码范围和估计字符数的段落列表

安装

  1. 安装依赖项:
pip install -r requirements.txt
  1. 在Claude代码中进行配置(参见配置部分)

配置

添加到您的Claude Code MCP设置中(%APPDATA%\Claude\claude_desktop_config.json (在Windows上):

{
  "mcpServers": {
    "pdf-processor": {
      "command": "python",
      "args": ["c:\\Users\\Will\\pdf-mcp-server\\server.py"]
    }
  }
}

配置完成后,重启 Claude Code 以加载 MCP 服务器。

使用示例

处理一个55MB的PDF文件

  1. 首先,获取元数据:
Use pdf_get_metadata to check the page count
  1. 计算数据块:
Use pdf_get_chunks to determine optimal page ranges
  1. 按块提取文本:
Use pdf_extract_text with the page ranges from step 2
  1. 在PDF中搜索:
Use pdf_search to find specific content

技术细节

  • 用途 pdfplumber 用于高质量文本提取
  • 用途 pypdf 用于元数据和PDF结构
  • 在本地运行,使用您的计算资源
  • 无文件大小限制(分块处理)
  • 处理加密的PDF文件(如果未设置密码保护)

故障排除

服务器未在Claude代码中显示:

  • 检查配置中的路径是否正确
  • 配置更改后重启Claude代码
  • 检查是否可以从命令行访问Python

提取问题:

  • 扫描的PDF文件可能文本提取效果不佳(OCR功能尚未实现)
  • 有些PDF文件可能具有非标准的编码