OCR文档解析服务

一个基于Python构建的OCR(光学字符识别)服务,通过本地PaddleOCR服务从复杂图像和PDF中提取文本和布局,支持多语言文本识别。

  • by anurag-ai-dev
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 anurag-ai-dev/mcp-python-server

使用说明

OCR MCP服务器

A. 模型上下文协议(MCP) 使用Python构建的服务器。 该服务器公开了由本地PaddleOCR服务支持的OCR(光学字符识别)工具,能够从复杂的图像和PDF中提取文本和布局,包括日语文本。

🛠️ 能力

服务器通过专用的OCR后端服务提供分析文档的工具。

  1. ocr_document(file_url: str):

    • 通过URL(图像/PDF)分析单个文档。
    • 保留布局并返回Markdown。
    • 例子: ocr_document("https://example.com/invoice.pdf")
  2. ocr_batch_documents(file_urls: list[str]):

    • 通过URL并行分析多个文档。
    • 高效处理多个文件(最多10个)。
    • 例子: ocr_batch_documents(["https://example.com/a.jpg", "https://example.com/b.pdf"])
  3. ocr_uploaded_document(file_path: str):

    • 通过将本地文件上传到OCR服务来分析它。
    • 注: 要求文件在本地文件系统上可访问。
    • 例子: ocr_uploaded_document("/home/user/docs/scan.png")

🚀 入门指南

先决条件

  • Python 3.12+
  • uv (用于包管理):
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  • npm (可选,适用于检查员)
  • CUDA兼容GPU(推荐用于更快的OCR性能)

安装

  1. 克隆存储库。
  2. 安装MCP服务器的依赖项:
    make install
    

运行服务器

运行此系统需要两个组件: OCR后端服务 和那个 MCP服务器.

  1. 启动OCR服务 (控制PaddleOCR模型):

    make ocr
    

    它在端口8866上运行。

  2. 启动MCP服务器 (在新航站楼中):

    make mcp
    

    它在端口8001上运行。

检查工具

使用MCP检查器交互式测试工具:

make inspect

此命令启动检查器UI,您可以在其中列出工具并模拟客户端请求。

发展

  • 格式代码: make format (使用 ruff)
  • 类型检查: make mypy

📂 项目结构

├── main.py              # MCP Server entry point
├── mcp_server/          # MCP Server Implementation
│   ├── tools.py         # Tool logic (OCR bridge)
├── ocr_service/         # OCR Backend Service (FastAPI + PaddleOCR)
│   ├── main.py          # FastAPI app
│   └── ocr.py           # PaddleOCR logic
├── settings.py          # Configuration
├── Makefile             # Command shortcuts
└── pyproject.toml       # MCP Server Dependencies

🔒 安全

  • OCR服务在本地运行;没有数据被发送到外部云提供商进行OCR。
  • 工具验证URL方案和文件路径。