MCP OpenVision について
MCP OpenVisionは、OpenRouter経由のビジョンモデルで画像を分析する、AIアシスタント向けのMCPサーバーです。画像ツールはエンコードデータ、URL、ファイルパスに対応し、モデルや分析指示を指定できます。
主な機能
- 01ビジョンモデルによる画像分析
- 02Base64、URL、ファイルパスに対応
- 03クエリと任意のシステムプロンプトを指定
- 04モデルと生成パラメーターの選択
活用シーン
- 01URL上の画像の説明
- 02画像内のテキストやデータの抽出
- 03指定した詳細に焦点を当てた画像分析
MCP 対応
画像と分析指示を送信する `image_analysis` ツールをMCPクライアントに提供し、OpenRouterのビジョンモデルで分析します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP OpenVision
概要
MCP OpenVision は、OpenRouter のビジョンモデルを活用した画像分析機能を提供する Model Context Protocol(MCP)サーバーです。MCP エコシステム内のシンプルなインターフェースを通じて、AI アシスタントが画像を分析できるようにします。
インストール
Smithery 経由でインストールする
Smithery 経由で、Claude Desktop に mcp-openvision を自動的にインストールするには:
npx -y @smithery/cli install @Nazruden/mcp-openvision --client claude
pip を使用する
pip install mcp-openvision
UV を使用する(推奨)
uv pip install mcp-openvision
設定
MCP OpenVision の利用には OpenRouter API キーが必要です。環境変数を使用して設定できます。
- OPENROUTER_API_KEY(必須):OpenRouter API キー
- OPENROUTER_DEFAULT_MODEL(任意):使用するビジョンモデル
OpenRouter のビジョンモデル
MCP OpenVision は、ビジョン機能に対応した OpenRouter のあらゆるモデルで動作します。デフォルトのモデルは qwen/qwen2.5-vl-32b-instruct:free ですが、ほかの互換モデルも指定できます。
OpenRouter で利用できる人気のビジョンモデルには、次のものがあります。
qwen/qwen2.5-vl-32b-instruct:free(デフォルト)anthropic/claude-3-5-sonnetanthropic/claude-3-opusanthropic/claude-3-sonnetopenai/gpt-4o
OPENROUTER_DEFAULT_MODEL 環境変数を設定するか、image_analysis 関数に model パラメーターを直接渡すことで、カスタムモデルを指定できます。
使用方法
MCP Inspector でテストする
MCP OpenVision をテストする最も簡単な方法は、MCP Inspector ツールを使用することです。
npx @modelcontextprotocol/inspector uvx mcp-openvision
Claude Desktop または Cursor と連携する
-
MCP 設定ファイルを編集します。
- Windows:
%USERPROFILE%\.cursor\mcp.json - macOS:
~/.cursor/mcp.jsonまたは~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
-
次の設定を追加します。
{
"mcpServers": {
"openvision": {
"command": "uvx",
"args": ["mcp-openvision"],
"env": {
"OPENROUTER_API_KEY": "your_openrouter_api_key_here",
"OPENROUTER_DEFAULT_MODEL": "anthropic/claude-3-sonnet"
}
}
}
}
開発用にローカルで実行する
# Set the required API key
export OPENROUTER_API_KEY="your_api_key"
# Run the server module directly
python -m mcp_openvision
機能
MCP OpenVision は、次のコアツールを提供します。
- image_analysis:ビジョンモデルを使って画像を分析します。さまざまなパラメーターに対応しています。
image:次の形式で指定できます。- Base64 エンコードされた画像データ
- 画像 URL(http/https)
- ローカルファイルパス
query:画像分析タスクに対するユーザーの指示system_prompt:モデルの役割と動作を定義する指示(任意)model:使用するビジョンモデルtemperature:ランダム性を制御します(0.0~1.0)max_tokens:応答の最大長
効果的なクエリを作成する
query パラメーターは、画像分析から有用な結果を得るうえで重要です。適切に作成されたクエリには、次の情報が含まれます。
- 目的:この画像を分析する理由
- 注目点:注意を向けるべき具体的な要素や詳細
- 必要な情報:抽出する必要がある情報の種類
- 形式の希望:結果をどのような形式にするか
効果的なクエリの例
| 基本的なクエリ | 改善されたクエリ |
|---|---|
| "この画像を説明してください" | "この店舗の棚の画像に写っている小売商品をすべて特定し、価格帯を推定してください" |
| "この画像には何が写っていますか?" | "この医療画像を分析して異常がないか確認し、強調表示された領域に注目して考えられる診断を提示してください" |
| "このグラフを分析してください" | "四半期ごとの売上を示すこの棒グラフから数値データを抽出し、2022-2023年の主な傾向を特定してください" |
| "テキストを読んでください" | "このレストランのメニューに見えるテキストをすべて書き起こし、項目名、説明、価格をそのまま保持してください" |
分析が必要な理由や、具体的にどのような情報を求めているかを伝えることで、モデルが関連する詳細に焦点を合わせ、より有益な分析結果を提示できるようになります。
使用例
# Analyze an image from a URL
result = await image_analysis(
image="https://example.com/image.jpg",
query="Describe this image in detail"
)
# Analyze an image from a local file with a focused query
result = await image_analysis(
image="path/to/local/image.jpg",
query="Identify all traffic signs in this street scene and explain their meanings for a driver education course"
)
# Analyze with a base64-encoded image and a specific analytical purpose
result = await image_analysis(
image="SGVsbG8gV29ybGQ=...", # base64 data
query="Examine this product packaging design and highlight elements that could be improved for better visibility and brand recognition"
)
# Customize the system prompt for specialized analysis
result = await image_analysis(
image="path/to/local/image.jpg",
query="Analyze the composition and artistic techniques used in this painting, focusing on how they create emotional impact",
system_prompt="You are an expert art historian with deep knowledge of painting techniques and art movements. Focus on formal analysis of composition, color, brushwork, and stylistic elements."
)
画像入力の種類
image_analysis ツールでは、次の種類の画像入力を使用できます。
- Base64 エンコードされた文字列
- 画像 URL - http:// または https:// で始まる必要があります
- ファイルパス:
- 絶対パス:/(Unix)またはドライブ文字(Windows)で始まる完全なパス
- 相対パス:現在の作業ディレクトリを基準とするパス
- project_root を指定した相対パス:
project_rootパラメーターを使用して基準ディレクトリを指定します
相対パスの使用
相対ファイルパス("examples/image.jpg" など)を使用する場合、次の2つの方法があります。
- パスを、サーバーの実行中の現在の作業ディレクトリからの相対パスにする
- または、
project_rootパラメーターを指定する:
# Example with relative path and project_root
result = await image_analysis(
image="examples/image.jpg",
project_root="/path/to/your/project",
query="What is in this image?"
)
これは、現在の作業ディレクトリが予測できないアプリケーションや、特定のディレクトリを基準とするパスでファイルを参照したい場合に特に便利です。
開発
開発環境のセットアップ
# Clone the repository
git clone https://github.com/modelcontextprotocol/mcp-openvision.git
cd mcp-openvision
# Install development dependencies
pip install -e ".[dev]"
コードのフォーマット
このプロジェクトでは、コードの自動フォーマットに Black を使用しています。フォーマットは GitHub Actions によって適用されます。
- リポジトリにプッシュされたすべてのコードは、Black によって自動的にフォーマットされます
- リポジトリのコラボレーターからのプルリクエストでは、Black がコードをフォーマットし、プルリクエストのブランチに直接コミットします
- フォークからのプルリクエストでは、Black がフォーマット済みのコードを含む新しいプルリクエストを作成します。このプルリクエストは元のプルリクエストにマージできます
コミット前に、ローカルで Black を実行してコードをフォーマットすることもできます。
# Format all Python code in the src and tests directories
black src tests
テストの実行
pytest
リリースプロセス
このプロジェクトでは、自動化されたリリースプロセスを使用しています。
- セマンティック バージョニングの原則に従って、
pyproject.tomlのバージョンを更新します- 補助スクリプトを使用できます:
python scripts/bump_version.py [major|minor|patch]
- 補助スクリプトを使用できます:
- 新しいバージョンの詳細を
CHANGELOG.mdに追加します- このスクリプトは
CHANGELOG.mdに記入用のテンプレートエントリーも作成します
- このスクリプトは
- これらの変更を
mainブランチにコミットしてプッシュします - GitHub Actions のワークフローが次の処理を行います。
- バージョンの変更を検出する
- 新しい GitHub リリースを自動的に作成する
- PyPI に公開するパブリッシングワークフローを開始する
この自動化により、一貫したリリースプロセスを維持し、すべてのリリースで適切なバージョン管理とドキュメント化を実現できます。
サポート
このプロジェクトが役に立った場合は、コーヒーをごちそうして、継続的な開発とメンテナンスを支援することをご検討ください。
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細は LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。