代码验证工具

MCP as a Judge 是一个行为型MCP,通过要求显式的LLM评估来增强AI编码助手,确保代码的安全性和高质量。

  • by OtherVibes
  • Python
  • 本地部署
  • 17 星标
  • 更新于
在 GitHub 查看 OtherVibes/mcp-as-a-judge

使用说明

MCP作为法官⚖️

mcp名称:io.github。OtherVibes/mcp-as-a-year

MCP作为法官,在AI编码助手和LLM之间充当验证层,帮助确保更安全、更高质量的代码。

MCP作为法官 是一个 行为MCP 通过要求对以下内容进行明确的LLM评估来加强AI编码助手:

  • 研究、系统设计和规划
  • 代码更改、测试和任务完成验证

它强制执行基于证据的研究,重复使用而不是重新发明,以及人类在循环中的决策。

如果你的IDE有规则/代理(Copilot、Cursor、Claude Code),请继续使用它们——这个法官在计划、代码差异和测试上添加了可执行的批准门。

AI编码助手和LLM的关键问题

  • 将LLM输出视为基本事实;跳过研究,使用过时的信息
  • 重新设计轮子,而不是重用库和现有代码
  • 偷工减料:低于工程标准的代码和薄弱的测试
  • 当需求不明确或计划发生变化时,做出单方面决定
  • 安全盲点:缺少输入验证、注入风险/攻击向量、最小权限违规和弱防御编程

Vibe编码不必令人沮丧

它执行什么

  • 基于证据的研究和重用(最佳实践、库、现有代码)
  • 计划-首次交付符合用户要求
  • 针对模糊性和阻断器的人工闭环决策
  • 代码和测试的质量门(安全性、性能、可维护性)

关键能力

  • 通过MCP进行智能代码评估 采样执行软件工程标准,并标记安全/性能/可维护性风险
  • 全面的计划/设计评审:验证架构、研究深度、需求契合度和实施方法
  • 通过MCP进行用户驱动决策 引出:明确要求,解决障碍,并保持选择透明
  • 系统设计和代码更改中的安全验证

工具及其帮助方式

工具 它解决了什么问题
set_coding_task 创建/更新任务元数据;对task_size进行分类;返回下一步工作流程指南
get_current_coding_task 恢复最新的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激发 其核心功能的特点:

  • MCP采样 -AI驱动的代码评估和判断所需
  • MCP激发 -交互式用户决策提示所需

系统先决条件

  • Docker桌面 / Python 3.13+ -运行MCP服务器所需

支持的AI助手

AI助手 平台 MCP支持 状态 备注
GitHub Copilot Visual Studio代码 ✅ 满 推荐 通过采样和启发完成MCP集成
克劳德代码 - ⚠️ 部分 需要LLM API密钥 采样支持功能请求
激励支持功能请求
光标 - ⚠️ 部分 需要LLM API密钥 提供MCP支持,但采样/获取有限
增强 - ⚠️ 部分 需要LLM API密钥 提供MCP支持,但采样/获取有限
科多 - ⚠️ 部分 需要LLM API密钥 提供MCP支持,但采样/获取有限

✅ 推荐设置: GitHub Copilot+VS代码——完整的MCP采样;不需要API密钥。

⚠️ 严重: 对于没有完全MCP采样的助手(游标、克劳德代码、增强、Qodo),您必须设置 LLM_API_KEY没有它,服务器无法评估计划或代码。看 LLM API配置.

💡 提示: 更喜欢大型上下文模型(≥1M令牌),以便进行更好的分析和判断。

如果MCP服务器未自动使用

有关故障排除,请访问 常见问题解答部分.

🔧 MCP配置

配置 MCP作为法官 在启用MCP的客户端中:

方法一:使用Docker(推荐)

VS Code(MCP)一键安装

笔记:

  • VS Code控制采样模型;通过“MCP:列出服务器”进行选择→ mcp-as法官→ 配置模型访问”。
  1. 配置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(LLM_API_密钥):GitHub Copilot+VS代码可选(内置MCP采样)
    • LLM_MODEL_NAME:可选自定义型号(请参见 支持的LLM提供商 默认值)
    • 这 --pull=always 标志确保您始终自动获得最新版本

    然后在需要时手动更新:

    # Pull the latest version
    docker pull ghcr.io/othervibes/mcp-as-a-judge:latest
    

方法2:使用紫外线

  1. 安装软件包:

    uv tool install mcp-as-a-judge
    
  2. 配置MCP设置:

    启用MCP的客户端可能会自动检测到MCP服务器。

    📝 笔记:

    • GitHub Copilot+VS代码无需额外配置 (内置MCP采样)
    • LLM_API_KEY是可选的,如果需要,可以通过环境变量进行设置
  3. 要更新到最新版本:

    # Update MCP as a Judge to the latest version
    uv tool upgrade mcp-as-a-judge
    

在VS Code中选择采样模型

  • 打开命令面板(Cmd/Ctrl+Shift+P)→ “MCP:列出服务器”
  • 选择已配置的服务器“mcp-a-a-judge”
  • 选择“配置模型访问”
  • 检查您的首选型号以启用采样

🔑 LLM API配置(可选)

对于 没有完全MCP采样支持的AI助手 您可以将LLM API密钥配置为回退。这确保了即使客户端不支持MCP采样,MCP作为判断器也能正常工作。

  • 集 LLM_API_KEY (统一密钥)。自动检测供应商;可选设置 LLM_MODEL_NAME 以覆盖默认值。

支持的LLM提供商

排名 提供商 API密钥格式 默认模型 注释
1 OpenAI sk-... gpt-4.1 速度优化的快速可靠模型
2 Anthropic sk-ant-... claude-sonnet-4-20250514 具有卓越推理能力的高性能
3 谷歌 AIza... gemini-2.5-pro 具有内置思维的最先进模型
4 Azure OpenAI [a-f0-9]{32} gpt-4.1 与OpenAI相同,但通过Azure
5 AWS基岩 AWS凭据 anthropic.claude-sonnet-4-20250514-v1:0 与Anthropic对齐
6 顶点AI 服务帐户JSON gemini-2.5-pro 企业双子座通过谷歌云
7 Groq gsk_... deepseek-r1 具有速度优势的最佳推理模型
8 OpenRouter sk-or-... deepseek/deepseek-r1 可用的最佳推理模型
9 扩展应用识别 xai-... grok-code-fast-1 最新的以编码为重点的模型(2025年8月)
10 米斯特拉尔 [a-f0-9]{64} pixtral-large 最先进型号(124B参数)

客户端特定设置

光标

  1. 打开光标设置:

    • 首选 File → Preferences → Cursor Settings
    • 导航到 MCP 标签
    • 点击 + Add 添加新的MCP服务器
  2. 添加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(LLM_API_密钥):光标所需(有限MCP采样)
    • LLM_MODEL_NAME:可选自定义型号(请参见 支持的LLM提供商 默认值)

克劳德代码

  1. 通过CLI添加MCP服务器:

    # Set environment variables first (optional model override)
    export LLM_API_KEY="your_api_key_here"
    export LLM_MODEL_NAME="claude-3-5-haiku"  # Optional: faster/cheaper model
    
    # Add MCP server
    claude mcp add mcp-as-a-judge -- uv tool run mcp-as-a-judge
    
  2. 替代方案:手动配置:

    • 创建或编辑 ~/.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(LLM_API_密钥):克劳德代码所需(有限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(LLM_API_密钥):大多数MCP客户端都需要(GitHub Copilot+VS代码除外)
  • LLM_MODEL_NAME:可选自定义型号(请参见 支持的LLM提供商 默认值)

🔒 隐私和灵活的人工智能集成

🔑 MCP采样(首选)+LLM API密钥回退

主要模式:MCP采样

  • 所有判断均使用 MCP采样 能力
  • 无需配置或支付外部LLM API服务
  • 直接与MCP兼容客户端的现有AI模型配合使用
  • 目前支持: GitHub副本+VS代码

回退模式:LLM API密钥

  • 当MCP采样不可用时,服务器可以使用LLM API密钥
  • 通过LiteLLM支持多个提供商:OpenAI、Anthropic、谷歌、Azure、Groq、Mistral、xAI
  • 从API关键模式自动检测供应商
  • 未指定型号时,每个供应商的默认型号选择

🛡️ 您的隐私很重要

  • 服务器正在运行 本地 在您的机器上
  • 无数据收集 -您的代码和对话保持私密
  • 使用MCP采样时没有外部API调用.如果你设置 LLM_API_KEY 对于回退,服务器将仅调用您选择的LLM提供商,以对您提供的评估内容进行判断(计划/代码/测试)。
  • 完全控制您的开发工作流程和敏感信息

🤝 贡献

我们欢迎捐款!请看 贡献.md 作为指导方针。

开发设置

# Clone the repository
git clone https://github.com/OtherVibes/mcp-as-a-judge.git
cd mcp-as-a-judge

# Install dependencies with uv
uv sync --all-extras --dev

# Install pre-commit hooks
uv run pre-commit install

# Run tests
uv run pytest

# Run all checks
uv run pytest && uv run ruff check && uv run ruff format --check && uv run mypy src

©概念和方法

©2025 OtherVibes和Zvi Fried。“MCP作为法官”的概念、“行为MCP”方法、分阶段的工作流程(计划→ code → test → 完成)、工具分类/描述和提示模板是此存储库中开发的原创作品。

现有技术和归属

虽然“LLM as a judge”是一个广为人知的概念,但该知识库定义了OtherVibes和Zvi Fried的原始“MCP as a judice”行为MCP模式。它结合了以任务为中心的工作流实施(计划→ code → test → 完成)、基于LLM的显式验证和人在循环中的启发,以及这里提供的提示模板和工具分类。请注明:“OtherVibes–MCP作为评委(Zvi Fried)”。

❓ 常见问题解答

“MCP作为法官”与IDE助手(GitHub Copilot、Cursor、Claude Code)中的规则/子代理有何不同?

特性 IDE规则 子代理 MCP作为裁判
静态行为指导 ✓ ✓ ✗
自定义系统提示 ✓ ✓ ✓
项目上下文集成 ✓ ✓ ✓
专业任务处理 ✗ ✓ ✓
主动质量门 ✗ ✗ ✓
循证验证 ✗ ✗ ✓
批准/拒绝并反馈 ✗ ✗ ✓
工作流执行 ✗ ✗ ✓
跨助手兼容性 ✗ ✗ ✓

Judge工作流与任务列表有何关系?为什么我们两者都需要?

  • 任务列表=计划/组织:跟踪任务、优先级和状态。它不能保证工程质量或准备就绪。
  • 判断工作流=质量门:强制批准计划/设计、代码差异、测试和最终完成。它需要真实的证据(例如,统一的Git差异和原始测试输出),并返回结构化的批准和所需的改进。
  • 共同:使用任务清单组织工作;使用法官来决定每个阶段何时真正准备好继续进行。服务器还发出next_tool指导,以保持进度通过关卡。

如果法官不是自动使用的,我该如何强制使用?

  • 在提示中:“使用mcp-a-judge”或“使用mcp服务器mcp-a-judge评估计划/代码/测试”。
  • VS代码:命令面板→ “MCP:列出服务器”→ 确保“mcp-as-a-jounced”已列出并启用。
  • 确保MCP服务器正在运行,并且在您的客户端中,判断工具已启用/批准。

如何在VS Code中选择采样模型?

  • 打开命令面板(Cmd/Ctrl+Shift+P)→ “MCP:列出服务器”
  • 选择“mcp-a-judge”→ “配置模型访问权限”
  • 检查您的首选型号以启用采样

📄 许可证

此项目根据MIT许可证获得许可(参见 许可证).

🙏 致谢