Skip to main content
Glama
WindoC
by WindoC

EasyOCR MCP Server

Сервер протокола Model Context Protocol (MCP), предоставляющий возможности OCR с использованием библиотеки EasyOCR.

О библиотеке EasyOCR: EasyOCR — это библиотека оптического распознавания символов (OCR) с открытым исходным кодом, разработанная JaidedAI. Она поддерживает более 80 языков, предлагает ускорение на GPU и известна своей простотой использования и высокой точностью. EasyOCR может извлекать текст из изображений, отсканированных документов и фотографий, что делает ее подходящей для широкого спектра задач OCR. Для получения дополнительной информации посетите репозиторий EasyOCR на GitHub.

Функции

  • 3 инструмента OCR: обработка изображений из base64, файлов или URL-адресов

  • Поддержка нескольких языков: поддержка более 80 языков с динамическим выбором

  • Гибкий вывод: выбор между выводом только текста или подробными результатами с координатами и уровнем достоверности

  • Оптимизация производительности: кэширование ридера для повышения производительности

  • Управление памятью: опции автоматической выгрузки и выгрузки после каждого запроса

  • Нативный вывод EasyOCR: возвращает исходный формат EasyOCR

Related MCP server: RapidOCR MCP Server

Установка

Настройка GPU

Выберите один из путей настройки GPU перед созданием среды проекта.

NVIDIA GPU

Используйте официальный селектор установки PyTorch для вашей ОС, версии Python и версии CUDA:

Типичный пример команды pip для Windows из селектора PyTorch:

python -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

После установки проверьте:

python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"

AMD GPU

Поддержка AMD GPU зависит от платформы:

  • Linux и WSL: используйте официальную документацию по установке ROCm / Radeon PyTorch

  • Windows native: поддержка ROCm существует, но AMD отмечает, что полный стек ROCm пока не поддерживается в Windows

Официальные ссылки:

Для этого репозитория в Windows протестированным путем является повторное использование существующей установки PyTorch с поддержкой ROCm в:

C:\Users\antonio\AppData\Local\Programs\Python\Python312\python.exe

Этот интерпретатор был проверен с помощью:

python -c "import torch; print(torch.__version__); print(torch.cuda.is_available()); print(getattr(torch.version, 'hip', None))"

Ожидаемый результат на AMD ROCm:

  • torch.cuda.is_available() возвращает True

  • torch.version.hip не является None

Среда проекта

# 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.py

Это позволяет сохранить проект на uv, ориентируясь на существующую установку Python312. Без --system-site-packages обычный venv не увидит пакеты, уже установленные в базовом интерпретаторе. Используйте uv run --no-sync после начальной настройки, чтобы uv не переустанавливал CPU-версию PyTorch из lock-файла.

Использование

Доступные инструменты

  1. ocr_image_base64 - Обработка изображений, закодированных в base64

  2. ocr_image_file - Обработка файлов изображений с диска

  3. ocr_image_url - Обработка изображений по URL-адресам

  4. unload_ocr_models - Выгрузка кэшированных моделей OCR для освобождения памяти

Параметры

  • detail: Уровень детализации вывода (по умолчанию: 1)

    • 0: Только текст - ['text1', 'text2', ...]

    • 1: Полные данные - [([[x1,y1], [x2,y2], [x3,y3], [x4,y4]], 'text', confidence), ...]

  • paragraph: Включить определение абзацев (по умолчанию: false)

  • width_ths: Порог ширины текста для объединения (по умолчанию: 0.7)

  • height_ths: Порог высоты текста для объединения (по умолчанию: 0.7)

  • unload_jobdone: Выгружать модели сразу после этого вызова OCR (по умолчанию: из UNLOAD_JOBDONE)

Примечание: Выбор языка настраивается через переменную окружения EASYOCR_LANGUAGES в вашей конфигурации MCP (см. раздел «Конфигурация» ниже).

Пример вывода

Уровень детализации 1 (Полные данные):

[
    ([[189, 75], [469, 75], [469, 165], [189, 165]], '愚园路', 0.3754989504814148),
    ([[86, 80], [134, 80], [134, 128], [86, 128]], '西', 0.40452659130096436)
]

Уровень детализации 0 (Только текст):

['愚园路', '西', '东', '315', '309', 'Yuyuan Rd.', 'W', 'E']

Запуск сервера

# Run the MCP server through uv
uv run --no-sync easyocr-mcp.py

Пример конфигурации MCP

Если вы запускаете это как сервер для родительского приложения MCP, вы можете настроить его в основном файле config.json вашего MCP.

Пример для Windows:

{
  "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:

{
  "mcpServers": {
    "easyocr-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/your/project/easyocr-mcp",
        "run",
        "easyocr-mcp.py"
      ],
      "env": {
        "EASYOCR_LANGUAGES": "en,ch_tra,ja"
      }
    }
  }
}

Переменные окружения

  • EASYOCR_LANGUAGES: Список кодов языков, разделенных запятыми (по умолчанию: en)

    • Примеры: en, en,ch_sim, ja,ko,en

  • EASYOCR_UNLOAD_TIMEOUT: Время бездействия в секундах до автоматической выгрузки (по умолчанию: 300, 0 отключает)

  • UNLOAD_JOBDONE: Если true, выгружать модели после каждого вызова OCR по умолчанию (по умолчанию: false)

Поддерживаемые языки

EasyOCR поддерживает более 80 языков, включая:

  • en - Английский

  • ch_sim - Китайский (упрощенный)

  • ch_tra - Китайский (традиционный)

  • ja - Японский

  • ko - Корейский

  • fr - Французский

  • de - Немецкий

  • es - Испанский

  • И многие другие...

Конфигурация GPU/CPU

Использование GPU определяется установкой PyTorch, видимой внутри среды, которая запускает easyocr-mcp.py. Если вы создаете uv venv с параметром --system-site-packages из Python312, сервер может повторно использовать существующий PyTorch с поддержкой AMD, установленный в этом интерпретаторе.

Команды для быстрой проверки:

uv run --no-sync python test-gpu.py
uv run --no-sync python test.py
uv run --no-sync python test_mcp_tools.py

В проверенной настройке AMD для этого репозитория test-gpu.py сообщает:

  • сборку torch с поддержкой ROCm

  • cuda_available=True

  • непустую hip_version

Related MCP Connectors

Related MCP Servers