使用说明

这是一个基于Model Context Protocol (MCP) 的服务器,它允许您的AI助手(如支持MCP的LLM客户端)通过标准化的接口与GitHub仓库进行交互和管理。

项目简介

  • 将GitHub API功能封装成AI可调用的工具。
  • 支持仓库、问题、拉取请求、分支、提交、用户、标签、里程碑等管理。
  • 提供近90种工具,覆盖全面的GitHub工作流程。
  • 无需Docker,基于Node.js运行,配置简单。

主要功能点

  • 全面的仓库管理: 查看、搜索、获取仓库详情、浏览文件内容、管理协作者。
  • 高级问题管理: 创建、编辑、列出问题,支持图片上传、标签、负责人、锁定/解锁、评论管理。
  • 拉取请求管理: 列出PR,获取PR详情。
  • 分支与提交: 列出分支、创建分支、查看提交历史、获取提交详情、比较提交。
  • 用户与协作: 获取用户信息、列出仓库协作者。
  • 标签与里程碑: 管理仓库的标签和里程碑。
  • 文件内容操作: 创建、更新、上传、删除仓库文件。
  • 安全与访问: 管理部署密钥、Webhook、Actions Secrets(部分功能待完善)。
  • 搜索功能: 搜索仓库、问题、提交、代码、用户、话题。
  • 组织管理: 列出组织仓库、成员、团队,获取组织信息。

安装步骤

  1. 安装 Node.js: 确保您的系统安装了 Node.js 18 或更高版本。您可以从 Node.js官网 下载安装。

  2. 获取 GitHub Personal Access Token (PAT):

    • 前往 GitHub 网站。
    • 进入 Settings → Developer settings → Personal access tokens → Tokens (classic) 或 Fine-grained tokens。
    • 生成一个新令牌。为了使用本服务器的全部功能,建议授予 'repo' (Full control of private repositories) 权限。如果您只操作公开仓库,'public_repo' 权限可能已足够。其他有用权限包括 'user:read' (读取用户信息) 和 'read:org' (读取组织信息)。
    • 重要: 妥善保管您的令牌,不要泄露。您需要在MCP客户端配置中提供此令牌。
  3. 配置 MCP 客户端启动服务器: 您的MCP客户端(例如 Claude Desktop, Roo Code 等)需要知道如何启动和连接到这个GitHub MCP服务器。这通常通过编辑客户端的配置文件来完成。您需要在配置文件中添加一个MCP服务器条目,指定服务器的启动命令和必要的环境变量(主要是您的GitHub令牌)。

    以下是配置时需要提供的关键信息,请根据您的客户端配置格式进行调整(这部分信息通常是JSON结构,但此处仅为说明):

    • 服务器名称 (Server Name): 给服务器起一个易于识别的名称,例如 'github-manager'。
    • 启动命令 (Command): 指定用于启动服务器的可执行程序。
      • 如果您使用 npx 方式运行 (无需本地克隆安装,推荐简单场景):命令是 'npx'。
      • 如果您本地克隆安装后运行:命令是 'node'。
    • 命令参数 (Args): 指定传递给启动命令的参数。
      • 对于 npx 方式:参数是 '["-y", "github-repos-manager-mcp"]'。
      • 对于本地安装方式:参数是 '["/您的服务器代码完整路径/github-repos-manager-mcp/server.cjs"]'。请务必将 '/您的服务器代码完整路径/' 替换为实际路径。
    • 环境变量 (Env): 在这里设置MCP服务器需要的环境变量。
      • 'GH_TOKEN' (必须): 将您的GitHub Personal Access Token 设置到这个环境变量中。请务必替换占位符。
      • 'GH_DEFAULT_OWNER' 和 'GH_DEFAULT_REPO' (可选): 可以设置默认操作的仓库所有者和名称,以简化命令(例如 '"GH_DEFAULT_OWNER": "octocat", "GH_DEFAULT_REPO": "Hello-World"')。
      • 'GH_ALLOWED_REPOS' (可选): 限制服务器只能访问特定仓库或所有者下的仓库(例如 '"GH_ALLOWED_REPOS": "owner1/repo1,owner2/repo2,owner3"')。
      • 'GH_ALLOWED_TOOLS' / 'GH_DISABLED_TOOLS' (可选): 限制AI可以调用的工具列表。

    例如 (概念说明,非实际配置文件格式,请参考您的客户端文档):

    某个MCP客户端的配置结构可能包含一个服务器列表:
    mcpServers: {
      "一个您选择的服务器名称": {
        command: "这里是服务器启动命令 (例如: npx 或 node)",
        args: ["这里是传递给命令的参数 (例如: -y 或 /path/to/server.cjs)", "...其他参数"],
        env: {
          GH_TOKEN: "这里替换成您的实际GitHub Personal Access Token",
          GH_DEFAULT_OWNER: "您的默认用户名或组织名 (可选)",
          GH_DEFAULT_REPO: "您的默认仓库名 (可选)",
          // ... 其他可选环境变量
        }
      }
      // ... 其他MCP服务器配置
    }

基本使用方法

配置并启动MCP客户端后,当您向AI助手提出与GitHub相关的请求时,如果请求与本服务器提供的某个工具匹配,客户端会自动调用该工具。您可以像与AI聊天一样描述您想执行的GitHub操作。

示例对话:

  • “列出我的前10个最近更新的GitHub仓库。”
  • “在仓库 'octocat/Spoon-Knife' 里创建一个新的问题,标题是‘登录按钮失效’,内容是‘用户反馈在移动端无法点击登录按钮’,并加上‘bug’标签。”
  • “列出 'microsoft/vscode' 仓库中所有未关闭(open)的拉取请求。”
  • (如果设置了默认仓库)“列出当前仓库的所有分支。”
  • “获取用户 'github_username' 的资料。”

服务器会执行相应的GitHub API操作,并将结果返回给您的AI助手,由AI助手以易于理解的方式呈现给您。

信息

分类

开发者工具