Skip to content

企业环境下有两种 MCP 服务器部署方案:GitHub Enterprise Cloud 支持远程 MCP 服务器(通过自定义子域名 URL),Enterprise Server 只支持本地 MCP 服务器(Docker 或从源码构建)。两者都通过 GITHUB_HOST 环境变量或 --gh-host 参数指定企业实例地址。

GitHub MCP 服务器企业配置:GitHub Enterprise Cloud 和 Enterprise Server 接入

两种企业部署类型

部署类型远程 MCP 服务器本地 MCP 服务器
GitHub Enterprise Cloud(含数据驻留)✅ 支持✅ 支持
GitHub Enterprise Server❌ 不支持✅ 支持

方案一:远程 MCP 服务器(Enterprise Cloud 数据驻留)

将 MCP 服务器 URL 替换为你的企业子域名端点:

VS Code 配置:

json
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://copilot-api.SUBDOMAIN.ghe.com/mcp",
      "headers": {
        "Authorization": "Bearer ${input:github_mcp_pat}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "github_mcp_pat",
      "description": "GitHub PAT",
      "password": true
    }
  ]
}

SUBDOMAIN.ghe.com 替换为你的企业实际子域名,例如 copilot-api.mycompany.ghe.com/mcp

方案二:本地 MCP 服务器(Enterprise Server / Enterprise Cloud 两者均可用)

使用 Docker(推荐)

在 VS Code 中使用 Docker 部署本地 MCP 服务器,连接 GitHub Enterprise Server:

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

YOUR_GHES_HOSTNAME 替换为你的 Enterprise Server 实例地址,注意需要加 https:// 前缀。

从源码构建

bash
# 克隆并构建
git clone https://github.com/github/github-mcp-server
cd github-mcp-server
go build

# 使用环境变量指定企业实例
export GITHUB_HOST="https://your-ghes-hostname.company.com"
./github-mcp-server stdio

# 或使用命令行标志
./github-mcp-server --gh-host "https://your-ghes-hostname.company.com" stdio

认证方式

企业环境推荐使用 Personal Access Token(PAT):

  1. 在 GitHub Enterprise 中创建 PAT:SettingsDeveloper settingsPersonal access tokens
  2. 授予需要的权限(repoissuespull_requests 等)
  3. 在 IDE 配置中以 Bearer YOUR_PAT 格式传入

注意:每次 VS Code 会话可能会提示输入 token(password: true 配置不持久化 token,提高安全性)。如果需要持久化,考虑使用 IDE 的密钥存储功能。

常见问题

Q: Enterprise Server 为什么不支持远程 MCP 服务器?

A: 远程 MCP 服务器运行在 GitHub 的云端基础设施上。Enterprise Server 是完全自托管的,与 GitHub 云服务隔离,因此远程 MCP 不适用。本地 MCP 服务器部署在你的基础设施中,可以访问 Enterprise Server。

Q: Docker 方案和从源码构建哪个更合适?

A: 团队环境推荐 Docker,镜像版本可控且无需配置 Go 开发环境。开发者本地调试可以从源码构建,更方便修改和排查。

Q: 企业 MCP 服务器的 PAT 需要哪些 scope?

A: 根据你启用的 toolset 决定。基础功能(repos/issues/pull_requests)需要 repo scope。如果需要触发 Actions,还需要 workflow scope。建议从最小权限开始,按需添加。