Skip to main content
Glama
SiddheshDongare

FastMCP GitHub Automation Server

GIT-Pilot

Python 版本执照 GitHub

GIT-Pilot 是一款功能强大的 GitHub 自动化和管理工具,为 GitHub 操作提供了全面的 API 封装。它通过基于 FastMCP 的服务器简化了 GitHub 交互,让您能够轻松管理仓库、拉取请求、问题等。

🌟 功能

🔐 身份验证和安全

  • 使用 Fernet 加密来保护令牌管理

  • 令牌过期和自动清理

  • 速率限制处理和自动重试

  • 可配置的身份验证超时

📦 仓库管理

  • 创建和管理存储库

  • 处理分支和提交

  • 文件操作(创建、更新、删除)

  • 存储库搜索和过滤

  • 提交比较和历史记录

🔄 拉取请求操作

  • 创建和管理拉取请求

  • 合并策略(合并、压缩、变基)

  • 状态检查验证

  • 冲突检测与处理

  • 公关支持草案

📝 问题管理

  • 创建和更新问题

  • 标签管理

  • 受让人处理

  • 评论管理

  • 问题搜索和过滤

🛠 技术特点

  • 线程安全操作

  • 资源管理

  • 全面的错误处理

  • 详细日志记录

  • 类型安全

  • 配置管理

  • FastMCP 服务器集成

Related MCP server: GitHub MCP Server Plus

🚀 入门

先决条件

  • Python 3.12 或更高版本

  • GitHub 帐户

  • GitHub 个人访问令牌

  • 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 桌面集成

  1. 启动 GIT-Pilot 服务器:

uv run main.py
  1. 下载并安装Claude Desktop

  2. 配置Claude桌面:

    • 打开 Claude 桌面

    • 转到File > Settings > Developer > Edit Config

    • 添加以下配置:

{
    "mcpServers": {
        "GIT-Pilot": {
            "command": "uv",
            "args": [
                "--directory",
                "path\\to\\repo",
                "run",
                "main.py"
            ]
        }
    }
}
  1. 重启Claude桌面

  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. 分叉存储库

  2. 创建功能分支

  3. 提交你的更改

  4. 推送到分支

  5. 创建拉取请求

📝 许可证

该项目根据 GNU 通用公共许可证 v3.0 获得许可 - 有关详细信息,请参阅LICENSE文件。

🙏 致谢


由 GIT-Pilot 团队倾情打造

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SiddheshDongare/GIT-Pilot'

If you have feedback or need assistance with the MCP directory API, please join our Discord server