返回市场
仲裁者MCP服务

仲裁者MCP服务

作者:OtherVibes14 星标更新:2025-10-27

项目介绍

MCP作为裁判 ⚖️

mcp-name: io.github.OtherVibes/mcp-as-a-judge

<div align="left"> <img src="assets/mcp-as-a-judge.png" alt="MCP作为裁判Logo" width="200"> </div>

MCP作为裁判在AI编码助手和大语言模型之间充当验证层,帮助确保更安全、更高质量的代码。

MIT许可证 Python 3.13+ MCP兼容

CI 发布 PyPI版本

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引出特性:

  • MCP采样 - 需要用于AI驱动的代码评估和判断
  • MCP引出 - 需要用于交互式用户决策提示

系统前提条件

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

支持的AI助手

AI助手平台MCP支持状态备注
GitHub CopilotVisual Studio Code✅ 完整推荐完整的MCP集成,包括采样和引出
Claude Code-⚠️ 部分需要大语言模型API密钥采样支持功能请求<br>引出支持功能请求
Cursor-⚠️ 部分需要大语言模型API密钥MCP支持可用,但采样/引出有限
Augment-⚠️ 部分需要大语言模型API密钥MCP支持可用,但采样/引出有限
Qodo-⚠️ 部分需要大语言模型API密钥MCP支持可用,但采样/引出有限

✅ 推荐设置: GitHub Copilot + VS Code — 完整MCP采样;无需API密钥。

⚠️ 关键: 对于没有完整MCP采样的助手(如Cursor、Claude Code、Augment、Qodo),您必须设置LLM_API_KEY。否则,服务器无法评估计划或代码。参见大语言模型API配置(可选)

💡 提示: 优先使用大型上下文模型(≥ 1M令牌)以获得更好的分析和判断。

如果MCP服务器未自动使用

对于故障排除,请访问常见问题解答部分

🔧 MCP配置

在您的MCP启用客户端中配置MCP作为裁判

方法1:使用Docker(推荐)

VS Code的一键安装(MCP)

为MCP作为裁判安装

注意事项:

  • VS Code控制采样模型;通过“MCP:列出服务器 → mcp-as-a-judge → 配置模型访问”选择它。
  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:对于GitHub Copilot + VS Code是可选的(内置MCP采样)
    • LLM_MODEL_NAME:可选的自定义模型(参见支持的大语言模型提供商默认值)
    • --pull=always 标志确保您始终自动获取最新版本

    然后根据需要手动更新:

    # 拉取最新版本
    docker pull ghcr.io/othervibes/mcp-as-a-judge:latest
    

方法2:使用uv

  1. 安装包:

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

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

    📝 注意事项:

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

    # 更新MCP作为裁判到最新版本
    uv tool upgrade mcp-as-a-judge
    

在VS Code中选择采样模型

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

🔑 大语言模型API配置(可选)

对于不完全支持MCP采样的AI助手,您可以配置一个大语言模型API密钥作为备用。这确保即使客户端不支持MCP采样,MCP作为裁判也能正常工作。

  • 设置LLM_API_KEY(统一密钥)。供应商会自动检测;如有需要,可以设置LLM_MODEL_NAME以覆盖默认值。

支持的大语言模型提供商

排名提供商API密钥格式默认模型备注
1OpenAIsk-...gpt-4.1快速可靠的优化速度模型
2Anthropicsk-ant-...claude-sonnet-4-20250514高性能且具有卓越推理能力
3GoogleAIza...gemini-2.5-pro最先进的内置思考模型
4Azure OpenAI[a-f0-9]{32}gpt-4.1与OpenAI相同,但通过Azure
5AWS BedrockAWS凭证anthropic.claude-sonnet-4-20250514-v1:0与Anthropic对齐
6Vertex AI服务账户JSONgemini-2.5-pro企业Gemini通过Google Cloud
7Groqgsk_...deepseek-r1最佳推理模型,具有速度优势
8OpenRoutersk-or-...deepseek/deepseek-r1最佳可用推理模型
9xAIxai-...grok-code-fast-1最新的专注于编码的模型(2025年8月)
10Mistral[a-f0-9]{64}pixtral-large最先进的模型(124B参数)

客户端特定设置

Cursor

  1. 打开Cursor设置:

    • 转到文件首选项Cursor设置
    • 导航到MCP标签
    • 点击+ 添加以添加一个新的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"
      }
    }
    

    📝 配置选项:

Claude Code

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

    # 首先设置环境变量(可选模型覆盖)
    export LLM_API_KEY="your_api_key_here"
    export LLM_MODEL_NAME="claude-3-5-haiku"  # 可选:更快/更便宜的模型
    
    # 添加MCP服务器
    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:对于Claude Code是必需的(MCP采样有限)

其他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采样(首选)+ 大语言模型API密钥备用

主要模式:MCP采样

  • 所有判断都使用MCP采样能力执行
  • 不需要配置或支付外部大语言模型API服务
  • 直接与您的兼容MCP客户端的现有AI模型一起工作
  • 目前由以下支持: GitHub Copilot + VS Code

备用模式:大语言模型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安装依赖
uv sync --all-extras --dev

# 安装pre-commit钩子
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)有何不同?