Skip to main content
Glama
WindoC
by WindoC

EasyOCR MCPサーバー

EasyOCRライブラリを使用してOCR機能を提供するModel Context Protocol (MCP) サーバーです。

EasyOCRについて:
EasyOCRは、JaidedAIによって開発されたオープンソースの光学文字認識(OCR)ライブラリです。80以上の言語をサポートし、GPUアクセラレーションを提供しており、使いやすさと精度の高さで知られています。EasyOCRは画像、スキャンされたドキュメント、写真からテキストを抽出できるため、幅広いOCRタスクに適しています。詳細については、EasyOCR GitHubリポジトリをご覧ください。

機能

  • 3つのOCRツール: Base64、ファイル、またはURLから画像を処理

  • 多言語サポート: 動的な選択が可能な80以上の言語サポート

  • 柔軟な出力: テキストのみ、または座標と信頼度を含む詳細な結果を選択可能

  • パフォーマンス最適化: パフォーマンス向上のためのリーダーキャッシュ

  • メモリ制御: 自動アンロードおよびリクエストごとのアンロードオプション

  • ネイティブEasyOCR出力: EasyOCRのオリジナル形式を返却

Related MCP server: RapidOCR MCP Server

インストール

GPUセットアップ

プロジェクト環境を作成する前に、GPUのパスを1つ選択してください。

NVIDIA GPU

OS、Pythonバージョン、CUDAバージョンに合わせて、公式のPyTorchインストールセレクターを使用してください:

PyTorchセレクターからの一般的なWindows pipの例:

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ネイティブ: ROCmサポートは存在しますが、AMDはWindows上で完全なROCmスタックがまだサポートされていないと注記しています

公式リファレンス:

Windows上のこのリポジトリでは、テスト済みのパスとして、既存のROCm対応PyTorchインストールを以下で再利用します:

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.hipNone ではない

プロジェクト環境

# 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

これにより、既存の Python312 インストールをターゲットにしつつ、プロジェクトを uv で維持します。--system-site-packages を指定しない場合、通常のvenvはベースインタープリターに既にインストールされているパッケージを参照できません。初期セットアップ後は uv run --no-sync を使用して、uv がロックファイルからCPU専用のPyTorchホイールを再インストールしないようにしてください。

使用方法

利用可能なツール

  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 から)

注意: 言語選択は、MCP設定の EASYOCR_LANGUAGES 環境変数で構成されます(以下の「設定」セクションを参照)。

出力例

詳細レベル 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アプリケーションのサーバーとして実行している場合は、メインのMCP config.json で設定できます。

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の使用は、easyocr-mcp.py を起動する環境内で認識されるPyTorchインストールによって決定されます。Python312 から --system-site-packages を指定して uv venvを作成した場合、サーバーはそのインタープリターにインストールされている既存のAMD対応PyTorchを再利用できます。

クイック検証コマンド:

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 は以下を報告します:

  • ROCm対応の torch ビルド

  • cuda_available=True

  • 空ではない hip_version

Related MCP Connectors

Related MCP Servers