# github
## 基本信息
- Slug: `github-github-mcp-server`
- Source: modelscope
- Publisher: @github/github-mcp-server
- Categories: version-control / developer-tools
- Hosted: No
- License: MIT License
- Source URL: https://www.modelscope.cn/mcp/servers/@github/github-mcp-server
## 简介
暂无描述。
## MCP Server 详情

# GitHub MCP 服务器

GitHub MCP 服务器是一个 [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction) 服务器，它提供了与 GitHub API 的无缝集成，使开发者和工具能够实现高级自动化和交互功能。

[![使用 Docker 在 VS Code 中安装](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=github&inputs=%5B%7B%22id%22%3A%22github_token%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22GitHub%20Personal%20Access%20Token%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22GITHUB_PERSONAL_ACCESS_TOKEN%22%2C%22ghcr.io%2Fgithub%2Fgithub-mcp-server%22%5D%2C%22env%22%3A%7B%22GITHUB_PERSONAL_ACCESS_TOKEN%22%3A%22%24%7Binput%3Agithub_token%7D%22%7D%7D) [![使用 Docker 在 VS Code Insiders 中安装](https://img.shields.io/badge/VS_Code_Insiders-Install_Server-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=github&inputs=%5B%7B%22id%22%3A%22github_token%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22GitHub%20Personal%20Access%20Token%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22GITHUB_PERSONAL_ACCESS_TOKEN%22%2C%22ghcr.io%2Fgithub%2Fgithub-mcp-server%22%5D%2C%22env%22%3A%7B%22GITHUB_PERSONAL_ACCESS_TOKEN%22%3A%22%24%7Binput%3Agithub_token%7D%22%7D%7D&quality=insiders)

## 使用场景

- 自动化 GitHub 工作流和流程。
- 从 GitHub 仓库中提取和分析数据。
- 构建与 GitHub 生态系统交互的 AI 驱动工具和应用程序。

## 前提条件

1. 要在容器中运行服务器，您需要安装 [Docker](https://www.docker.com/)。
2. 安装 Docker 后，还需要确保 Docker 正在运行。镜像是公开的；如果拉取时遇到错误，可能是您的令牌已过期，需要执行 `docker logout ghcr.io`。
3. 最后，您需要 [创建一个 GitHub 个人访问令牌](https://github.com/settings/personal-access-tokens/new)。MCP 服务器可以使用许多 GitHub API，因此请启用您认为适合授予 AI 工具的权限（要了解有关访问令牌的更多信息，请参阅 [文档](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens))。

## 安装

### 在 VS Code 中使用

为了快速安装，请使用此 README 顶部的一键安装按钮之一。完成该流程后，切换代理模式（位于 Copilot Chat 文本输入旁边），服务器将启动。

对于手动安装，请将以下 JSON 块添加到 VS Code 的用户设置（JSON）文件中。您可以通过按 `Ctrl + Shift + P` 并键入 `Preferences: Open User Settings (JSON)` 来完成此操作。

json
{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "github_token",
        "description": "GitHub 个人访问令牌",
        "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}"
        }
      }
    }
  }
}


可选地，您可以将类似的示例（即没有 mcp 键）添加到工作区中的 `.vscode/mcp.json` 文件中。这将允许您与他人共享配置。

json
{
  "inputs": [
    {
      "type": "promptString",
      "id": "github_token",
      "description": "GitHub 个人访问令牌",
      "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}"
      }
    }
  }
}有关在 VS Code 中使用 MCP 服务器工具的更多信息，请参阅 [代理模式文档](https://code.visualstudio.com/docs/copilot/chat/mcp-servers)。

### 与 Claude Desktop 一起使用

json
{
  "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>"
      }
    }
  }
}


### 从源代码构建

如果您没有 Docker，可以使用 `go build` 在 `cmd/github-mcp-server` 目录中构建二进制文件，并使用 `github-mcp-server stdio` 命令以及设置为您的令牌的 `GITHUB_PERSONAL_ACCESS_TOKEN` 环境变量。要指定构建输出位置，请使用 `-o` 标志。您应该配置服务器以使用构建的可执行文件作为其 `command`。例如：

JSON
{
  "mcp": {
    "servers": {
      "github": {
        "command": "/path/to/github-mcp-server",
        "args": ["stdio"],
        "env": {
          "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
        }
      }
    }
  }
}


## 工具配置

GitHub MCP 服务器支持通过 `--toolsets` 标志启用或禁用特定功能组。这使您可以控制哪些 GitHub API 功能对您的 AI 工具可用。仅启用所需的功能集可以帮助 LLM 进行工具选择并减少上下文大小。

### 可用工具集

以下工具集是可用的（默认情况下全部启用）：

| 工具集                 | 描述                                                   |
| ----------------------- | ------------------------------------------------------------- |
| `repos`                 | 仓库相关工具（文件操作、分支、提交）                     |
| `issues`                | 问题相关工具（创建、读取、更新、评论）                   |
| `users`                 | 与 GitHub 用户相关的所有内容                             |
| `pull_requests`         | 拉取请求操作（创建、合并、审查）                         |
| `code_security`         | 代码扫描警报和安全特性                                   |
| `experiments`           | 实验性功能（不被视为稳定）                               |

#### 指定工具集

要指定希望 LLM 可用的工具集，可以通过两种方式传递允许列表：

1. **使用命令行参数**：

   bash
   github-mcp-server --toolsets repos,issues,pull_requests,code_security
   

2. **使用环境变量**：
   bash
   GITHUB_TOOLSETS="repos,issues,pull_requests,code_security" ./github-mcp-server
   

如果同时提供了两者，则环境变量 `GITHUB_TOOLSETS` 优先于命令行参数。

### 使用 Docker 时的工具集

当使用 Docker 时，可以将工具集作为环境变量传递：

bash
docker run -i --rm 
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> 
  -e GITHUB_TOOLSETS="repos,issues,pull_requests,code_security,experiments" 
  ghcr.io/github/github-mcp-server


### “all” 工具集

特殊工具集 `all` 可用于启用所有可用工具集，而不管其他任何配置如何：

bash
./github-mcp-server --toolsets all


或者使用环境变量：

bash
GITHUB_TOOLSETS="all" ./github-mcp-server


## 动态工具发现

**注意**：此功能目前处于测试阶段，在某些环境中可能不可用。请进行测试并在遇到任何问题时告知我们。

与其一开始就启用所有工具，您可以开启动态工具集发现。动态工具集允许 MCP 主机根据用户提示列出并启用工具集。这有助于避免模型因可用工具数量过多而感到困惑的情况。

### 使用动态工具发现

当使用二进制文件时，可以传递 `--dynamic-toolsets` 标志。

bash
./github-mcp-server --dynamic-toolsets当使用 Docker …

