mcp-six-eyes
mcp-six-eyes
テキストのみのAIエージェントに画像理解能力を与えるMCPサーバーです。「画像1と2を参照して」「これらのスクリーンショットを比較して」といった複数画像チャットにも対応します。
テキストのみのモデルはピクセルを見ることができません。このサーバーはそのギャップを埋めます。エージェントがビジョンツールを呼び出し、サーバーがマルチモーダルAPIと通信し、エージェントはプレーンテキストを受け取ります。
Agent (text-only)
│ tool call: analyze / compare / refer / ocr / …
▼
mcp-six-eyes (this server)
│ 1..N images: path | URL | base64 (labels: 1, 2, before, …)
▼
Vision API (OpenAI / Anthropic / Gemini / OpenRouter / custom)
│
▼
Plain-text description / OCR / comparison / structured extract
│
▼
Agent continues reasoning with textこれが機能する仕組み
MCPはエージェントが呼び出せるツールを公開します。エージェントはネイティブな視覚能力を必要としません。
ユーザーが1つ以上の画像をアップロードまたは指定します
エージェントがそれらのソース(および任意のラベル)を指定してビジョンツールを呼び出します
サーバーが画像を読み込み、マルチモーダルモデルに送信します
サーバーは安定した画像ラベル付きでテキストのみを返します
テキストのみのエージェントは、そのテキストを他のツール結果と同様に使用します
Related MCP server: MCP Vision Server
ツール
ツール | 目的 |
| 1つ以上の画像に対する一般的なQ&A |
| 詳細なシーン/UIの説明(エージェント向けの優れた「コンテキストダンプ」) |
| 表示されているテキストを抽出(複数画像時は画像ごとのセクション) |
| 2枚以上の画像を差分比較(before/after、A/B、バリアント) |
| 「画像1」「両方の図」などを引用する質問に回答 |
| UI/UXスクリーンショットのレビューと複数ステップのフロー |
| チャート、プロット、テーブル、ダッシュボード |
| アーキテクチャ/フローチャート/ERD/ホワイトボードの説明者 |
| フォーム、レシート、テーブル、ラベルから構造化JSONを抽出 |
| 設定済みプロバイダー/モデルと制限を表示 |
画像入力
すべての画像ツールは以下を受け付けます:
単一:
image: ローカルパス、file://、http(s)、データURL、またはbase64複数:
images: ソースの配列 または{ source, label?, mimeType? }オブジェクト両方を渡すことも可能です。それらはマージされます
ラベルはデフォルトで "1"、"2"、… となり、「画像1と画像2を比較」のようなエージェントプロンプトがきれいにマッピングされます。カスタムラベル("before"、"after"、"fig-a")も機能します。
# one image
analyze_image({ image: "./shot.png", prompt: "What failed?" })
# multi-image with default labels 1..n
compare_images({
images: ["./a.png", "./b.png"],
prompt: "What changed in the error state?"
})
# multi-image with explicit labels (best for long threads)
refer_images({
images: [
{ source: "./login.png", label: "1" },
{ source: "./dashboard.png", label: "2" }
],
prompt: "Using image 1 and image 2, is the user authenticated?"
})サポートされるソース形式:
ローカルファイルパス(
/path/to/image.pngまたはC:\path\to\image.png)file://URIhttp(s)URLデータURL(
data:image/png;base64,...)生のbase64(可能な場合は
mimeTypeを渡してください)
要件
Node.js 20以上
ビジョン対応APIキー(OpenAI、Anthropic、Google、OpenRouter、またはOpenAI互換の任意のエンドポイント)
インストール
npmにmcp-six-eyesとして公開されています。
npx -y mcp-six-eyesまたは、グローバル/プロジェクトの依存関係としてインストール:
npm install -g mcp-six-eyes
# or
npm install mcp-six-eyesほとんどのユーザーは手動で実行する代わりにMCPクライアントに組み込みます。Claude Desktop / Cursorの設定例:
{
"mcpServers": {
"mcp-six-eyes": {
"command": "npx",
"args": ["-y", "mcp-six-eyes"],
"env": {
"VISION_PROVIDER": "openai",
"OPENAI_API_KEY": "sk-..."
}
}
}
}ここで npx が人気の理由:
グローバルインストール不要
クライアントがオンデマンドでサーバーを起動
-yで初回実行時のインストールプロンプトをスキップnpmがパッケージをキャッシュして次回以降の起動を高速化
ローカル開発
npm install
npm run build次に、以下のいずれか:
{
"mcpServers": {
"mcp-six-eyes": {
"command": "npx",
"args": ["-y", "."],
"env": {
"VISION_PROVIDER": "openai",
"OPENAI_API_KEY": "sk-..."
}
}
}
}またはNodeをビルド済みエントリポイントに向ける:
{
"mcpServers": {
"mcp-six-eyes": {
"command": "node",
"args": ["./build/index.js"],
"env": {
"VISION_PROVIDER": "openai",
"OPENAI_API_KEY": "sk-..."
}
}
}
}環境変数
プロバイダーキーはMCPクライアントの env ブロック(推奨)または開発用のローカル .env に設定します。
最小限のOpenAI設定:
VISION_PROVIDER=openai
OPENAI_API_KEY=sk-...オプションのモデル/制限:
VISION_MODEL=gpt-4o-mini
VISION_MAX_IMAGES=10
VISION_MAX_IMAGE_BYTES=20971520
VISION_CACHE_MAX_ENTRIES=200サーバーはstdio上でMCPを話します。アプリケーションログをstdoutに書き込まないでください。
キャッシュ
ビジョン呼び出しはコンテンツごとにメモリ内でメモ化されます。キャッシュキーは実際の画像バイトに加えてタスク、プロンプト、ラベル、トークン上限をハッシュします(ソース文字列ではありません)。そのため、モデルが同じ画像に対して describe_image(または任意のビジョンツール)を再呼び出しすると、前回の回答が即座に返され、Cached: yes とマークされ、ビジョンAPIへの再課金は発生しません。
デフォルト:
VISION_CACHE_MAX_ENTRIES=200(上限付き、最も古いものから削除)VISION_CACHE_MAX_ENTRIES=0で無効化特定のキーに対して最初の回答が優先されます。変更されたファイルやURLは新しいキーを生成します
失敗した応答とフォールバック応答はキャッシュされません
キャッシュはプロセス存続期間のみ有効(ディスク永続化なし)
クライアントの注意点
Claude Desktop
設定ファイル:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%AppData%\Claude\claude_desktop_config.json
Quick start with npx の npx ブロックを使用します。
Cursor
同じサーバーブロックを .cursor/mcp.json(プロジェクト)またはグローバルCursor MCP設定に追加します。
その他のstdio MCPホスト
以下を起動できるホスト:
npx -y mcp-six-eyes環境変数を渡せるホストなら動作します。
プロバイダー
プロバイダー |
| キー環境変数 | デフォルトモデル |
OpenAI |
|
|
|
Anthropic |
|
|
|
Google Gemini |
|
|
|
OpenRouter |
|
|
|
カスタムOpenAI互換 |
|
|
|
オプションのフォールバック:
VISION_FALLBACK_PROVIDER=anthropic
ANTHROPIC_API_KEY=sk-ant-...エージェント使用例
単一スクリーンショット
User: What's wrong in this screenshot? ./screenshots/build-error.png
Agent → ocr_image({ image: "./screenshots/build-error.png" })
Agent → analyze_image({
image: "./screenshots/build-error.png",
prompt: "Explain the error and suggest a fix"
})
Agent → answers in plain text複数画像: 参照/比較
User: I uploaded two shots. Compare image 1 and 2. Did the fix work?
Agent → compare_images({
images: [
{ source: "./before.png", label: "1" },
{ source: "./after.png", label: "2" }
],
prompt: "Did the red error banner disappear after the fix?"
})User: Refer image 1 and image 2. Which CTA is primary?
Agent → refer_images({
images: [
{ source: "./landing-a.png", label: "1" },
{ source: "./landing-b.png", label: "2" }
],
prompt: "Which image has the stronger primary CTA and why?"
})UIフロー、チャート、ダイアグラム、構造化抽出
inspect_ui({
images: ["./step1.png", "./step2.png", "./step3.png"],
prompt: "Describe the checkout flow and any friction"
})
read_chart({
image: "https://example.com/revenue.png",
prompt: "Summarize the trend and call out outliers"
})
explain_diagram({
image: "./architecture.png",
prompt: "List services and data flow"
})
extract_from_images({
image: "./receipt.jpg",
schema: "{\"merchant\":string,\"date\":string,\"total\":number,\"items\":[{\"name\":string,\"price\":number}]}"
})アーキテクチャ
src/
index.ts MCP server + tools
config.ts env/provider config
image.ts path/URL/base64 loader + multi-image labels
prompts.ts task prompts (analyze/describe/ocr/compare/...)
providers/
index.ts provider router + fallback
openai-compatible.ts OpenAI / OpenRouter / custom (multi-image)
anthropic.ts Claude vision (multi-image)
google.ts Gemini vision (multi-image)
types.ts shared contracts
test/ unit tests (node:test, mocked providers)
assets/
logo.png project logo設計ノート
ツールでありリソースではない: 画像理解は副作用(APIコスト)を伴うアクションであるため、ツールとして公開されます。
テキストのみの出力: ビジョンを持たないホストモデルはテキストコンテンツブロックのみを必要とします。
ラベル付き複数画像: チャットUIのエージェントは「画像1/2」について話します。ラベルはそのグラウンディングを安定させます。
タスク固有のツール: 比較/参照/UI/チャート/ダイアグラム/抽出は、ツール選択のための1つの巨大なプロンプトに勝ります。
stdioトランスポート: デスクトップエージェントのための最もシンプルなローカル統合。
stdoutログなし: stdoutはJSON-RPC用に予約されています。診断はstderrに送られます。
プロバイダー抽象化: エージェントが学習するツール名を変更せずにバックエンドを交換できます。
開発
npm install
npm test
npm startスクリプト | 目的 |
| TypeScriptを |
| 型チェックのみ |
| ビルド + 完全な単体テストスイート |
| 現在の |
| クイック画像ローダースモークスクリプト |
| stdio上でMCPサーバーを実行 |
MCP Inspector でデバッグ:
npx @modelcontextprotocol/inspector node ./build/index.jsPRとコーディングガイドラインについては CONTRIBUTING.md を参照してください。
リンク
npm: mcp-six-eyes
メンテナー: rimunace
リリースワークフロー
ローカル変更後のメンテナー手順:
# one-time
npm login
# bump version + CHANGELOG, then ship
npm test
npm publish --access publicオプションのヘルパー(テスト後、npm公開):
npm run releaseセキュリティ
APIキーは環境変数/クライアント設定に留まり、ツール応答には決して含まれません
リモートURLフェッチは明示的なツール入力です。信頼できないURLは慎重に扱ってください
大きな画像は
VISION_MAX_IMAGE_BYTES(デフォルト20MB)で拒否されます1回の呼び出しあたりの画像数は
VISION_MAX_IMAGES(デフォルト10)で制限されます応答キャッシュはコンテンツハッシュと結果テキストのみをメモリ内に保持します。ディスクには何も永続化されません
完全なポリシー: SECURITY.md。
コントリビューション
Issueとプルリクエストを歓迎します。PRを開く前に npm test を実行し、CONTRIBUTING.md をお読みください。
ライセンス
Maintenance
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server that analyzes images with Google's Gemini vision models, allowing agents to describe or ask questions about images without bloating context.1MIT
- FlicenseNot gradedqualityBmaintenanceA versatile MCP server that adds vision capabilities (image analysis, OCR, image/video generation) to AI models lacking native vision, with support for multiple providers and automatic task routing.1
- AlicenseNot gradedqualityCmaintenanceMCP server for analyzing images using multiple vision LLM providers (OpenCode, OpenAI, Anthropic, Google, and custom OpenAI-compatible endpoints). Provides tools to analyze single or multiple images, list providers, and test vision capabilities.MIT
- AlicenseAqualityCmaintenanceEnables non-vision LLMs to analyze images via any OpenAI-compatible vision API. Hardened against truncation, empty responses, and timeouts for reliable analysis.1177MIT
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
MCP server for Flux AI image generation
MCP server for NanoBanana AI image generation and editing
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/RimunAce/mcp-six-eyes'
If you have feedback or need assistance with the MCP directory API, please join our Discord server