🚀 MCP as a Judge ⚖️
MCP as a Judge は、AIコーディングアシスタントとLLMの間の検証レイヤーとして機能し、より安全で高品質なコードを保証するのに役立ちます。
🚀 クイックスタート
必要条件と推奨事項
MCPクライアントの前提条件
MCP as a Judgeは、そのコア機能のために MCP Sampling と MCP Elicitation 機能に大きく依存しています。
システムの前提条件
- Docker Desktop / Python 3.13+ - MCPサーバーを実行するために必要です。
サポートされるAIアシスタント
| AIアシスタント |
プラットフォーム |
MCPサポート |
ステータス |
注意事項 |
| GitHub Copilot |
Visual Studio Code |
✅ 完全対応 |
推奨 |
サンプリングと引出しによる完全なMCP統合 |
| Claude Code |
- |
⚠️ 部分対応 |
LLM APIキーが必要 |
Sampling Support feature request Elicitation Support feature request |
| Cursor |
- |
⚠️ 部分対応 |
LLM APIキーが必要 |
MCPサポートあり、ただしサンプリング/引出しは制限されています |
| Augment |
- |
⚠️ 部分対応 |
LLM APIキーが必要 |
MCPサポートあり、ただしサンプリング/引出しは制限されています |
| Qodo |
- |
⚠️ 部分対応 |
LLM APIキーが必要 |
MCPサポートあり、ただしサンプリング/引出しは制限されています |
✅ 推奨セットアップ: GitHub Copilot + VS Code — 完全なMCPサンプリング; APIキー不要。
⚠️ 重要: 完全なMCPサンプリングを持たないアシスタント(Cursor、Claude Code、Augment、Qodo)の場合、LLM_API_KEY を設定する必要があります。設定しない場合、サーバーは計画やコードを評価できません。LLM API構成 を参照してください。
💡 ヒント: より良い分析と判断のために、大規模コンテキストモデル(≥ 1Mトークン)を選択することをおすすめします。
MCPサーバーが自動的に使用されない場合
トラブルシューティングについては、FAQセクション を参照してください。
✨ 主な機能
MCP as a Judge は、以下の点について明示的なLLM評価を要求することで、AIコーディングアシスタントを強化する 行動的MCP です。
- 研究、システム設計、および計画
- コード変更、テスト、およびタスク完了の検証
これは、エビデンスベースの研究、再利用を促進し、人間の関与による決定を強制します。
解決する主な問題
- LLMの出力を真実として受け取り、研究をスキップして古い情報を使用する
- 既存のライブラリやコードを再利用せずに、同じことを繰り返し実装する
- コード品質やテストを軽視し、エンジニアリング標準を下回るコードを書く
- 要件が曖昧または計画が変更された場合に一方的な決定を下す
- セキュリティの盲点: 入力検証の欠如、インジェクションリスク/攻撃ベクトル、最小権限原則の違反、および防御的プログラミングの不足
強制する内容
- エビデンスベースの研究と再利用(ベストプラクティス、ライブラリ、既存のコード)
- ユーザー要件に沿った計画先行型のデリバリー
- 曖昧さや障害に対する人間の関与による決定
- コードとテストの品質ゲート(セキュリティ、パフォーマンス、保守性)
主要な機能
- MCP sampling によるインテリジェントなコード評価; ソフトウェアエンジニアリング標準を強制し、セキュリティ/パフォーマンス/保守性のリスクを検出します。
- 包括的な計画/設計レビュー: アーキテクチャ、研究の深さ、要件の適合性、および実装アプローチを検証します。
- MCP elicitation によるユーザー主導の決定: 要件を明確化し、障害を解決し、選択肢を透明化します。
- システム設計とコード変更におけるセキュリティ検証
ツールとその役割
| ツール |
解決する問題 |
set_coding_task |
タスクメタデータを作成/更新します; タスクサイズを分類し、次のステップのワークフローガイダンスを返します。 |
get_current_coding_task |
最新のタスクIDとメタデータを回復し、安全に作業を再開します。 |
judge_coding_plan |
計画/設計を検証します; ライブラリ選択と内部再利用マップを要求し、リスクを検出します。 |
judge_code_change |
統一されたGit差分を正しさ、再利用、セキュリティ、およびコード品質についてレビューします。 |
judge_testing_implementation |
実際のランナー出力とオプションのカバレッジを使用してテストを検証します。 |
judge_coding_task_completion |
完了前に計画、コード、およびテストの承認を確保する最終ゲートです。 |
raise_missing_requirements |
不足している詳細と決定を引出し、進捗を妨げる障害を解消します。 |
raise_obstacle |
トレードオフ、制約、および強制的な変更についてユーザーに関与させます。 |
📦 インストール
方法1: Dockerを使用する(推奨)
VS Code(MCP)用のワンクリックインストール

注意事項:
- VS Codeがサンプリングモデルを制御します; “MCP: List Servers → mcp-as-a-judge → Configure Model Access” を介して選択してください。
-
MCP設定を構成する:
次の内容をMCPクライアントの設定ファイルに追加します。
{
"command": "docker",
"args": ["run", "--rm", "-i", "--pull=always", "ghcr.io/othervibes/mcp-as-a-judge:latest"],
"env": {
"LLM_API_KEY": "your-openai-api-key-here",
"LLM_MODEL_NAME": "gpt-4o-mini"
}
}
📝 構成オプション(すべてオプション):
- LLM_API_KEY: GitHub Copilot + VS Codeの場合、オプション(組み込みのMCPサンプリングがあります)
- LLM_MODEL_NAME: オプションのカスタムモデル(サポートされるLLMプロバイダー を参照してください)
--pull=always フラグは、常に最新バージョンを自動的に取得します。
必要に応じて手動で更新します。
docker pull ghcr.io/othervibes/mcp-as-a-judge:latest
方法2: uvを使用する
- パッケージをインストールする:
uv tool install mcp-as-a-judge
- MCP設定を構成する:
MCPサーバーは、MCP対応クライアントによって自動的に検出される場合があります。
📝 注意事項:
- GitHub Copilot + VS Codeの場合は追加の構成は不要(組み込みのMCPサンプリングがあります)
- LLM_API_KEYはオプションで、必要に応じて環境変数で設定できます。
- 最新バージョンに更新する:
uv tool upgrade mcp-as-a-judge
VS Codeでサンプリングモデルを選択する
- コマンドパレットを開きます(Cmd/Ctrl+Shift+P) → “MCP: List Servers”
- 構成されたサーバー “mcp-as-a-judge” を選択します
- “Configure Model Access” を選択します
- サンプリングを有効にするために、好みのモデルをチェックします
🔧 技術詳細
LLM API構成(オプション)
完全なMCPサンプリングサポートを持たないAIアシスタント の場合、フォールバックとしてLLM APIキーを構成できます。これにより、クライアントがMCPサンプリングをサポートしていない場合でも、MCP as a Judgeが機能します。
LLM_API_KEY を設定します(統一キー)。ベンダーは自動的に検出され、必要に応じて LLM_MODEL_NAME を設定してデフォルトを上書きできます。
サポートされるLLMプロバイダー
| ランク |
プロバイダー |
APIキー形式 |
デフォルトモデル |
注意事項 |
| 1 |
OpenAI |
sk-... |
gpt-4.1 |
高速で信頼性の高いモデル |
| 2 |
Anthropic |
sk-ant-... |
claude-sonnet-4-20250514 |
高い推論能力を持つモデル |
| 3 |
Google |
AIza... |
gemini-2.5-pro |
高度なモデル |
| 4 |
Azure OpenAI |
[a-f0-9]{32} |
gpt-4.1 |
OpenAIと同じモデル、Azure経由 |
| 5 |
AWS Bedrock |
AWS認証情報 |
anthropic.claude-sonnet-4-20250514-v1:0 |
Anthropicと整合性があります |
| 6 |
Vertex AI |
サービスアカウントJSON |
gemini-2.5-pro |
Google Cloudを介したエンタープライズGemini |
| 7 |
Groq |
gsk_... |
deepseek-r1 |
高速で推論能力の高いモデル |
| 8 |
OpenRouter |
sk-or-... |
deepseek/deepseek-r1 |
高い推論能力を持つモデル |
| 9 |
xAI |
xai-... |
grok-code-fast-1 |
最新のコーディング指向のモデル(2025年8月) |
| 10 |
Mistral |
[a-f0-9]{64} |
pixtral-large |
高度なモデル(124Bパラメータ) |
クライアント固有の設定
Cursor
- Cursorの設定を開く:
File → Preferences → Cursor Settings を選択します
MCP タブに移動します
+ Add をクリックして新しいMCPサーバーを追加します
- MCPサーバーの構成を追加する:
{
"command": "uv",
"args": ["tool", "run", "mcp-as-a-judge"],
"env": {
"LLM_API_KEY": "your-openai-api-key-here",
"LLM_MODEL_NAME": "gpt-4.1"
}
}
📝 構成オプション:
- LLM_API_KEY: Cursorの場合、必須(MCPサンプリングが制限されています)
- LLM_MODEL_NAME: オプションのカスタムモデル(サポートされるLLMプロバイダー を参照してください)
Claude Code
- CLIを介してMCPサーバーを追加する:
export LLM_API_KEY="your_api_key_here"
export LLM_MODEL_NAME="claude-3-5-haiku"
claude mcp add mcp-as-a-judge -- uv tool run mcp-as-a-judge
- 代替方法: 手動構成
~/.config/claude-code/mcp_servers.json を作成または編集します
{
"command": "uv",
"args": ["tool", "run", "mcp-as-a-judge"],
"env": {
"LLM_API_KEY": "your-anthropic-api-key-here",
"LLM_MODEL_NAME": "claude-3-5-haiku"
}
}
📝 構成オプション:
- LLM_API_KEY: Claude Codeの場合、必須(MCPサンプリングが制限されています)
- LLM_MODEL_NAME: オプションのカスタムモデル(サポートされるLLMプロバイダー を参照してください)
その他のMCPクライアント
他のMCP対応クライアントの場合、標準のMCPサーバー構成を使用します。
{
"command": "uv",
"args": ["tool", "run", "mcp-as-a-judge"],
"env": {
"LLM_API_KEY": "your-openai-api-key-here",
"LLM_MODEL_NAME": "gpt-5"
}
}
📝 構成オプション:
- LLM_API_KEY: ほとんどのMCPクライアントで必須(GitHub Copilot + VS Codeを除く)
- LLM_MODEL_NAME: オプションのカスタムモデル(サポートされるLLMプロバイダー を参照してください)
プライバシーと柔軟なAI統合
🔑 MCP Sampling(推奨)+ LLM APIキーフォールバック
主要モード: MCP Sampling
- すべての判断は MCP Sampling 機能を使用して行われます
- 外部のLLM APIサービスを構成または支払う必要はありません
- MCP対応クライアントの既存のAIモデルと直接連携します
- 現在サポートされているクライアント: GitHub Copilot + VS Code
フォールバックモード: LLM APIキー
- MCPサンプリングが利用できない場合、サーバーはLLM APIキーを使用できます
- LiteLLMを介して複数のプロバイダーをサポートします: OpenAI、Anthropic、Google、Azure、Groq、Mistral、xAI
- APIキーパターンから自動的にベンダーを検出します
- モデルが指定されていない場合、ベンダーごとにデフォルトのモデルが選択されます
🛡️ プライバシーの重要性
- サーバーはあなたのマシン上で ローカルに 実行されます
- データ収集は行われません - あなたのコードと会話はプライベートに保たれます
- MCP Samplingを使用する場合は外部API呼び出しは行われません。フォールバック用に
LLM_API_KEY を設定した場合、サーバーはあなたが提供する評価内容で判断(計画/コード/テスト)を行うためにのみ、選択したLLMプロバイダーに呼び出します。
- 開発ワークフローと機密情報を完全にコントロールできます
🤝 コントリビュート
コントリビューションを歓迎します!ガイドラインについては CONTRIBUTING.md を参照してください。
開発環境のセットアップ
git clone https://github.com/OtherVibes/mcp-as-a-judge.git
cd mcp-as-a-judge
uv sync --all-extras --dev
uv run pre-commit install
uv run pytest
uv run pytest && uv run ruff check && uv run ruff format --check && uv run mypy src
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています(LICENSE を参照)。
❓ FAQ
“MCP as a Judge” はIDEアシスタント(GitHub Copilot、Cursor、Claude Code)のルール/サブエージェントとどのように異なりますか?
| 機能 |
IDEルール |
サブエージェント |
MCP as a Judge |
| 静的な動作ガイダンス |
✓ |
✓ |
✗ |
| カスタムシステムプロンプト |
✓ |
✓ |
✓ |
| プロジェクトコンテキストの統合 |
✓ |
✓ |
✓ |
| 特殊なタスクの処理 |
✗ |
✓ |
✓ |
| アクティブな品質ゲート |
✗ |
✗ |
✓ |
| エビデンスベースの検証 |
✗ |
✗ |
✓ |
| フィードバック付きの承認/拒否 |
✗ |
✗ |
✓ |
| ワークフローの強制 |
✗ |
✗ |
✓ |
| 複数のアシスタントとの互換性 |
✗ |
✗ |
✓ |
Judgeワークフローはタスクリストとどのように関係していますか?両方が必要な理由は何ですか?
- タスクリスト = 計画/組織化: タスク、優先順位、およびステータスを追跡します。エンジニアリング品質や準備状況を保証するものではありません。
- Judgeワークフロー = 品質ゲート: 計画/設計、コード差分、テスト、および最終完了に対する承認を強制します。実際のエビデンス(例: 統一されたGit差分と生のテスト出力)を要求し、構造化された承認と必要な改善点を返します。
- 一緒に使用する: タスクリストを使用して作業を組織化し、Judgeを使用して各段階が実際に進行可能かどうかを判断します。サーバーはまた、ゲートを通過して進捗を続けるための次のツールのガイダンスを出力します。
Judgeが自動的に使用されない場合、どのように強制的に使用できますか?
- プロンプトに "use mcp-as-a-judge" または "Evaluate plan/code/test using the MCP server mcp-as-a-judge" と入力します。
- VS Codeでは、コマンドパレットを開き(Cmd/Ctrl+Shift+P) → "MCP: List Servers" → 構成されたサーバー “mcp-as-a-judge” がリストされ、有効になっていることを確認します。
- MCPサーバーが実行されていること、およびクライアントでJudgeツールが有効/承認されていることを確認します。
VS Codeでサンプリングモデルを選択する方法は?
- コマンドパレットを開きます(Cmd/Ctrl+Shift+P) → “MCP: List Servers”
- “mcp-as-a-judge” を選択します → “Configure Model Access”
- サンプリングを有効にするために、好みのモデルをチェックします
© 概念と方法論
© 2025 OtherVibes and Zvi Fried. “MCP as a Judge” の概念、“行動的MCP” アプローチ、段階的なワークフロー(計画 → コード → テスト → 完了)、ツールの分類/説明、およびプロンプトテンプレートは、このリポジトリで開発された独自の作品です。
先行技術と帰属
“LLM‑as‑a‑judge” は広く知られたアイデアですが、このリポジトリはOtherVibesとZvi Friedによる独自の “MCP as a Judge” 行動的MCPパターンを定義しています。これは、タスク中心のワークフローの強制(計画 → コード → テスト → 完了)、明示的なLLMベースの検証、および人間の関与による引出しを組み合わせ、ここで提供されるプロンプトテンプレートとツールの分類を含んでいます。引用する場合は、“OtherVibes – MCP as a Judge (Zvi Fried)” として帰属してください。
🙏 謝辞