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.
- 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
 
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
To install Mistral OCR for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @everaldo/mcp/mistral-crosswalk --client claude- 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- 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 .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"
      }
    }
  }
}Process a file from the configured OCR_DIR directory.
{
    "name": "process_local_file",
    "arguments": {
        "filename": "document.pdf"
    }
}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"
    }
}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}.jsonorurl_document_{timestamp}.jsonif no filename is found in the URL 
The timestamp format is YYYYMMDD_HHMMSS.
- Images: JPG, JPEG, PNG, GIF, WebP
 - Documents: PDF and other document formats supported by Mistral OCR
 
- Maximum file size: 50MB (enforced by Mistral API)
 - Maximum document pages: 1000 (enforced by Mistral API)