MCP 画像認識サーバー
Anthropic、OpenAI、Cloudflare Workers AI Vision API を使用して画像認識機能を提供する MCP サーバー。バージョン 1.2.1。

著者
もともとこのプロジェクトは@mario-andreschakによって作成されました。ありがとうございます!
現在は@zudsniperによってメンテナンスされています。
Related MCP server: Textin MCP Server
特徴
Anthropic Claude Vision、OpenAI GPT-4 Vision、または Cloudflare Workers AI llava-1.5-7b-hf を使用した画像の説明
Claude Desktop、Cursor、その他のMCP互換クライアントとの簡単な統合
Dockerデプロイメントのサポート
uvxインストールのサポート
複数の画像形式(JPEG、PNG、GIF、WebP)をサポート
設定可能なプライマリおよびフォールバックプロバイダー
Base64およびファイルベースの画像入力のサポート
Tesseract OCRを使用したオプションのテキスト抽出
要件
Python 3.8以上
Tesseract OCR(オプション) - テキスト抽出機能に必要
Windows: UB-Mannheim/tesseractからダウンロードしてインストールします。
Linux:
sudo apt-get install tesseract-ocrmacOS:
brew install tesseract
インストール
オプション 1: uvx を使用する (Claude Desktop および Cursor に推奨)
uvパッケージ マネージャーをインストールします。
pip install uvuvx を使用してパッケージをインストールします。
uvx install mcp-image-recognition構成セクションの説明に従って環境ファイルを作成して構成します。
オプション2: Dockerを使用する
docker pull zudsniper/mcp-image-recognition:latest
# Create a .env file first, then run:
docker run -it --env-file .env zudsniper/mcp-image-recognitionオプション3: ソースから
リポジトリをクローンします。
git clone https://github.com/zudsniper/mcp-image-recognition.git
cd mcp-image-recognition環境ファイルを作成して構成します。
cp .env.example .env
# Edit .env with your API keys and preferencesプロジェクトをビルドします。
pip install -e .統合
クロードデスクトップ統合
Claude >設定>開発者>設定の編集> claude_desktop_config.jsonに移動します。
インライン環境変数を使用して構成を追加します。
{
"mcpServers": {
"image-recognition": {
"command": "uvx",
"args": [
"mcp-image-recognition"
],
"env": {
"VISION_PROVIDER": "openai",
"OPENAI_API_KEY": "your-api-key",
"OPENAI_MODEL": "gpt-4o"
}
}
}
}カーソル統合
カーソル設定> MCPに移動し、環境変数を貼り付けます。
VISION_PROVIDER=openai OPENAI_API_KEY=your-api-key OPENAI_MODEL=gpt-4o uvx mcp-image-recognitionDocker統合
オプション1: DockerHubイメージを使用する
インライン環境を使用して、Claude Desktop 構成にこれを追加します。
{
"mcpServers": {
"image-recognition": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"zudsniper/mcp-image-recognition:latest"
],
"env": {
"VISION_PROVIDER": "openai",
"OPENAI_API_KEY": "your-api-key",
"OPENAI_MODEL": "gpt-4o"
}
}
}
}Cloudflare の設定の場合:
"env": {
"VISION_PROVIDER": "cloudflare",
"CLOUDFLARE_API_KEY": "your-api-key",
"CLOUDFLARE_ACCOUNT_ID": "your-account-id"
}使用法
サーバーを直接実行する
pip/uvx でインストールした場合:
mcp-image-recognitionソースディレクトリから:
python -m image_recognition_server.serverDocker の使用:
docker run -it --env-file .env zudsniper/mcp-image-recognitionMCP インスペクターを使用して開発モードで開始します。
npx @modelcontextprotocol/inspector mcp-image-recognition利用可能なツール
describe_image目的: チャットに直接アップロードされた画像を分析する
入力: Base64エンコードされた画像データ
出力: 画像の詳細な説明
最適な用途: Claude、Cursor、またはその他のチャットインターフェースに直接アップロードされた画像
describe_image_from_file目的: ファイルシステムからローカルイメージファイルを処理する
入力: 画像ファイルへのパス
出力: 画像の詳細な説明
最適な用途: ファイルシステムへのアクセスを伴うローカル開発
注: Docker で実行する場合はボリューム マッピングが必要です (Docker ファイル アクセスのセクションを参照)
describe_image_from_url目的: 手動でダウンロードせずにWeb URLから画像を分析する
入力: 公開されている画像のURL
出力: 画像の詳細な説明
最適な用途: Web画像、スクリーンショット、または公開URLを持つもの
注: レート制限を回避するためにブラウザのようなヘッダーを使用します
環境設定
ANTHROPIC_API_KEY: Anthropic API キー。OPENAI_API_KEY: OpenAI API キー。CLOUDFLARE_API_KEY: Cloudflare API キー。CLOUDFLARE_ACCOUNT_ID: Cloudflare アカウント ID。VISION_PROVIDER: プライマリビジョンプロバイダー (anthropic、openai、またはcloudflare)。FALLBACK_PROVIDER: オプションのフォールバック プロバイダー。LOG_LEVEL: ログレベル (DEBUG、INFO、WARNING、ERROR)。ENABLE_OCR: Tesseract OCR テキスト抽出を有効にします (trueまたはfalse)。TESSERACT_CMD: Tesseract 実行可能ファイルへのオプションのカスタム パス。OPENAI_MODEL: OpenAIモデル(デフォルト:gpt-4o-mini)。他のモデルではOpenRouter形式を使用できます(例:anthropic/claude-3.5-sonnet:beta)。OPENAI_BASE_URL: OpenAI APIのオプションのカスタムベースURL。OpenRouterの場合はhttps://openrouter.ai/api/v1に設定してください。OPENAI_TIMEOUT: OpenAI API のオプションのカスタム タイムアウト (秒単位)。CLOUDFLARE_MODEL: Cloudflare Workers AI モデル (デフォルト:@cf/llava-hf/llava-1.5-7b-hf)。CLOUDFLARE_MAX_TOKENS: 生成するトークンの最大数 (デフォルト:512)。CLOUDFLARE_TIMEOUT: Cloudflare API リクエストのタイムアウト(秒単位)(デフォルト:60)。
OpenRouterの使用
OpenRouterを使用すると、OpenAI API形式を使用してさまざまなモデルにアクセスできます。OpenRouterを使用するには、以下の手順に従ってください。
OpenRouter から OpenAI API キーを取得します。
.envファイル内のOPENAI_API_KEYOpenRouter API キーに設定します。OPENAI_BASE_URL``https://openrouter.ai/api/v1に設定します。OpenRouter 形式 (例:
anthropic/claude-3.5-sonnet:beta) を使用して、OPENAI_MODEL目的のモデルに設定します。VISION_PROVIDER``openaiに設定します。
デフォルトモデル
人類学的:
claude-3.5-sonnet-betaOpenAI:
gpt-4o-miniCloudflare ワーカー AI:
@cf/llava-hf/llava-1.5-7b-hfOpenRouter:
OPENAI_MODELでanthropic/claude-3.5-sonnet:beta形式を使用します。
発達
開発セットアップガイド
開発環境の設定
リポジトリをクローンします。
git clone https://github.com/zudsniper/mcp-image-recognition.git
cd mcp-image-recognitionuv を使用したセットアップ (推奨):
# Install uv if not installed
pip install uv
# Create virtual environment and install deps
uv venv
uv venv activate
uv pip install -e .
uv pip install -e ".[dev]"pip を使用した代替設定:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -e . # Or alternatively: pip install -r requirements.txt pip install -r requirements-dev.txt
環境を構成する:
cp .env.example .env
# Edit .env with your API keysVS Code / DevContainer 開発
リモートコンテナ拡張機能を使用してVS Codeをインストールする
VS Codeでプロジェクトフォルダを開きます
プロンプトが表示されたら「コンテナで再度開く」をクリックします
開発コンテナは、すべての依存関係がインストールされた状態でビルドされ、開きます。
Claude Desktop で開発コンテナを使用する
環境ファイルを docker compose に渡します。
# Modern Docker Compose V2 syntax
docker compose --env-file .env up -dClaude Desktop の設定に以下を追加します:
{
"mcpServers": {
"image-recognition": {
"command": "docker",
"args": [
"exec",
"-i",
"mcp-image-recognition-dev",
"python",
"-m",
"image_recognition_server.server"
],
"env": {
"VISION_PROVIDER": "openai",
"OPENAI_API_KEY": "your-api-key",
"OPENAI_MODEL": "gpt-4o"
}
}
}
}変更をローカルでテストする
MCP サーバーを開発モードで実行します。
# Install the MCP Inspector if you haven't already
npm install -g @modelcontextprotocol/inspector
# Start the server with the Inspector
npx @modelcontextprotocol/inspector mcp-image-recognitionInspector は Web インターフェイス (通常はhttp://localhost:3000 ) を提供し、次の操作を実行できます。
ツールにリクエストを送信する
リクエスト/レスポンスログを表示する
実装に関する問題をデバッグする
テスト固有のツール:
describe_imageの場合: base64でエンコードされた画像を提供するdescribe_image_from_fileの場合: ローカル画像ファイルへのパスを指定しますdescribe_image_from_urlの場合: 画像のURLを指定します
Claude Desktop との統合によるテスト
開発バージョンを使用するために、Claude Desktop の構成を一時的に変更します。
{
"mcpServers": {
"image-recognition": {
"command": "python",
"args": [
"-m", "image_recognition_server.server"
],
"cwd": "/path/to/your/mcp-image-recognition",
"env": {
"VISION_PROVIDER": "openai",
"OPENAI_API_KEY": "your-api-key",
"OPENAI_MODEL": "gpt-4o"
}
}
}
}変更を適用するには、Claude Desktopを再起動してください。
会話中に画像をアップロードしたり、画像のURLを提供したりしてテストします
テストの実行
すべてのテストを実行します。
run.bat test特定のテスト スイートを実行します。
run.bat test server
run.bat test anthropic
run.bat test openaiDocker サポート
Docker イメージをビルドします。
docker build -t mcp-image-recognition .コンテナを実行します。
docker run -it --env-file .env mcp-image-recognitionDocker ファイルアクセスの制限
DockerでMCPサーバーを実行する場合、 describe_image_from_fileツールはコンテナ内のファイルにのみアクセスできます。デフォルトでは、コンテナはホストシステム上のファイルにアクセスできません。ローカルファイルへのアクセスを有効にするには、MCPサーバーの設定時にディレクトリを明示的にマッピングする必要があります。
重要事項:Claude Desktop、Cursor、またはチャットに画像をアップロードするその他のプラットフォームを使用する場合、それらの画像はAnthropicのサーバーに保存され、ファイルシステムパスを介してMCPサーバーに直接アクセスすることはできません。これらの場合は、以下の手順を実行してください。
チャットに直接アップロードされた画像には、
describe_imageツール(Base64 エンコードされた画像で動作します)を使用します。オンラインでホストされている画像には、新しい
describe_image_from_urlツールを使用します。ローカルファイルの場合、ディレクトリがDockerコンテナに適切にマッピングされていることを確認してください。
ローカルディレクトリをDockerにマッピングする
Docker コンテナにシステム上の特定のフォルダへのアクセス権を与えるには、MCP サーバ構成を変更してボリューム マッピングを含めます。
{
"mcpServers": {
"image-recognition": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-v", "/path/on/host:/path/in/container",
"zudsniper/mcp-image-recognition:latest"
],
"env": {
"VISION_PROVIDER": "openai",
"OPENAI_API_KEY": "your-api-key",
"OPENAI_MODEL": "gpt-4o"
}
}
}
}たとえば、ダウンロード フォルダーをマップするには、次のようにします。
Windows:
-v "C:\\Users\\YourName\\Downloads:/app/images"macOS/Linux:
-v "/Users/YourName/Downloads:/app/images"
次に、コンテナ パスを使用してファイルにアクセスします: /app/images/your_image.jpg
ライセンス
MIT ライセンス - 詳細については LICENSE ファイルを参照してください。
Cloudflare Workers AIの使用
画像認識に Cloudflare Workers AI を使用するには:
Cloudflare ダッシュボードにログインし、アカウントを選択します。
AI > Workers AIに移動します。
**「REST API の使用」**を選択し、Workers AI 権限を持つ API トークンを作成します。
.envファイルで以下を設定します。CLOUDFLARE_API_KEY: Cloudflare APIトークンCLOUDFLARE_ACCOUNT_ID: CloudflareアカウントIDVISION_PROVIDER:cloudflareに設定CLOUDFLARE_MODEL: オプション、デフォルトは@cf/llava-hf/llava-1.5-7b-hf
AIアシスタントと併用する
設定が完了すると、AI アシスタント (Claude など) は次の方法で画像を分析できるようになります。
チャットで直接画像をアップロードする
アシスタントは自動的にMCPサーバーを使用して画像を分析します。
アシスタントは、ビジョンAPIの出力に基づいて画像を詳細に説明します。
画像をアップロードした後のプロンプトの例:
Please describe this image in detail.特定のニーズに合わせてプロンプトをカスタマイズすることもできます。
What text appears in this image?または
Is there any safety concern in this image?リリース履歴
1.2.1 (2025-03-28): ドキュメントの再編成と開発コンテナのワークフローの改善
1.2.0 (2025-03-28): httpxとブラウザヘッダーによるURL画像取得を修正し、devcontainerのサポートを追加しました
1.1.0 (2025-03-28): ツールの説明を強化して選択しやすくし、OpenAI SDKを最新バージョンに更新しました
1.0.1 (2025-03-28): URLベースの画像認識機能の追加、Dockerドキュメントの改善、ファイルシステムの制限の修正
1.0.0 (2025-03-28): llava-1.5-7b-hf モデル、Docker サポート、uvx 互換性を備えた Cloudflare Workers AI サポートを追加しました
0.1.2 (2025-02-20): OCRエラー処理の改善とOCR機能の包括的なテストカバレッジの追加
0.1.1 (2025-02-19): 画像からのテキスト抽出のためのTesseract OCRサポートを追加(オプション機能)
0.1.0 (2025-02-19): AnthropicとOpenAIのビジョンサポートを備えた最初のリリース
ライセンス
MIT ライセンス - 詳細については LICENSE ファイルを参照してください。
貢献
貢献を歓迎します!お気軽にプルリクエストを送信してください。
新バージョンのリリース
新しいバージョンをリリースするには:
pyproject.tomlとsetup.pyのバージョンを更新します変更を
releaseブランチにプッシュするGitHub Actions は自動的に次の処理を実行します。
テストを実行する
Dockerイメージをビルドしてプッシュする
PyPIに公開する
GitHubリリースを作成する
CI/CD に必要なリポジトリ シークレット:
DOCKERHUB_USERNAME- Docker Hub のユーザー名DOCKERHUB_TOKEN- Docker Hub アクセストークンPYPI_API_TOKEN- PyPI API トークン