hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Hosts the MCP server repository, allowing users to clone the codebase for local deployment and configuration
Utilizes OpenAI GPT-4 Vision API for image analysis and detailed descriptions from both base64-encoded images and image files
MCP 画像認識サーバー
Anthropic、OpenAI、Cloudflare Workers AI Vision API を使用して画像認識機能を提供する MCP サーバー。バージョン 1.2.1。
著者
もともとこのプロジェクトは@mario-andreschak
によって作成されました。ありがとうございます!
現在は@zudsniper
によってメンテナンスされています。
特徴
- 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-ocr
- macOS:
brew install tesseract
インストール
オプション 1: uvx を使用する (Claude Desktop および Cursor に推奨)
- uvパッケージ マネージャーをインストールします。
- uvx を使用してパッケージをインストールします。
- 構成セクションの説明に従って環境ファイルを作成して構成します。
オプション2: Dockerを使用する
オプション3: ソースから
- リポジトリをクローンします。
- 環境ファイルを作成して構成します。
- プロジェクトをビルドします。
統合
クロードデスクトップ統合
- Claude >設定>開発者>設定の編集> claude_desktop_config.jsonに移動します。
- インライン環境変数を使用して構成を追加します。
カーソル統合
カーソル設定> MCPに移動し、環境変数を貼り付けます。
Docker統合
オプション1: DockerHubイメージを使用する
インライン環境を使用して、Claude Desktop 構成にこれを追加します。
Cloudflare の設定の場合:
使用法
サーバーを直接実行する
pip/uvx でインストールした場合:
ソースディレクトリから:
Docker の使用:
MCP インスペクターを使用して開発モードで開始します。
利用可能なツール
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_KEY
OpenRouter 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-beta
- OpenAI:
gpt-4o-mini
- Cloudflare ワーカー AI:
@cf/llava-hf/llava-1.5-7b-hf
- OpenRouter:
OPENAI_MODEL
でanthropic/claude-3.5-sonnet:beta
形式を使用します。
発達
開発セットアップガイド
開発環境の設定
- リポジトリをクローンします。
- uv を使用したセットアップ (推奨):
pip を使用した代替設定:
Copy
- 環境を構成する:
VS Code / DevContainer 開発
- リモートコンテナ拡張機能を使用してVS Codeをインストールする
- VS Codeでプロジェクトフォルダを開きます
- プロンプトが表示されたら「コンテナで再度開く」をクリックします
- 開発コンテナは、すべての依存関係がインストールされた状態でビルドされ、開きます。
Claude Desktop で開発コンテナを使用する
- 環境ファイルを docker compose に渡します。
- Claude Desktop の設定に以下を追加します:
変更をローカルでテストする
- MCP サーバーを開発モードで実行します。
- Inspector は Web インターフェイス (通常はhttp://localhost:3000 ) を提供し、次の操作を実行できます。
- ツールにリクエストを送信する
- リクエスト/レスポンスログを表示する
- 実装に関する問題をデバッグする
- テスト固有のツール:
describe_image
の場合: base64でエンコードされた画像を提供するdescribe_image_from_file
の場合: ローカル画像ファイルへのパスを指定しますdescribe_image_from_url
の場合: 画像のURLを指定します
Claude Desktop との統合によるテスト
- 開発バージョンを使用するために、Claude Desktop の構成を一時的に変更します。
- 変更を適用するには、Claude Desktopを再起動してください。
- 会話中に画像をアップロードしたり、画像のURLを提供したりしてテストします
テストの実行
すべてのテストを実行します。
特定のテスト スイートを実行します。
Docker サポート
Docker イメージをビルドします。
コンテナを実行します。
Docker ファイルアクセスの制限
DockerでMCPサーバーを実行する場合、 describe_image_from_file
ツールはコンテナ内のファイルにのみアクセスできます。デフォルトでは、コンテナはホストシステム上のファイルにアクセスできません。ローカルファイルへのアクセスを有効にするには、MCPサーバーの設定時にディレクトリを明示的にマッピングする必要があります。
重要事項:Claude Desktop、Cursor、またはチャットに画像をアップロードするその他のプラットフォームを使用する場合、それらの画像はAnthropicのサーバーに保存され、ファイルシステムパスを介してMCPサーバーに直接アクセスすることはできません。これらの場合は、以下の手順を実行してください。
- チャットに直接アップロードされた画像には、
describe_image
ツール(Base64 エンコードされた画像で動作します)を使用します。 - オンラインでホストされている画像には、新しい
describe_image_from_url
ツールを使用します。 - ローカルファイルの場合、ディレクトリがDockerコンテナに適切にマッピングされていることを確認してください。
ローカルディレクトリをDockerにマッピングする
Docker コンテナにシステム上の特定のフォルダへのアクセス権を与えるには、MCP サーバ構成を変更してボリューム マッピングを含めます。
たとえば、ダウンロード フォルダーをマップするには、次のようにします。
- 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の出力に基づいて画像を詳細に説明します。
画像をアップロードした後のプロンプトの例:
特定のニーズに合わせてプロンプトをカスタマイズすることもできます。
または
リリース履歴
- 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 トークン
You must be authenticated.
Anthropic Claude Vision および OpenAI GPT-4 Vision API を使用して画像認識機能を提供し、複数の画像形式をサポートし、Tesseract OCR によるオプションのテキスト抽出を提供します。
- Authors
- Features
- Requirements
- Installation
- Integration
- Usage
- Development
- License
- Using with AI Assistants
- Release History
- License
- Contributing