PDF文本提取服务

一个基于Tesseract OCR的PDF文本提取服务,支持多语言识别,可与AI助手集成。

  • by maximdx
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 maximdx/tesseract-mcp-server

使用说明

Tesseract PDF MCP服务器

一种模型上下文协议(MCP)服务器,使用Tesseract OCR为PDF文档提供OCR功能。该服务器允许AI助手从PDF文件中提取文本,支持多种语言,包括英语和简体中文。

特性

  • PDF到文本转换:使用OCR技术从PDF文档中提取文本
  • 多语言支持:处理多种语言的文档(默认为英文和简体中文)
  • 码头化解决方案:使用Docker轻松部署
  • MCP集成:与支持模型上下文协议的AI助手无缝集成

先决条件

构建说明

使用以下命令构建Docker镜像:

docker build -t tesseract-pdf-mcp .

运行服务器

使用以下命令运行MCP服务器:

docker run -it --rm \
  -v /path/to/your/pdfs:/pdfs \
  tesseract-pdf-mcp

重要提示:

  • 这 -v /path/to/your/pdfs:/pdfs 选项将卷从主机系统挂载到Docker容器,允许服务器访问PDF文件。
  • 替换 /path/to/your/pdfs 带有包含PDF文件的目录的实际路径。
  • 服务器将可通过MCP协议中指定的标准输入/输出(stdio)访问。

用法

服务器提供了一个名为 convert_pdf 可用于从PDF文件中提取文本。

输入

这 convert_pdf 该工具接受以下JSON输入:

{
  "file_path": "/pdfs/document.pdf",
  "language": "eng"
}

参数:

  • file_path (必填):要处理的PDF文件的路径。这应该是容器内的路径(例如。, /pdfs/document.pdf).
  • language (可选):OCR处理语言。默认值为 "eng" (英文)。
    • 默认可用语言: "eng" (英语), "chi_sim" (简体中文)

输出

该工具返回具有以下结构的JSON响应:

{
  "status": "success",
  "output_path": "/pdfs/document.txt"
}

关于成功:

  • status:将会 "success"
  • output_path:生成的文本文件的绝对路径

出现错误时:

  • status:将会 "error"
  • message:错误描述
  • output_path:将会 null

示例用法

当连接到支持MCP的AI助手时:

  1. 助理可以使用 convert_pdf 从PDF文件中提取文本的工具
  2. 文本文件将在与PDF文件相同的目录中创建
  3. 然后,助手可以访问文本文件以分析其内容

连接到AI工具

要将此MCP服务器连接到支持模型上下文协议的AI工具,您需要使用适当的设置配置该工具。

配置示例

将以下配置添加到AI工具的设置中:

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

确保更换 /path/to/your/pdfs 使用PDF文件目录的实际路径。

使用AI工具

连接后:

  1. AI工具将能够访问 convert_pdf 此MCP服务器提供的工具
  2. 您可以要求AI从PDF文档中提取文本
  3. 人工智能将使用MCP服务器处理PDF并访问生成的文本

添加更多语言

服务器附带英语(eng)简体中文(chi_sim)默认情况下支持语言。要添加更多语言:

  1. 修改 Dockerfile 通过向中添加其他语言包 apt-get install 命令:
RUN apt-get update && apt-get install -y --no-install-recommends \
    tesseract-ocr \
    tesseract-ocr-eng \
    tesseract-ocr-chi-sim \
    tesseract-ocr-fra \    # Add French
    tesseract-ocr-deu \    # Add German
    tesseract-ocr-spa \    # Add Spanish
    poppler-utils \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*
  1. 重建Docker镜像:
docker build -t tesseract-pdf-mcp .

可用语言代码

Tesseract OCR的一些常用语言代码:

  • eng:英语
  • chi_sim:简体中文
  • chi_tra:繁体中文
  • fra:法语
  • deu:德语
  • spa:西班牙语
  • ita:意大利语
  • jpn:日语
  • kor:朝鲜语
  • rus:俄语

有关可用语言包的完整列表,请参阅 Tesseract文档.

容器内部调试

如果您需要直接在容器内调试或测试PDF转换逻辑,请按照以下步骤操作:

启动交互式Shell

使用以下命令在容器中启动交互式shell会话:

docker run --rm -it -v /path/to/your/pdfs:/data tesseract-pdf-mcp /bin/bash

此命令:

  • 从创建容器 tesseract-pdf-mcp 图像
  • 将本地PDF目录装载到 /data 集装箱内
  • 覆盖默认命令以启动bashshell
  • 退出时自动删除容器(--rm)

在集装箱内工作

一旦进入容器的外壳,您可以:

  • 使用标准Linux命令导航文件系统(cd, ls等等)
  • 在 /data 目录
  • 运行Python脚本或启动交互式Python会话

测试转换函数

您可以直接使用Python的交互式shell测试PDF到文本的转换:

# Start Python interactive shell
python3
# Import the conversion function
from ocr.converter import pdf_to_text

# Process a PDF file (replace with your actual filename)
output_path = pdf_to_text('/data/my_document.pdf', lang='eng')

# Verify the result
print(f"Conversion successful. Output saved to: {output_path}")

# Exit Python shell
exit()

转换后的文本文件将保存在与PDF文件相同的目录中(在 /data 目录),使其也可以从您的主机访问。