Appearance
GitHub MCP 服务器默认启用 repos、issues、pull_requests 三个 toolset。可以按需添加 actions、code_security 等,或用 "all" 启用全部。远程服务器通过 URL 路径参数或 HTTP headers 配置,本地服务器通过命令行标志或环境变量配置。
GitHub MCP 服务器 Toolsets 配置:按需启用 GitHub 功能工具集
什么是 Toolset
GitHub MCP 服务器把工具按功能分组为 toolset,每个 toolset 包含一类 GitHub 功能的相关工具。默认只启用基础 toolset,避免暴露不必要的权限。
默认启用的 Toolset
| Toolset | 包含工具 |
|---|---|
repos | 列出/读取仓库文件、搜索代码 |
issues | 创建/查看/评论 Issues |
pull_requests | 创建/查看/评论 PR、代码审查 |
可选 Toolset
| Toolset | 说明 |
|---|---|
actions | 查看和触发 GitHub Actions 工作流 |
code_security | 代码安全扫描和 Dependabot 告警 |
secret_protection | Secret 扫描和 Push Protection 管理 |
copilot | Copilot Cloud Agent 功能(仅远程服务器) |
github_support_docs_search | 搜索 GitHub 官方文档(仅远程服务器) |
特殊关键字
| 关键字 | 说明 |
|---|---|
default | 所有默认 toolset(repos + issues + pull_requests) |
all | 所有可用 toolset |
远程服务器配置
方式一:URL 路径参数(单个 toolset)
json
{
"servers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/x/TOOLSET_NAME"
}
}
}例如只启用 actions:
json
{
"servers": {
"github-actions": {
"url": "https://api.githubcopilot.com/mcp/x/actions"
}
}
}方式二:HTTP Headers(多个 toolset)
json
{
"servers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"X-MCP-Toolsets": "default,actions,code_security"
}
}
}
}本地服务器配置
命令行标志
bash
# 启用 actions toolset(额外的,在默认基础上添加)
./github-mcp-server --toolsets actions stdio
# 启用所有 toolsets
./github-mcp-server --toolsets all stdio环境变量(优先级高于命令行标志)
bash
export GITHUB_MCP_TOOLSETS="default,actions,code_security"
./github-mcp-server stdioDocker 配置
json
{
"servers": {
"github": {
"command": "docker",
"args": ["run", "-i", "--rm",
"-e", "GITHUB_PERSONAL_ACCESS_TOKEN",
"-e", "GITHUB_MCP_TOOLSETS",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}",
"GITHUB_MCP_TOOLSETS": "default,actions"
}
}
}
}按需选择 Toolset 的建议
最小权限原则:只启用你实际需要的工具。如果只是日常代码开发,默认的 repos + issues + pull_requests 足够了。
Actions 触发要谨慎:启用 actions toolset 后,Copilot 可以触发 GitHub Actions 工作流。确保 Copilot 使用的账号权限已经限制在安全范围内。
企业用户:由组织 MCP 策略决定哪些 toolset 可用,个人配置不能超出策略允许的范围。
常见问题
Q: 启用所有 toolset 有什么风险?
A: all 会包含所有功能,包括可能执行写操作的工具。建议只在开发调试环境使用 all,生产或共享环境中明确列出需要的 toolset。
Q: 如何知道某个工具属于哪个 toolset?
A: 参考 GitHub MCP Server 的官方文档或仓库中的工具定义,每个工具都标注了所属 toolset。
Q: 可以同时配置多个 MCP 服务器,每个启用不同的 toolset 吗?
A: 可以。在配置文件中用不同的 key 定义多个服务器实例,每个指向不同的 toolset URL 或使用不同的 toolset 标志。