M

MCP码计划

@msnidal/yellhorn-mcp
0 Stars 345 次浏览 msnidal 更新于 2026-08-23

一种将Gemini 2.5 Pro与Claude Code连接起来的MCP服务器,使用户能够根据其代码库生成详细的实施计划,并接收关于代码更改的反馈。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "yellhorn-mcp": {
      "args": [
        "--model",
        "o3"
      ],
      "command": "yellhorn-mcp",
      "env": {
        "YELLHORN_MCP_SEARCH": "on"
      },
      "type": "stdio"
    }
  }
}

该服务需要配置环境变量:GEMINI_API_KEY、REPO_PATH、YELLHORN_MCP_MODEL

服务介绍

Yellhorn MCP

Yellhorn Logo

一个 Model Context Protocol (MCP) 服务器,它将 Gemini 2.5 Pro 的功能暴露给 Claude Code 以完成软件开发任务。

功能

  • 生成工作计划:基于您的代码库创建带有详细实现计划的 GitHub 问题,标题和详细描述可自定义
  • 隔离的开发环境:创建 Git 工作树和关联分支,以便于流线化、隔离的开发工作流程(可以与工作计划生成分开进行)
  • 审查代码差异:根据原始工作计划评估拉取请求,并提供详细的反馈
  • 无缝 GitHub 集成:在 GitHub UI 中自动创建带标签的问题并正确链接分支,在 PR 评论中发布评审意见并引用原始问题,处理异步处理
  • 上下文控制:使用 .yellhornignore 文件从 AI 上下文中排除特定文件和目录,类似于 .gitignore
  • MCP 资源:将工作计划作为标准 MCP 资源公开,便于列出和检索

安装

# Install from PyPI
pip install yellhorn-mcp

# Install from source
git clone https://github.com/msnidal/yellhorn-mcp.git
cd yellhorn-mcp
pip install -e .

配置

服务器需要以下环境变量:

  • GEMINI_API_KEY:您的 Gemini API 密钥(必需)
  • REPO_PATH:您的仓库路径(默认为当前目录)
  • YELLHORN_MCP_MODEL:要使用的 Gemini 模型(默认为 "gemini-2.5-pro-exp-03-25")

服务器还需要安装并认证 GitHub CLI (gh)。

使用

运行服务器

# As a standalone server
yellhorn-mcp --repo-path /path/to/repo --host 127.0.0.1 --port 8000

# Using the MCP CLI
mcp dev yellhorn_mcp.server

# Install as a permanent MCP server for Claude Desktop
mcp install yellhorn_mcp.server

# Set environment variables during installation
mcp install yellhorn_mcp.server -v GEMINI_API_KEY=your_key_here -v REPO_PATH=/path/to/repo

与 Claude Code 集成

当与 Claude Code 一起工作时,您可以通过以下方式使用 Yellhorn MCP 工具:

  1. 开始项目任务:

    请生成一个工作计划,标题为"[Your Title]",详细描述为"[Your detailed requirements]"
    
  2. 为工作计划创建一个工作树(可选):

    请为问题#123创建一个工作树
    
  3. 导航到已创建的工作树目录:

    cd [worktree_path]  # 路径在响应中返回
    
  4. 如有需要,查看工作计划:

    # 选项 1:从工作树目录(自动检测问题编号)
    # 在工作树目录中时
    请获取此工作树的当前工作计划
    
    # 选项 2:从主仓库(需要明确的问题编号)
    # 不需要在工作树目录中
    请获取问题#123的工作计划
    
  5. 进行更改,创建 PR 并请求审查:

    # 首先使用您喜欢的方法(Git CLI、GitHub CLI 或 Web UI)创建 PR
    git add .
    git commit -m "实现功能"
    git push origin HEAD
    gh pr create --title "[PR 标题]" --body "[PR 描述]"
    
    # 选项 1:从工作树目录(自动检测问题编号)
    # 在工作树目录中时,请Claude进行审查
    请针对原始工作计划触发对 PR "[PR URL]" 的审查
    
    # 选项 2:从主仓库(需要明确的问题编号)
    # 不需要在工作树目录中
    请针对问题#123中的工作计划触发对 PR "[PR URL]" 的审查
    

工具

generate_workplan

根据标题和详细描述创建一个包含详细工作计划的 GitHub 问题。

输入:

  • title: GitHub 问题的标题(将用作问题标题和头部)
  • detailed_description: 工作计划的详细描述

输出:

  • 包含以下内容的 JSON 字符串:
    • issue_url: 创建的 GitHub 问题的 URL
    • issue_number: GitHub 问题编号

create_worktree

为现有工作计划问题创建一个具有关联分支的 Git 工作树,以进行隔离开发。

输入:

  • issue_number: 工作计划的 GitHub 问题编号

输出:

  • 包含以下内容的 JSON 字符串:
    • worktree_path: 创建的 Git 工作树目录路径
    • branch_name: 为工作树创建的分支名称
    • issue_url: 关联的 GitHub 问题 URL

get_workplan

检索与工作计划相关的内容(GitHub 问题正文)。可以从工作树(自动检测问题)或主仓库(需要明确的问题编号)运行。

输入:

  • issue_number: 可选的工作计划问题编号。如果在 Yellhorn 工作树之外运行,则需要提供。

输出:

  • 作为字符串的工作计划问题内容

review_workplan

针对其原始工作计划问题异步触发 Pull Request 的代码审查。可以从工作树(自动检测问题)或主仓库(需要明确的问题编号)运行。

输入:

  • pr_url: 要审查的 GitHub Pull Request 的 URL
  • issue_number: 工作计划的问题编号(可选)。如果在 Yellhorn 工作树之外运行,则为必填项。

输出

  • 一条确认消息,表示审查任务已启动

资源访问

Yellhorn MCP 还实现了标准的 MCP 资源 API,以提供对工作计划的访问:

  • list-resources:列出所有工作计划(具有 yellhorn-mcp 标签的 GitHub 问题)
  • get-resource:通过问题编号检索特定工作计划的内容

这些可以通过标准的 MCP CLI 命令访问:

# List all workplans
mcp list-resources yellhorn-mcp

# Get a specific workplan by issue number
mcp get-resource yellhorn-mcp 123

开发

# Install development dependencies
pip install -e ".[dev]"

# Run tests
pytest

CI/CD

该项目使用 GitHub Actions 进行持续集成和部署:

  • 测试:在拉取请求和推送到主分支时自动运行

    • 使用 flake8 进行代码检查
    • 使用 black 进行格式检查
    • 使用 pytest 进行测试
  • 发布:当推送版本标签时自动发布到 PyPI

    • 标签必须与 pyproject.toml 中的版本匹配(例如 v0.2.2)
    • 需要将 PyPI API 令牌作为 GitHub 仓库密钥存储(PYPI_API_TOKEN)

要发布新版本:

  1. 更新 pyproject.toml 中的版本
  2. 提交更改:git commit -am "Bump version to X.Y.Z"
  3. 给提交打标签:git tag vX.Y.Z
  4. 推送更改和标签:git push && git push --tags

有关更详细的说明,请参阅使用指南

许可证

MIT

相关 MCP 服务