项目简介

本项目 'github-mcp' 是一个基于 Model Context Protocol (MCP) 构建的服务器实现,旨在通过标准化的 MCP 协议,向大型语言模型(LLM)客户端提供访问 GitHub API 的能力。它将 GitHub 的各种功能封装成易于 LLM 调用的工具,使得 LLM 能够更方便地与 GitHub 进行交互,例如搜索仓库、创建和管理 Issue 和 Pull Request、管理仓库设置等。

主要功能点

  • 仓库管理工具
    • 搜索 GitHub 仓库 (search_repos)
    • 创建新的 GitHub 仓库 (create_repo)
    • 更新仓库设置 (update_repo_settings)
    • 管理仓库协作者 (manage_collaborators) (待实现)
    • 管理仓库工作流 (manage_workflows) (待实现)
  • Issue & Pull Request 工具
    • 搜索 Issue (search_issues)
    • 创建 Issue (create_issue)
    • 更新 Issue (update_issue)
    • 创建 Pull Request (create_pull_request)
    • 管理 Issue 标签 (manage_issue_labels) (待实现)

安装步骤

  1. 克隆仓库:

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

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

    pip install -r requirements.txt
  4. 创建 '.env' 文件:

    touch .env
  5. 配置 GitHub 凭据: 编辑 '.env' 文件,填入你的 GitHub Personal Access Token 和用户名:

    GITHUB_TOKEN=your_personal_access_token_here
    GITHUB_USERNAME=your_github_username

    注意: GitHub Personal Access Token 需要具备仓库操作的权限,具体权限要求请参考仓库 README.md 中的 "Environment Setup" 部分。

  6. 启动 MCP 服务器:

    python run.py

    服务器默认会在本地启动。

服务器配置

MCP 客户端需要以下 JSON 配置信息来连接到 'github-mcp' 服务器。请将以下配置填入 MCP 客户端的服务器配置中:

{
  "server name": "github-tools",
  "command": "python",
  "args": ["run.py"]
}

配置参数说明:

  • 'server name': 服务器名称,这里设置为 "github-tools",用于在客户端中标识该服务器。
  • 'command': 启动服务器的命令,这里使用 'python' 解释器。
  • 'args': 启动命令的参数,这里指定运行 'run.py' 文件。

MCP 客户端启动后,即可通过配置的服务器名称 "github-tools" 连接到此 GitHub 工具 MCP 服务器。

基本使用方法

  1. 连接服务器: 在 MCP 客户端中配置并连接到 "github-tools" 服务器。

  2. 发现工具: 客户端连接成功后,可以向服务器查询可用的工具列表。'github-mcp' 服务器将声明它提供的工具,例如 'search_repos', 'create_issue', 'update_repo_settings' 等。

  3. 调用工具: LLM 可以根据需要调用相应的工具,并根据工具的参数描述 (在 README.md 的 "Tools" 部分) 构造参数。例如,调用 'search_repos' 工具搜索仓库,需要提供 'query' (搜索关键词) 等参数。

  4. 获取结果: 服务器执行工具后,会将结果以 JSON-RPC 响应的形式返回给客户端,LLM 可以解析这些结果并进行后续处理。

详细的工具参数和使用示例,请参考仓库的 README.md 文件。

信息

分类

开发者工具