mcp-mistral-ocr
by: everaldo
Model Context Protocol (MCP) Server for Mistral OCR API
📌Overview
Purpose: The MCP Mistral OCR server aims to provide powerful optical character recognition capabilities using Mistral AI's OCR API, allowing users to process local files and files from URLs.
Overview: This OCR server is designed to efficiently handle various file formats, including images and PDFs, offering easy integration through Docker and UV package management. It processes both local and URL-based documents, generating structured JSON outputs for further usage.
Key Features:
-
Local and URL Processing: Processes images and PDF files from local directories or URLs, making it versatile for different use cases.
-
Multiple File Format Support: Supports various image formats (JPG, PNG) and document types, enabling flexibility in file handling.
-
Automated Result Management: Saves OCR results in timestamped JSON format, simplifying post-processing and data management.
-
Containerization with Docker: Facilitates deployment and scaling through Docker, ensuring a streamlined setup across different environments.
-
Easy Setup with UV: Utilizes UV package management for quick dependency setup, easing the development process.
MCP Mistral OCR
An MCP server that provides OCR capabilities using Mistral AI's OCR API. This server can process both local files and URLs, supporting images and PDFs.
Features
- Process local files (images and PDFs) using Mistral's OCR
- Process files from URLs with explicit file type specification
- Support for multiple file formats (JPG, PNG, PDF, etc.)
- Results saved as JSON files with timestamps
- Docker containerization
- UV package management
Environment Variables
MISTRAL_API_KEY
: Your Mistral AI API keyOCR_DIR
: Directory path for local file processing. Inside the container, this is always mapped to/data/ocr
Installation
Installing via Smithery
To install Mistral OCR for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @everaldo/mcp/mistral-crosswalk --client claude
Using Docker
- Build the Docker image:
docker build -t mcp-mistral-ocr .
- Run the container:
docker run -e MISTRAL_API_KEY=your_api_key -e OCR_DIR=/data/ocr -v /path/to/local/files:/data/ocr mcp-mistral-ocr
Local Development
- Install UV package manager:
pip install uv
- Create and activate virtual environment:
uv venv
source .venv/bin/activate # On Unix
# or
.venv\Scripts\activate # On Windows
- Install dependencies:
uv pip install .
Claude Desktop Configuration
Add this configuration to your claude_desktop_config.json
:
{
"mcpServers": {
"mistral-ocr": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MISTRAL_API_KEY",
"-e",
"OCR_DIR",
"-v",
"C:/path/to/your/files:/data/ocr",
"mcp-mistral-ocr:latest"
],
"env": {
"MISTRAL_API_KEY": "<YOUR_MISTRAL_API_KEY>",
"OCR_DIR": "C:/path/to/your/files"
}
}
}
}
Available Tools
1. process_local_file
Process a file from the configured OCR_DIR directory.
{
"name": "process_local_file",
"arguments": {
"filename": "document.pdf"
}
}
2. process_url_file
Process a file from a URL. Requires explicit file type specification.
{
"name": "process_url_file",
"arguments": {
"url": "https://example.com/document",
"file_type": "image" // or "pdf"
}
}
Output
OCR results are saved in JSON format in the output
directory inside OCR_DIR
. Each result file is named using the following format:
- For local files:
{original_filename}_{timestamp}.json
- For URLs:
{url_filename}_{timestamp}.json
orurl_document_{timestamp}.json
if no filename is found in the URL
The timestamp format is YYYYMMDD_HHMMSS
.
Supported File Types
- Images: JPG, JPEG, PNG, GIF, WebP
- Documents: PDF and other document formats supported by Mistral OCR
Limitations
- Maximum file size: 50MB (enforced by Mistral API)
- Maximum document pages: 1000 (enforced by Mistral API)