Skip to main content
Glama
WindoC
by WindoC

EasyOCR MCP-Server

Ein Model Context Protocol (MCP)-Server, der OCR-Funktionen mithilfe der EasyOCR-Bibliothek bereitstellt.

Über EasyOCR:
EasyOCR ist eine Open-Source-Bibliothek für optische Zeichenerkennung (OCR), die von JaidedAI entwickelt wurde. Sie unterstützt über 80 Sprachen, bietet GPU-Beschleunigung und ist für ihre einfache Bedienung und hohe Genauigkeit bekannt. EasyOCR kann Text aus Bildern, gescannten Dokumenten und Fotos extrahieren und eignet sich daher für eine Vielzahl von OCR-Aufgaben. Weitere Informationen finden Sie im EasyOCR GitHub-Repository.

Funktionen

  • 3 OCR-Tools: Verarbeitung von Bildern aus Base64, Dateien oder URLs

  • Mehrsprachige Unterstützung: Unterstützung für über 80 Sprachen mit dynamischer Auswahl

  • Flexible Ausgabe: Wahl zwischen reinem Text oder detaillierten Ergebnissen mit Koordinaten und Konfidenzwerten

  • Leistungsoptimiert: Reader-Caching für bessere Performance

  • Speichersteuerung: Optionen für automatisches Entladen und Entladen nach jeder Anfrage

  • Native EasyOCR-Ausgabe: Gibt das Originalformat von EasyOCR zurück

Related MCP server: RapidOCR MCP Server

Installation

GPU-Einrichtung

Wählen Sie einen GPU-Pfad, bevor Sie die Projektumgebung erstellen.

NVIDIA GPU

Verwenden Sie den offiziellen PyTorch-Installations-Selektor für Ihr Betriebssystem, Ihre Python-Version und Ihre CUDA-Version:

Typisches Windows-pip-Beispiel aus dem PyTorch-Selektor:

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

Überprüfen Sie die Installation nach Abschluss:

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

AMD GPU

Die Unterstützung für AMD-GPUs hängt von der Plattform ab:

  • Linux und WSL: Verwenden Sie die offiziellen ROCm / Radeon PyTorch-Installationsanleitungen

  • Windows nativ: ROCm-Unterstützung ist vorhanden, aber AMD weist darauf hin, dass der vollständige ROCm-Stack unter Windows noch nicht unterstützt wird

Offizielle Referenzen:

Für dieses Repository unter Windows ist der getestete Pfad die Wiederverwendung einer bestehenden ROCm-fähigen PyTorch-Installation in:

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

Dieser Interpreter wurde überprüft mit:

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

Erwartete Form des Ergebnisses auf AMD ROCm:

  • torch.cuda.is_available() gibt True zurück

  • torch.version.hip ist nicht None

Projektumgebung

# 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

Dies hält das Projekt auf uv, während auf die bestehende Python312-Installation gezielt wird. Ohne --system-site-packages sieht ein normales venv keine Pakete, die bereits im Basis-Interpreter installiert sind. Verwenden Sie uv run --no-sync nach der Ersteinrichtung, damit uv die CPU-only PyTorch-Wheels nicht aus der Lockfile neu installiert.

Verwendung

Verfügbare Tools

  1. ocr_image_base64 - Verarbeitet Base64-kodierte Bilder

  2. ocr_image_file - Verarbeitet Bilddateien von der Festplatte

  3. ocr_image_url - Verarbeitet Bilder von URLs

  4. unload_ocr_models - Entlädt zwischengespeicherte OCR-Modelle, um Speicher freizugeben

Parameter

  • detail: Detaillierungsgrad der Ausgabe (Standard: 1)

    • 0: Nur Text - ['text1', 'text2', ...]

    • 1: Volle Details - [([[x1,y1], [x2,y2], [x3,y3], [x4,y4]], 'text', confidence), ...]

  • paragraph: Aktiviert die Absatzerkennung (Standard: false)

  • width_ths: Textbreitenschwellenwert für die Zusammenführung (Standard: 0.7)

  • height_ths: Texthöhenschwellenwert für die Zusammenführung (Standard: 0.7)

  • unload_jobdone: Entlädt Modelle sofort nach diesem OCR-Aufruf (Standard: von UNLOAD_JOBDONE)

Hinweis: Die Sprachauswahl wird über die Umgebungsvariable EASYOCR_LANGUAGES in Ihrer MCP-Konfiguration konfiguriert (siehe Abschnitt Konfiguration unten).

Beispielausgabe

Detaillierungsgrad 1 (Volle Details):

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

Detaillierungsgrad 0 (Nur Text):

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

Ausführen des Servers

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

MCP-Konfigurationsbeispiel

Wenn Sie dies als Server für eine übergeordnete MCP-Anwendung ausführen, können Sie ihn in Ihrer Haupt-MCP-config.json konfigurieren.

Windows-Beispiel:

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

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

Umgebungsvariablen

  • EASYOCR_LANGUAGES: Kommagetrennte Liste von Sprachcodes (Standard: en)

    • Beispiele: en, en,ch_sim, ja,ko,en

  • EASYOCR_UNLOAD_TIMEOUT: Sekunden der Inaktivität vor dem automatischen Entladen (Standard: 300, 0 deaktiviert)

  • UNLOAD_JOBDONE: Wenn true, werden Modelle standardmäßig nach jedem OCR-Aufruf entladen (Standard: false)

Unterstützte Sprachen

EasyOCR unterstützt über 80 Sprachen, darunter:

  • en - Englisch

  • ch_sim - Chinesisch (vereinfacht)

  • ch_tra - Chinesisch (traditionell)

  • ja - Japanisch

  • ko - Koreanisch

  • fr - Französisch

  • de - Deutsch

  • es - Spanisch

  • Und viele mehr...

GPU/CPU-Konfiguration

Die GPU-Nutzung wird durch die PyTorch-Installation bestimmt, die innerhalb der Umgebung sichtbar ist, die easyocr-mcp.py startet. Wenn Sie das uv venv mit --system-site-packages von Python312 aus erstellen, kann der Server die bestehende AMD-fähige PyTorch-Installation in diesem Interpreter wiederverwenden.

Schnelle Überprüfungsbefehle:

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

Auf dem verifizierten AMD-Setup für dieses Repository meldet test-gpu.py:

  • einen ROCm-fähigen torch-Build

  • cuda_available=True

  • eine nicht leere hip_version

Related MCP Connectors

Related MCP Servers