🚀 MCP 作为评审员 ⚖️
MCP 作为评审员 在 AI 编码助手和大语言模型(LLM)之间充当验证层,有助于确保生成的代码更安全、质量更高。


✨ 主要特性
MCP 作为评审员 是一种 行为式 MCP,它通过要求对以下方面进行明确的大语言模型评估,来增强 AI 编码助手的能力:
- 研究、系统设计和规划
- 代码更改、测试以及任务完成验证
它强制进行基于证据的研究,优先复用而非重新发明,并要求人工参与决策。
如果你的集成开发环境(IDE)已有规则或智能代理(如 Copilot、Cursor、Claude Code),可以继续使用它们 —— 这个评审员会在计划、代码差异和测试方面添加可强制执行的审批环节。
关键问题
当前 AI 编码助手和大语言模型存在以下关键问题:
- 将大语言模型的输出视为绝对正确,跳过研究环节,使用过时信息。
- 不重用现有库和代码,而是重复造轮子。
- 偷工减料,代码达不到工程标准,测试力度薄弱。
- 当需求不明确或计划变更时,擅自做出决策。
- 存在安全盲点,如缺少输入验证、存在注入风险/攻击向量、违反最小权限原则以及防御性编程不足。
强制执行的内容
- 基于证据的研究和复用(最佳实践、库、现有代码)
- 以用户需求为导向的先规划后交付
- 人工参与决策,以应对模糊情况和阻碍
- 代码和测试的质量关卡(安全性、性能、可维护性)
关键能力
- 通过 MCP 采样 进行智能代码评估,强制执行软件工程标准,并标记安全、性能和可维护性风险。
- 全面的计划/设计审查,验证架构、研究深度、需求匹配度和实现方法。
- 通过 MCP 启发式方法 实现用户驱动的决策,明确需求、解决障碍并保持选择透明。
- 在系统设计和代码更改中进行安全验证。
工具及其作用
| 工具 |
解决的问题 |
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 |
让用户参与权衡、约束和强制更改的决策 |
🚀 快速开始
要求与建议
MCP 客户端先决条件
MCP 作为评审员的核心功能严重依赖于 MCP 采样 和 MCP 启发式方法 特性:
系统先决条件
- Docker Desktop / Python 3.13+:运行 MCP 服务器所必需。
支持的 AI 助手
| AI 助手 |
平台 |
MCP 支持 |
状态 |
备注 |
| GitHub Copilot |
Visual Studio Code |
✅ 完全支持 |
推荐 |
与采样和启发式方法实现完整的 MCP 集成 |
| Claude Code |
- |
⚠️ 部分支持 |
需要 LLM API 密钥 |
采样支持功能请求 启发式方法支持功能请求 |
| 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 配置(可选)。
💡 使用建议:优先选择大上下文模型(≥ 100 万个令牌),以获得更好的分析和判断结果。
如果 MCP 服务器未自动使用
如需故障排除,请访问 常见问题解答部分。
🔧 MCP 配置
在支持 MCP 的客户端中配置 MCP 作为评审员:
方法 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:可选的自定义模型(默认值请参阅 支持的大语言模型提供商)。
--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 助手,你可以配置大语言模型 API 密钥作为备用方案。这样即使客户端不支持 MCP 采样,MCP 作为评审员也能正常工作。
- 设置
LLM_API_KEY(统一密钥)。系统会自动检测供应商;可选择设置 LLM_MODEL_NAME 来覆盖默认模型。
支持的大语言模型提供商
| 排名 |
提供商 |
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 |
最先进的模型(1240 亿参数) |
特定客户端设置
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:可选的自定义模型(默认值请参阅 支持的大语言模型提供商)。
Claude Code
- 通过命令行界面添加 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:可选的自定义模型(默认值请参阅 支持的大语言模型提供商)。
其他 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:可选的自定义模型(默认值请参阅 支持的大语言模型提供商)。
🔒 隐私与灵活的 AI 集成
MCP 采样(首选)+ LLM API 密钥备用方案
主要模式:MCP 采样
- 所有判断均使用 MCP 采样 功能进行。
- 无需配置或支付外部大语言模型 API 服务费用。
- 直接与支持 MCP 的客户端现有的 AI 模型配合使用。
- 目前支持的组合:GitHub Copilot + VS Code。
备用模式:LLM API 密钥
- 当 MCP 采样不可用时,服务器可以使用大语言模型 API 密钥。
- 通过 LiteLLM 支持多个提供商:OpenAI、Anthropic、Google、Azure、Groq、Mistral、xAI。
- 从 API 密钥模式自动检测供应商。
- 未指定模型时,按供应商选择默认模型。
隐私保护
- 服务器在本地机器上运行。
- 不收集数据,你的代码和对话保持私密。
- 使用 MCP 采样时不进行外部 API 调用。如果你设置了
LLM_API_KEY 作为备用方案,服务器只会调用你选择的大语言模型提供商,根据你提供的评估内容进行判断(计划/代码/测试)。
- 完全控制你的开发工作流程和敏感信息。
🤝 贡献
我们欢迎贡献!请参阅 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
© 概念与方法
© 2025 OtherVibes 和 Zvi Fried。“MCP 作为评审员” 概念、“行为式 MCP” 方法、分阶段工作流(计划 → 代码 → 测试 → 完成)、工具分类/描述以及提示模板均为本仓库的原创作品。
已有成果与引用说明
尽管 “大语言模型作为评审员” 是一个广为人知的概念,但本仓库定义了由 OtherVibes 和 Zvi Fried 提出的原创 “MCP 作为评审员” 行为式 MCP 模式。它结合了以任务为中心的工作流强制执行(计划 → 代码 → 测试 → 完成)、基于大语言模型的明确验证以及人工参与的启发式方法,同时提供了此处的提示模板和工具分类。请引用为:“OtherVibes – MCP 作为评审员(Zvi Fried)”。
❓ 常见问题解答
“MCP 作为评审员” 与 IDE 助手(GitHub Copilot、Cursor、Claude Code)中的规则/子代理有何不同?
| 特性 |
IDE 规则 |
子代理 |
MCP 作为评审员 |
| 静态行为指导 |
✓ |
✓ |
✗ |
| 自定义系统提示 |
✓ |
✓ |
✓ |
| 项目上下文集成 |
✓ |
✓ |
✓ |
| 专门任务处理 |
✗ |
✓ |
✓ |
| 主动质量关卡 |
✗ |
✗ |
✓ |
| 基于证据的验证 |
✗ |
✗ |
✓ |
| 带反馈的批准/拒绝 |
✗ |
✗ |
✓ |
| 工作流强制执行 |
✗ |
✗ |
✓ |
| 跨助手兼容性 |
✗ |
✗ |
✓ |
评审员工作流与任务列表有何关系?为什么两者都需要?
- 任务列表:用于规划/组织,跟踪任务、优先级和状态,但不能保证工程质量或就绪性。
- 评审员工作流:作为质量关卡,对计划/设计、代码差异、测试和最终完成进行审批。它需要真实的证据(如统一的 Git 差异和原始测试输出),并返回结构化的批准和所需的改进建议。
- 结合使用:使用任务列表来组织工作,使用评审员来决定每个阶段是否真正准备好继续进行。服务器还会发出下一步工具指导,以推动工作通过各个关卡。
如果评审员未自动使用,如何强制使用?
- 在你的提示中输入:"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 服务器正在运行,并且在你的客户端中,评审员工具已启用/批准。
如何在 VS Code 中选择采样模型?
- 打开命令面板(Cmd/Ctrl + Shift + P)→ “MCP: List Servers”。
- 选择 “mcp-as-a-judge” → “Configure Model Access”。
- 勾选你首选的模型以启用采样。
📄 许可证
本项目采用 MIT 许可证(详见 LICENSE)。
🙏 致谢