EasyOCR MCP Server
Provides GPU acceleration support for OCR processing using AMD ROCm-enabled PyTorch installations, enabling hardware-accelerated text extraction from images on AMD graphics hardware.
Provides GPU acceleration support for OCR processing using NVIDIA CUDA-enabled PyTorch installations, enabling hardware-accelerated text extraction from images on NVIDIA graphics hardware.
Utilizes PyTorch as the underlying deep learning framework for OCR model execution, enabling GPU-accelerated text recognition from images with support for multiple hardware backends.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@EasyOCR MCP Serverextract the text from https://example.com/receipt.jpg"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
EasyOCR MCP Server
A Model Context Protocol (MCP) server that provides OCR capabilities using the EasyOCR library.
About EasyOCR:
EasyOCR is an open-source Optical Character Recognition (OCR) library developed by JaidedAI. It supports over 80 languages, offers GPU acceleration, and is known for its ease of use and high accuracy. EasyOCR can extract text from images, scanned documents, and photos, making it suitable for a wide range of OCR tasks. For more details, visit the EasyOCR GitHub repository.
Features
3 OCR Tools: Process images from base64, files, or URLs
Multi-language Support: Support for 80+ languages with dynamic selection
Flexible Output: Choose between text-only or detailed results with coordinates and confidence
Performance Optimized: Reader caching for better performance
Memory Controls: Auto-unload and per-request unload options
Native EasyOCR Output: Returns EasyOCR's original format
Installation
GPU Setup
Choose one GPU path before creating the project environment.
NVIDIA GPU
Use the official PyTorch install selector for your OS, Python version, and CUDA version:
https://docs.pytorch.org/get-started/locally/
Typical Windows pip example from the PyTorch selector:
python -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124After install, verify:
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"AMD GPU
AMD GPU support depends on platform:
Linux and WSL: use the official ROCm / Radeon PyTorch install docs
Windows native: ROCm support exists, but AMD notes that the full ROCm stack is not yet supported on Windows
Official references:
PyTorch local install guide: https://docs.pytorch.org/get-started/locally/
AMD Windows compatibility matrix: https://rocm.docs.amd.com/projects/radeon-ryzen/en/latest/docs/compatibility/compatibilityrad/windows/windows_compatibility.html
AMD PyTorch install guide: https://rocm.docs.amd.com/projects/radeon-ryzen/en/latest/docs/install/installrad/wsl/install-pytorch.html
For this repository on Windows, the tested path is to reuse an existing ROCm-enabled PyTorch install in:
C:\Users\antonio\AppData\Local\Programs\Python\Python312\python.exeThat interpreter was verified with:
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available()); print(getattr(torch.version, 'hip', None))"Expected shape of result on AMD ROCm:
torch.cuda.is_available()returnsTruetorch.version.hipis notNone
Project Environment
# Windows example used in this repo:
# C:\Users\antonio\AppData\Local\Programs\Python\Python312\python.exe
#
# Keep using uv, but create the venv from the existing Python 3.12 interpreter.
# `--system-site-packages` allows the venv to reuse packages already installed
# in that interpreter, such as an existing AMD-enabled PyTorch build.
# Create the project venv from the existing interpreter
uv venv --python C:\Users\antonio\AppData\Local\Programs\Python\Python312\python.exe --system-site-packages
# Sync this project's dependencies into the venv
uv sync
# Remove uv-installed CPU PyTorch packages so the venv falls back to the
# AMD ROCm build that already exists in Python312
uv pip uninstall torch torchvision
# Run tests through uv without re-syncing the environment
uv run --no-sync test.py
uv run --no-sync test-gpu.pyThis keeps the project on uv while targeting the existing Python312 install. Without --system-site-packages, a normal venv will not see packages already installed in the base interpreter. Use uv run --no-sync after the initial setup so uv does not reinstall the CPU-only PyTorch wheels from the lockfile.
Usage
Available Tools
ocr_image_base64- Process base64 encoded imagesocr_image_file- Process image files from diskocr_image_url- Process images from URLsunload_ocr_models- Unload cached OCR models to free memory
Parameters
detail: Output detail level (default:1)0: Text only -['text1', 'text2', ...]1: Full details -[([[x1,y1], [x2,y2], [x3,y3], [x4,y4]], 'text', confidence), ...]
paragraph: Enable paragraph detection (default:false)width_ths: Text width threshold for merging (default:0.7)height_ths: Text height threshold for merging (default:0.7)unload_jobdone: Unload models immediately after this OCR call (default: fromUNLOAD_JOBDONE)
Note: Language selection is configured via the EASYOCR_LANGUAGES environment variable in your MCP configuration (see Configuration section below).
Example Output
Detail Level 1 (Full Details):
[
([[189, 75], [469, 75], [469, 165], [189, 165]], '愚园路', 0.3754989504814148),
([[86, 80], [134, 80], [134, 128], [86, 128]], '西', 0.40452659130096436)
]Detail Level 0 (Text Only):
['愚园路', '西', '东', '315', '309', 'Yuyuan Rd.', 'W', 'E']Running the Server
# Run the MCP server through uv
uv run --no-sync easyocr-mcp.pyMCP Configuration Example
If you are running this as a server for a parent MCP application, you can configure it in your main MCP config.json.
Windows Example:
{
"mcpServers": {
"easyocr-mcp": {
"command": "uv",
"args": [
"--directory",
"X:\\path\\to\\your\\project\\easyocr-mcp",
"run",
"easyocr-mcp.py"
],
"env": {
"EASYOCR_LANGUAGES": "en,ch_tra,ja"
}
}
}
}Linux/macOS Example:
{
"mcpServers": {
"easyocr-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/your/project/easyocr-mcp",
"run",
"easyocr-mcp.py"
],
"env": {
"EASYOCR_LANGUAGES": "en,ch_tra,ja"
}
}
}
}Environment Variables
EASYOCR_LANGUAGES: Comma-separated list of language codes (default:en)Examples:
en,en,ch_sim,ja,ko,en
EASYOCR_UNLOAD_TIMEOUT: Seconds of inactivity before auto-unload (default:300,0disables)UNLOAD_JOBDONE: Iftrue, unload models after each OCR call by default (default:false)
Supported Languages
EasyOCR supports 80+ languages including:
en- Englishch_sim- Chinese Simplifiedch_tra- Chinese Traditionalja- Japaneseko- Koreanfr- Frenchde- Germanes- SpanishAnd many more...
GPU/CPU Configuration
GPU usage is determined by the PyTorch installation visible inside the environment that launches easyocr-mcp.py. If you create the uv venv with --system-site-packages from Python312, the server can reuse the existing AMD-enabled PyTorch installed in that interpreter.
Quick verification commands:
uv run --no-sync python test-gpu.py
uv run --no-sync python test.py
uv run --no-sync python test_mcp_tools.pyOn the verified AMD setup for this repo, test-gpu.py reports:
a ROCm-enabled
torchbuildcuda_available=Truea non-empty
hip_version
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/WindoC/easyocr-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server