1 项目简介

GitHub MCP Server

Model Context Protocol Server for GitHub

Go 1.24 MIT License 26.4k Stars

GitHub MCP Server 使 AI 工具能够直接与 GitHub 平台进行交互。它赋予 AI 代理、助手和聊天机器人读取代码库和代码文件、管理 Issue 和 PR、分析代码以及自动化工作流程的能力。

仓库管理

浏览代码、搜索文件、分析提交、理解项目结构

Issue & PR 自动化

创建、更新和管理 Issue 与 Pull Request

CI/CD 智能

监控 GitHub Actions 工作流程,分析构建信息

代码安全分析

审查安全发现、检查依赖警报

2 架构概述

技术栈

Go 1.24 MCP SDK go-github/v79 Cobra CLI Viper Docker

目录结构

github-mcp-server/
├── cmd/github-mcp-server/   # 主程序入口
├── docs/                     # 文档目录
│   └── installation-guides/  # IDE 安装指南
├── internal/                 # 内部实现
├── pkg/                      # 公共包
├── script/                   # 脚本工具
├── .github/                  # GitHub 工作流
├── Dockerfile                # Docker 构建文件
├── go.mod / go.sum          # Go 依赖管理
├── server.json              # 服务器配置
└── README.md                # 项目说明

3 核心功能

  • 浏览和查询代码
  • 搜索文件和内容
  • 分析提交历史
  • 理解项目结构
  • 获取分支和标签信息
  • 创建和更新 Issue
  • 搜索和过滤 Issue
  • 管理 Issue 标签
  • 分配和关闭 Issue
  • 添加评论
  • 创建 Pull Request
  • 查看 PR 差异和文件变更
  • 管理 PR 审查
  • 合并和关闭 PR
  • 添加 PR 评论
  • 查看工作流程运行状态
  • 分析构建失败原因
  • 触发工作流程
  • 查看运行日志
  • 代码扫描警报
  • Secret 扫描
  • Dependabot 警报
  • 安全公告

4 工具集

默认工具集

未指定配置时,服务器加载:context, issues, pull_requests, repos, users

工具集 说明
context 用户和 GitHub 上下文信息
repos 仓库操作
issues Issue 管理
pull_requests Pull Request 操作
git Git 分支操作
users 用户信息
organizations 组织管理
actions GitHub Actions 工作流
code_security 代码扫描和安全警报
secret_protection Secret 扫描保护
dependabot 依赖管理
discussions 讨论区
gists Gist 代码片段
projects GitHub Projects
labels 标签管理
notifications 通知管理
copilot Copilot 功能

5 获取 GitHub PAT

什么是 PAT?

Personal Access Token(个人访问令牌)是 GitHub 提供的一种身份验证方式,用于替代密码访问 GitHub API。MCP Server 需要 PAT 来代表你与 GitHub 交互。

1

登录 GitHub 并进入设置

点击右上角头像 → 选择 Settings

直接打开 GitHub Settings
2

进入开发者设置

在左侧菜单最底部,点击 Developer settings

3

选择 Personal Access Tokens

点击 Personal access tokens → 选择 Tokens (classic)

直接打开 Token 管理页面
4

生成新 Token

点击右上角 Generate new token → 选择 Generate new token (classic)

5

配置 Token

  • Note:输入描述性名称,如 github-mcp-server
  • Expiration:选择过期时间(推荐 90 天或自定义)
6

选择权限范围(Scopes)

根据需要勾选以下权限:

repo - 完整仓库访问(必选)
read:org - 读取组织信息(推荐)
read:packages - 读取包信息(推荐)
gist - Gist 操作(可选)
read:project - Projects 操作(可选)
7

生成并复制 Token

点击底部 Generate token 按钮

重要:Token 只会显示一次!请立即复制并安全保存。如果丢失,需要重新生成。

Fine-grained PAT 提供更精细的权限控制,可以限制到特定仓库。

1

进入 Fine-grained tokens 页面

打开 Fine-grained tokens 页面
2

配置 Token

  • Token name:描述性名称
  • Expiration:过期时间
  • Repository access:选择 All repositories 或特定仓库
3

设置 Repository permissions

Contents: Read and write

Issues: Read and write

Pull requests: Read and write

Metadata: Read-only (自动选中)

6 安装配置

重要提醒

npm 包 @modelcontextprotocol/server-github 自 2025 年 4 月起不再受支持。请使用官方 Docker 镜像。

推荐

远程服务器

由 GitHub 托管,自动更新,无需本地安装。

服务器地址:

https://api.githubcopilot.com/mcp/

本地服务器 - Docker

使用官方 Docker 镜像运行:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=your_token \
  ghcr.io/github/github-mcp-server

从源码构建

需要 Go 1.24+:

git clone https://github.com/github/github-mcp-server.git
cd github-mcp-server/cmd/github-mcp-server
go build

7 IDE 安装指南

远程设置(推荐):

claude mcp add-json github '{
  "type": "http",
  "url": "https://api.githubcopilot.com/mcp",
  "headers": {
    "Authorization": "Bearer YOUR_GITHUB_PAT"
  }
}'

本地设置(Docker):

claude mcp add github \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=YOUR_GITHUB_PAT \
  -- docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN \
  ghcr.io/github/github-mcp-server

验证:运行 claude mcp list

编辑 claude_desktop_config.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_GITHUB_PAT"
      }
    }
  }
}

编辑 ~/.cursor/mcp.json

{
  "mcpServers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer YOUR_GITHUB_PAT"
      }
    }
  }
}

需要 Cursor v0.48.0+ 以支持 Streamable HTTP

编辑 ~/.codeium/windsurf/mcp_config.json

{
  "mcpServers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer YOUR_GITHUB_PAT"
      }
    }
  }
}

也可通过 Plugin Store 搜索 "GitHub MCP Server" 安装

1. 存储 PAT 到 ~/.gemini/.env

GITHUB_MCP_PAT=your_token_here

2. 编辑 ~/.gemini/settings.json

{
  "mcpServers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${GITHUB_MCP_PAT}"
      }
    }
  }
}

验证:运行 /mcp list

支持 OAuth 认证,创建 .mcp.json

{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    }
  }
}

通过 CodeLens 进行 OAuth 认证,然后在 Agent 模式启用工具

配置远程 URL 和 PAT 认证头:

URL: https://api.githubcopilot.com/mcp/
Header: Authorization: Bearer YOUR_GITHUB_PAT

JetBrains IDE 尚不支持 OAuth 认证

8 配置选项

远程服务器 HTTP 头

Header 说明
X-MCP-Toolsets 启用指定工具集(逗号分隔)
X-MCP-Tools 启用指定单个工具
X-MCP-Readonly 只读模式,禁止修改操作
X-MCP-Lockdown 锁定模式,限制公开仓库访问
X-MCP-Insiders 启用实验性功能

URL 路径修饰符

/x/{toolset} 指定工具集,如 /x/issues
/x/all 加载所有可用工具集
/readonly 只读访问模式
/insiders 实验性功能

环境变量(本地服务器)

变量 说明
GITHUB_PERSONAL_ACCESS_TOKEN 必需,GitHub PAT
GITHUB_TOOLSETS 默认工具集
GITHUB_TOOLS 默认单个工具
GITHUB_READ_ONLY 启用只读模式
GITHUB_DYNAMIC_TOOLSETS 启用动态工具集发现
GITHUB_HOST GitHub Enterprise Server 地址

9 安全最佳实践

使用环境变量存储 PAT

不要将令牌硬编码在配置文件中

最小权限原则

仅授予必要的 OAuth 范围:repo, read:packages, read:org

将 .env 添加到 .gitignore

防止意外提交敏感信息

定期轮换令牌

设置令牌过期时间,定期更新

限制配置文件权限

使用 chmod 600 保护配置文件

10 使用示例

指定工具集配置

{
  "type": "http",
  "url": "https://api.githubcopilot.com/mcp/",
  "headers": {
    "Authorization": "Bearer YOUR_GITHUB_PAT",
    "X-MCP-Toolsets": "repos,issues,pull_requests"
  }
}

只读模式配置

{
  "type": "http",
  "url": "https://api.githubcopilot.com/mcp/readonly",
  "headers": {
    "Authorization": "Bearer YOUR_GITHUB_PAT"
  }
}

Docker 运行指定工具集

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=your_token \
  -e GITHUB_TOOLSETS=repos,issues,actions \
  ghcr.io/github/github-mcp-server

工具搜索命令

使用内置命令搜索可用工具:

github-mcp-server tool-search "create issue"