GitHub API工具

一个通过Claude Desktop与GitHub API交互的多功能工具,用于搜索、创建和管理GitHub仓库、问题、拉取请求等工作流程。

  • by NZenitram
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 nzenitram/github-mcp

使用说明

GitHub MCP工具

一个多克劳德程序(MCP),用于通过克劳德桌面与GitHub API进行交互。

特性

  • 搜索GitHub存储库和问题
  • 创建、更新和管理GitHub问题和拉取请求
  • 管理存储库设置和配置
  • 处理存储库工作流和操作
  • 搜索用户和组织
  • 管理存储库协作者和团队

安装

  1. 克隆此存储库:

    git clone https://github.com/yourusername/github-mcp.git
    cd github-mcp
    
  2. 创建并激活虚拟环境:

    # On macOS/Linux
    python -m venv venv
    source venv/bin/activate
    
    # On Windows
    python -m venv venv
    .\venv\Scripts\activate
    
  3. 安装依赖项:

    pip install -r requirements.txt
    
  4. 创建一个 .env 项目根目录中的文件:

    touch .env
    
  5. 将您的GitHub凭据添加到 .env 文件:

    GITHUB_TOKEN=your_personal_access_token_here
    GITHUB_USERNAME=your_github_username
    
  6. 测试安装:

    # Run all tests
    python -m pytest
    
    # Run a specific test file
    python -m pytest tests/test_search_repos.py
    
  7. 启动MCP服务器:

    python run.py
    

环境设置

GitHub个人访问令牌

你需要一个细粒度的个人访问令牌来在GitHub上进行身份验证:

  1. 登录您的GitHub帐户
  2. 转到“设置”>“开发人员设置”>个人访问令牌>细粒度令牌
  3. 点击“生成新令牌”
  4. 配置令牌:
    • 令牌名称:“Claude桌面集成”
    • 描述:“克劳德桌面GitHub集成令牌”
    • 到期日:选择合适的到期日
    • 存储库访问:选择“所有存储库”或特定存储库
    • 权限:
      • 存储库权限:
        • 动作:读写
        • 内容:读写
        • 问题:读写
        • 拉取请求:读和写
        • 存储库挂钩:读写
        • 存储库设置:读写
      • 组织权限(如果使用组织存储库):
        • 成员:只读
        • 团队:只读
  5. 点击“生成令牌”并安全保存生成的令牌

工具

搜索存储库

使用各种条件搜索GitHub存储库。

参数:

  • query:搜索查询字符串
  • sort:排序字段(星号、叉号、已更新等)
  • 顺序:排序顺序(asc或desc)
  • max_results:返回的最大结果数(默认值:10)

创建问题

在指定的存储库中创建一个新的GitHub问题。

参数:

  • 所有者:存储库所有者
  • repo:存储库名称
  • title:发行标题
  • 正文:问题描述
  • 标签:要应用的标签列表
  • assignes:受让人用户名列表

创建拉取请求

创建新的pull请求。

参数:

  • 所有者:存储库所有者
  • repo:存储库名称
  • 标题:PR标题
  • 正文:PR描述
  • head:源分支
  • base:目标分支
  • 草稿:是否创建为草稿PR

管理存储库设置

更新存储库设置和配置。

参数:

  • 所有者:存储库所有者
  • repo:存储库名称
  • 设置:要更新的设置字典

搜索问题

跨存储库搜索问题。

参数:

  • query:搜索查询字符串
  • state:问题状态(打开、关闭、全部)
  • sort:排序字段
  • 顺序:排序顺序
  • max_results:最大结果数

管理工作流

管理GitHub操作工作流。

参数:

  • 所有者:存储库所有者
  • repo:存储库名称
  • workflow_file:工作流文件路径
  • action:要执行的操作(启用、禁用、触发)

管理协作者

管理存储库协作者。

参数:

  • 所有者:存储库所有者
  • repo:存储库名称
  • 用户名:协作者用户名
  • 权限:权限级别(拉取、推送、管理、维护、分流)

示例用法

# Search for repositories
search_repos(query="python web framework", sort="stars", max_results=5)

# Create a new issue
create_issue(
    owner="username",
    repo="repository",
    title="Bug: Login not working",
    body="Users cannot log in using the login button",
    labels=["bug", "high-priority"]
)

# Create a pull request
create_pull_request(
    owner="username",
    repo="repository",
    title="Feature: Add user authentication",
    body="Implements JWT-based authentication",
    head="feature/auth",
    base="main"
)

# Search for issues
search_issues(query="is:open is:issue author:username", max_results=10)

# Manage repository settings
manage_repo_settings(
    owner="username",
    repo="repository",
    settings={
        "has_issues": True,
        "has_projects": True,
        "has_wiki": True
    }
)

发展

运行测试

# Run all tests
python -m pytest

# Run with coverage
python -m pytest --cov=src tests/

# Run specific test file
python -m pytest tests/test_search_repos.py

添加新工具

  1. 在中创建新文件 src/tools/
  2. 实现您的工具功能
  3. 在中注册该工具 src/main.py
  4. 在中添加测试 tests/
  5. 更新README.md中的文档

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 运行测试
  5. 提交拉取请求

许可证

MIT许可证