使用说明
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用于包管理。
安装
-
克隆存储库(如果适用):
# git clone <your-repository-url> # cd mistral-ocr-mcp-server -
创建并激活虚拟环境(推荐):
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate -
安装依赖项: 该项目使用
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或打开问题。 (如果有,请添加更具体的贡献指南)。
