process_local_fileLABSCO SUMMARY
Long PDFs, not screenshots — that is where the 1000-page ceiling points.
Results land on disk as timestamped JSON rather than only in the conversation, which is what makes it usable for a batch: run the documents through, then process the files afterwards. The two tools differ in one thing worth knowing before you call the URL one — it will not guess the file type, you have to say image or pdf.
What it is
A server over Mistral AI's OCR API that processes a local file or a URL and writes the result to disk.
What you get
- process_local_file takes a filename from the directory you configured
- process_url_file takes a URL, with the file type stated explicitly as image or pdf
- JPG, JPEG, PNG, GIF and WebP images, plus PDF and other document formats Mistral OCR handles
- Results written as JSON into an output directory, named with a YYYYMMDD_HHMMSS timestamp
- A Docker image, with the local file directory mounted in
Requirements
MISTRAL_API_KEY, and OCR_DIR pointing at the directory holding the files to process — inside the container that path is always /data/ocr. Run it through Docker with the directory mounted, or locally with uv. Mistral enforces the limits: files up to 50MB and documents up to 1000 pages.
Setup effort
Run a container — build the image from the repository, then point your client at it
USE CASES
Getting the text out of a long scanned PDF
Drop it in the configured directory and process it by filename; Mistral handles documents up to 1000 pages.
Reading a document hosted somewhere else
Pass the URL along with the file type, image or pdf, and skip the download.
Keeping the extraction for later
Every run writes a timestamped JSON file into the output directory, so results survive the conversation.
Processing a folder of documents
Mount the folder into the container once and work through the files by name.
2 tools
Listed in project docs. Your client may show a different list.
process_url_fileBEFORE YOU INSTALL
What to know first
Tools you get
2 tools named in the project's documentation.
Requires
- Docker
- MISTRAL_API_KEY in your environment
INSTALLATION
Connect your client
MCP Clients
Claude Desktop
git clone https://github.com/everaldo/mcp-mistral-ocr.git
cd mcp-mistral-ocr
docker build -t mcp-mistral-ocr .Add this to claude_desktop_config.json. <YOUR_OCR_DIR> is the folder that holds your files (on macOS or Linux, a path that starts with /); the -v mount uses the same folder:
{
"mcpServers": {
"mistral-ocr": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MISTRAL_API_KEY",
"-e",
"OCR_DIR",
"-v",
"<YOUR_OCR_DIR>:/data/ocr",
"mcp-mistral-ocr:latest"
],
"env": {
"MISTRAL_API_KEY": "<YOUR_MISTRAL_API_KEY>",
"OCR_DIR": "<YOUR_OCR_DIR>"
}
}
}
}