GitHub贡献自动化工具

GitPilot MCP是一款基于Model Context Protocol (MCP)的自主GitHub贡献代理,能够自动化处理从问题分析、代码更改到拉取请求、冲突解决和审查更新的全流程开源工作。

  • by Divyanshu-hash
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 Divyanshu-hash/GitPilot-MCP

使用说明

GitPilot MCP

一个自主的MCP驱动的代理,可以端到端自动化GitHub贡献,从问题分析和代码更改到拉取请求、冲突解决和审查更新。


🚀 概述

GitPilot MCP是一个 自主GitHub贡献代理 使用 模型上下文协议(MCP). 它帮助开发人员和贡献者自动化完整的开源工作流程:

  • 分叉存储库
  • 分析问题
  • 进行代码更改
  • 运行测试
  • 创建pull请求
  • 与上游变更同步
  • 处理合并冲突
  • 根据维护人员反馈更新PR

该代理旨在 最小、安全、可扩展,没有过度工程。


✨ 主要特点

  • 🔁 分叉和克隆GitHub存储库
  • 🌿 创建和管理要素分支
  • 🔄 合并新PR时与上游同步分叉
  • 🧠 使用RAG进行语义代码理解
  • ✍️ 生成最小、干净的git差异
  • 🧪 运行测试并自动重试修复
  • 📦 提交并推动更改
  • 🔀 以编程方式创建pull请求
  • 🛠️ 审查反馈后更新现有PR
  • ⚠️ 在PR更新之前检测合并冲突

🧠 建筑(高级)

Issue → Code Context (RAG) → Patch → Tests → Commit → PR
              ↑
      Sync / Review Feedback

系统如下 真实世界的开源贡献实践.


📂 项目结构

mcp-github/
│
├── main.py        # MCP server & tools
├── rag.py         # RAG indexing and search
├── config.py      # GitHub token & workspace
├── .rag/          # Vector store (local)
└── README.md

🧩 安装和设置

确保已安装以下内容:

  • Python 3.10+
  • Git
  • 克劳德桌面(最新版本)
  • Ollama(用于嵌入)

第一步:安装uv

uv用于依赖管理和隔离执行。

pip install uv

步骤2:克隆存储库

git clone https://github.com/<your-username>/GitPilot-MCP.git
cd GitPilot-MCP

步骤3:初始化项目(uv)

初始化项目环境:

uv init

步骤4:安装依赖项

添加所有必需的依赖关系:

uv add fastmcp gitpython pygithub python-dotenv numpy faiss-cpu ollama

步骤5:用于MCP工具测试

uv run fastmcp dev main.py

⚙️ MCP服务器配置

使用以下配置通过在本地运行MCP服务器 紫外线+fastmcp 在 克劳德桌面:

将此配置粘贴到claudee桌面配置文件中。

{
  "mcpServers": {
    "GitPilot-MCP": {
      "command": "<PATH_TO_PYTHON>/Scripts/uv.exe",
      "args": [
        "run",
        "--project",
        "<PATH_TO_PROJECT_ROOT>",
        "--directory",
        "<PATH_TO_PROJECT_ROOT>",
        "fastmcp",
        "run",
        "main.py"
      ],
      "transport": "stdio"
    }
  }
}

🔐 配置

创建 config.py 文件:

GITHUB_TOKEN = "your_github_personal_access_token"
WORKSPACE = "./workspace"

⚠️ 令牌必须具有分叉存储库和创建拉取请求的权限。


🛠️ 可用的MCP工具

代理暴露的一些重要工具:

  • fork_repo
  • clone_repo
  • create_branch
  • sync_with_upstream
  • index_repo
  • get_repo_context
  • apply_patch
  • run_tests
  • retry_fix_with_tests
  • commit_and_push
  • create_pull_request
  • check_for_conflicts
  • update_pr_after_feedback

每个工具都是 单一责任和可组合.


🧪 测试工作流程

  1. 应用生成的补丁
  2. 运行测试(pytest -q 默认情况下)
  3. 如果测试失败,则自动重试修复
  4. 测试通过后立即停止

🔄 处理维护人员反馈

当维护人员请求更改时:

  • 生成新补丁
  • 将其应用于同一分支
  • 承诺与推动

现有的PR会自动更新。 不会创建新的PR。


🧩 设计原则

  • ✅ 最小差异
  • ✅ 仅在必要时提供简短的内联注释
  • ✅ 没有硬刷新或破坏性的git操作
  • ✅ 没有无声的失败
  • ✅ 可扩展以供未来改进

🚧 局限性

  • 存储库索引可能仅限于非常大的存储库
  • 冲突解决是辅助的,而不是完全自动的
  • 专为本地/受控环境设计(稍后可以添加远程硬化)

🔮 未来改进

  • 范围化存储库索引
  • PR评论解析
  • CI状态轮询
  • 刷新令牌支持
  • 远程多用户MCP部署

📜 许可证

MIT许可证(或根据您的选择)


🙌 致谢

构建使用:

  • 快速MCP
  • GitPython
  • PyGitHub
  • Ollama(用于嵌入)
  • Qdrant/FAISS(矢量搜索)

👨‍💻 作者

迪维扬舒·吉里