使用说明

项目简介

GitHub MCP Server 是一个实现了 Model Context Protocol (MCP) 协议的服务器,它充当 LLM 客户端和 GitHub API 之间的桥梁。该服务器提供了一系列工具和资源,使 LLM 能够安全、可扩展地访问和操作 GitHub 的数据和功能,例如自动化 issue 和 pull request 管理、代码搜索、仓库内容访问等。

主要功能点

  • 资源 (Resources) 管理: 提供对 GitHub 仓库内容的标准化访问,支持通过资源 URI 模板获取仓库文件或目录的内容。
  • 工具 (Tools) 注册与执行: 注册了丰富的 GitHub API 工具,例如创建 issue、添加评论、合并 pull request、搜索仓库等,允许 LLM 客户端调用这些工具执行 GitHub 操作。
  • JSON-RPC 协议通信: 使用标准的 JSON-RPC 2.0 协议与 MCP 客户端进行通信,接收请求并返回响应。
  • Stdio 传输协议: 支持 Stdio 作为传输协议,方便集成到各种 LLM 应用和开发环境中。
  • 可扩展性与安全性: 提供安全、可扩展的上下文服务框架,支持 GitHub Enterprise Server,并允许通过环境变量或配置文件自定义工具描述。

安装步骤

  1. 准备 GitHub Personal Access Token (PAT): 访问 GitHub Personal Access Tokens 创建 PAT。根据你的 AI 工具的需求,授予 PAT 相应的 GitHub API 权限。
  2. 安装 Docker (可选): 推荐使用 Docker 运行 GitHub MCP Server。如果未安装 Docker,你需要安装 Go 并从源码构建。
  3. 使用 VS Code 一键安装 (推荐): 点击仓库 README.md 顶部的 "Install with Docker in VS Code" 或 "Install with Docker in VS Code Insiders" 按钮,按照提示操作即可完成安装。
  4. 手动配置 VS Code (可选): 在 VS Code 的 User Settings (JSON) 文件 ('settings.json') 中添加以下 JSON 配置块,或者在工作区目录的 '.vscode/mcp.json' 文件中添加(无需 'mcp' 键)。

服务器配置

以下是在 MCP 客户端 (例如 VS Code 或 Claude) 中配置 GitHub MCP Server 的 JSON 格式配置信息。请根据你的实际使用场景选择合适的配置方式。

VS Code 配置示例 ('settings.json' 或 '.vscode/mcp.json'):

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "github_token",
        "description": "GitHub Personal Access Token",
        "password": true
      }
    ],
    "servers": {
      "github": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-e",
          "GITHUB_PERSONAL_ACCESS_TOKEN",
          "ghcr.io/github/github-mcp-server"
        ],
        "env": {
          "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
        }
      }
    }
  }
}

Claude Desktop 配置示例:

{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"  // 请替换为你的 GitHub PAT
      }
    }
  }
}

配置参数说明:

  • 'server name': 服务器名称,例如 "github"。
  • 'command': 启动 MCP 服务器的命令,例如 "docker"。
  • 'args': 启动命令的参数列表。
    • '"run"': Docker 运行命令。
    • '"-i"': 保持 STDIN 打开。
    • '"--rm"': 容器退出后自动删除。
    • '"-e"': 设置环境变量。
    • '"GITHUB_PERSONAL_ACCESS_TOKEN"': 环境变量名,用于传递 GitHub PAT。
    • '"ghcr.io/github/github-mcp-server"': Docker 镜像名称。
  • 'env': 环境变量配置。
    • '"GITHUB_PERSONAL_ACCESS_TOKEN"': 环境变量值,'${input:github_token}' 表示引用用户输入的 'github_token' 变量 (VS Code 配置)。在 Claude Desktop 配置中,请直接替换 '<YOUR_TOKEN>' 为你的 GitHub PAT。

基本使用方法

配置完成后,在支持 MCP 协议的 LLM 客户端中 (例如 VS Code Agent Mode, Claude Desktop),即可通过自然语言指令调用 GitHub MCP Server 提供的工具和资源。

例如,在 VS Code Agent Mode 中:

  1. 打开 VS Code Command Palette ('Ctrl+Shift+P'),输入 "Agent: Start Agent Chat View" 并运行。

  2. 在 Agent Chat View 中,你可以直接提问,例如:

    • '"List all open issues in the repository github/github-mcp-server"'
    • '"Create a new issue in owner/repo with title 'Bug report' and body 'Detailed bug description'"'
    • '"Get content of file README.md in repo owner/repo"'

LLM 客户端会自动识别你的意图,并调用 GitHub MCP Server 提供的相应工具或资源来完成操作。

源码构建和运行 (不使用 Docker):

  1. 确保已安装 Go 语言环境。

  2. 克隆仓库到本地:'git clone https://github.com/github/github-mcp-server.git'

  3. 进入 'cmd/github-mcp-server' 目录:'cd github-mcp-server/cmd/github-mcp-server'

  4. 构建服务器:'go build'

  5. 运行服务器:'GITHUB_PERSONAL_ACCESS_TOKEN=<YOUR_TOKEN> ./github-mcp-server stdio' (请替换 '<YOUR_TOKEN>' 为你的 GitHub PAT)

    然后在 MCP 客户端中配置服务器启动命令为:'github-mcp-server stdio' (或其他根据实际构建路径的命令)。

信息

分类

开发者工具