mcpField
G
GIT-Pilot

GIT-Pilot

本地服务
github.com/SiddheshDongare版本控制471 周前更新

关于 GIT-Pilot

GIT-Pilot 是基于 FastMCP 的 GitHub 管理服务,面向需要通过 API 操作仓库、拉取请求和议题的开发者。它涵盖文件、分支、提交及 PR 流程,并包含令牌加密、过期清理和限流重试机制。

主要功能

  1. 01仓库创建与管理
  2. 02分支、提交和文件操作
  3. 03拉取请求创建、审查与合并
  4. 04议题、标签和评论管理
  5. 05Fernet 令牌加密与过期清理
  6. 06限流处理与自动重试

适用场景

  1. 01通过 Agent 创建和维护 GitHub 仓库
  2. 02处理拉取请求状态检查与合并
  3. 03搜索议题并管理标签、负责人和评论

MCP 相关

GIT-Pilot 使用 FastMCP 实现为 MCP 服务,向 MCP 客户端提供 GitHub 仓库、拉取请求和议题操作工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MseeP.ai 安全评估徽章

GIT-Pilot

GIT-Pilot 徽标

Python 版本 许可证 GitHub

⭐️ 如果你觉得这个项目有帮助,请为它点个星!⭐️

GIT-Pilot 是一款强大的 GitHub 自动化与管理工具,可为 GitHub 操作提供全面的 API 封装。它通过基于 FastMCP 的服务简化与 GitHub 的交互,便于管理代码仓库、拉取请求、议题等。

🌟 功能

🔐 身份验证与安全
  • 使用 Fernet 加密进行安全的令牌管理
  • 令牌过期和自动清理
  • 速率限制处理和自动重试
  • 可配置的身份验证超时
📦 代码仓库管理
  • 创建和管理代码仓库
  • 处理分支和提交
  • 文件操作(创建、更新、删除)
  • 代码仓库搜索和筛选
  • 提交比较和历史记录
🔄 拉取请求操作
  • 创建和管理拉取请求
  • 合并策略(合并、压缩、变基)
  • 状态检查验证
  • 冲突检测和处理
  • 支持草稿 PR
📝 议题管理
  • 创建和更新议题
  • 标签管理
  • 受理人管理
  • 评论管理
  • 议题搜索和筛选
🛠 技术特性
  • 线程安全操作
  • 资源管理
  • 全面的错误处理
  • 详细日志记录
  • 类型安全
  • 配置管理
  • FastMCP 服务集成

🚀 开始使用

先决条件
  • Python 3.12 或更高版本
  • GitHub 账户
  • GitHub Personal Access Token
  • FastMCP CLI(可选)
安装
  1. 克隆代码仓库:
git clone https://github.com/yourusername/GIT-Pilot.git
cd GIT-Pilot
  1. 安装 uv(如果尚未安装):
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. 创建并激活虚拟环境:
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. 使用 uv 安装软件包:
uv pip install -e .
  1. 设置环境变量: 在项目根目录中创建一个 .env 文件:
GITHUB_TOKEN=your_github_token_here
基本用法
设置 Claude Desktop 集成
  1. 启动 GIT-Pilot 服务:
uv run main.py
  1. 下载并安装 Claude Desktop

  2. 配置 Claude Desktop:

    • 打开 Claude Desktop
    • 前往 File > Settings > Developer > Edit Config
    • 添加以下配置:
{
    "mcpServers": {
        "GIT-Pilot": {
            "command": "uv",
            "args": [
                "--directory",
                "path\\to\\repo",
                "run",
                "main.py"
            ]
        }
    }
}
  1. 重启 Claude Desktop
  2. 在聊天窗口中找到锤子图标——这表示 MCP 服务已准备就绪
API 示例
# Create a repository
await call_tool("create_repository",
    name="my-repo",
    description="My awesome repository",
    private=True,
    has_issues=True,
    has_wiki=True,
    has_projects=True,
    auto_init=True
)

# Create a pull request
await call_tool("create_pull_request",
    repo_path="owner/repo",
    title="New feature",
    head="feature-branch",
    base="main",
    body="Description of changes",
    draft=False
)

# List commits with filtering
await call_tool("list_commits",
    repo_path="owner/repo",
    branch="main",
    author="username",
    since="2024-01-01",
    until="2024-04-21",
    max_results=30
)

🔧 配置

可通过 Config 类配置此服务:

@dataclass
class Config:
    TOKEN_TTL_HOURS: int = 24
    MAX_STORED_TOKENS: int = 1000
    CLEANUP_INTERVAL_SECONDS: int = 3600
    MAX_RETRIES: int = 3
    RETRY_DELAY_SECONDS: int = 5
    MAX_RESULTS_PER_PAGE: int = 100
    ENCRYPTION_KEY: bytes = Fernet.generate_key()

🛡 安全

  • 使用 Fernet 对静态令牌进行加密
  • 自动令牌过期和清理
  • 通过重试机制防范速率限制
  • 输入验证
  • 全面的错误处理
  • 安全清理令牌

🔄 速率限制

此服务内置了速率限制处理:

  • 触发速率限制时自动重试
  • 可配置重试次数
  • 重试间隔延迟
  • 速率限制状态日志记录
  • 指数退避

🧪 错误处理

全面处理以下错误:

  • 身份验证失败
  • API 错误
  • 速率限制
  • 无效输入
  • 资源冲突
  • 网络问题
  • 令牌验证
  • 文件操作

📈 日志记录

详细记录以下信息:

  • 时间戳
  • 日志级别
  • 函数名称
  • 行号
  • 错误详情
  • 堆栈跟踪
  • 速率限制信息
  • 令牌操作

🤝 参与贡献

欢迎贡献!请按以下步骤操作:

  1. Fork 此代码仓库
  2. 创建功能分支
  3. 提交更改
  4. 推送到分支
  5. 创建 Pull Request

📝 许可证

本项目采用 GNU General Public License v3.0 许可,详情请参阅 LICENSE 文件。

🙏 致谢

  • PyGithub:提供 GitHub API 封装
  • FastMCP:提供服务端框架
  • Fernet:用于安全地加密令牌

由 GIT-Pilot 团队倾心打造 ❤️

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。