OCR服务器

一个基于Mistral OCR的本地OCR服务器,支持通过MCP接口进行交互,提供快速OCR处理功能。

  • by sathish-aie
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 sathizz7/MCP-Mistral-Ocr

使用说明

Mistral OCR MCP服务器

使用Mistral OCR的本地OCR服务器,符合MCP原则。此服务器允许您对上传的图像执行OCR,并通过模型上下文协议(MCP)接口与之交互。

特性

  • FastAPI 后端:采用现代、快速(高性能)的FastAPI框架构建。
  • OCR处理:(有关Mistral OCR功能的详细信息,请点击此处,例如支持的语言、图像格式、准确性)。
  • 标准OCR端点:提供常规HTTP端点(/v1/ocr)用于直接文件上传和OCR。
  • 配置管理:使用Pydantic设置便于配置。
  • 日志记录:用于监控和调试的集成日志记录。
  • 健康检查:一个简单的 /health 端点以验证服务器状态。

项目结构

.
├── .gitignore
├── main.py                 # FastAPI application and MCP server setup
├── pyproject.toml          # Project metadata and dependencies
├── README.md               # This file
├── ocr/
│   ├── __init__.py
│   ├── config.py           # Configuration settings
│   ├── router.py           # Handles the OCR model routing and processing logic
│   ├── schemas.py          # Pydantic models for API requests and responses
│   └── adapters/           # (If you have model-specific adapter logic)
│       └── __init__.py
└── tests/                  # (If you have tests)
    └── ...

先决条件

  • Python 3.10或更高版本
  • 环境与 pip 或 uv 用于包管理。

安装

  1. 克隆存储库(如果适用):

    # git clone <your-repository-url>
    # cd mistral-ocr-mcp-server
    
  2. 创建并激活虚拟环境(推荐):

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. 安装依赖项: 该项目使用 pyproject.toml 管理依赖关系。您可以使用安装它们 pip:

    pip install .
    

    对于开发,包括测试、linting和格式化工具,请安装 dev 附加:

    pip install .[dev]
    

配置

应用程序的配置(如支持的文件类型、模型设置等)在中管理 ocr/config.py 使用Pydantic设置。您可以使用环境变量覆盖这些设置。参见 ocr/config.py 获取可用设置及其对应的环境变量名称。

默认支持的文件类型通常包括常见的图像格式(例如。, image/jpeg, image/png).

默认情况下设置了最大上传文件大小(例如 main.py lifespan 功能)。

运行服务器

您可以使用Uvicorn运行FastAPI服务器:

uvicorn main:app --reload

这通常会在以下时间启动服务器 http://127.0.0.1:8000The --reload flag允许在检测到代码更改时自动重新加载,这对开发很有用。

API终点

1.OCR端点

  • 发布 /v1/ocr
    • 描述:上传图像文件以执行OCR。
    • 请求正文: multipart/form-data 带着一个 file 包含图像的字段。
    • 文件的内容类型标题:必须是其中之一 settings.supported_file_types.
    • 响应: OCRResult (JSON对象包含提取的文本和中定义的其他相关信息 ocr.schemas.OCRResult).
    • 使用cURL的示例:
      curl -X POST -F "file=@/path/to/your/image.png" http://127.0.0.1:8000/v1/ocr
      

2.MCP端点

  • BASE_URL/mcp
    • 描述:提供符合MCP的工具,用于与OCR服务进行交互。MCP客户端可以发现可用的工具和资源。
    • 此端点由自动管理 fastapi-mcp.

3.健康检查

  • 获取 /health
    • 描述:一个简单的端点,用于检查服务器是否正在运行和健康。
    • 响应:
      {
        "status": "ok"
      }
      

发展

运行类型检查器

使用Mypy检查类型:

mypy .

(确保Mypy已在中配置 pyproject.toml 以扫描正确的路径。, mypy ocr main.py)

运行测试

如果你有测试 tests/ 目录,您可以使用Pytest运行它们:

pytest

如果配置了覆盖率报告,也可以生成覆盖率报告(请参阅 tool.pytest.ini_options 在……里面 pyproject.toml).

贡献

欢迎投稿!请随时提交Pull Request或打开问题。 (如果有,请添加更具体的贡献指南)。