GitHub 模型上下文协议 (MCP) 服务器可用于直接从 secret scanning 智能体模式、GitHub Copilot 和其他 MCP 兼容工具中运行 GitHub Copilot 命令行界面 (CLI)。 在工作时扫描代码中公开的密钥、令牌和凭据,并在推送之前对其进行修复。
机密扫描工具仅能通过 GitHub 远程 MCP 服务器获得。 不支持本地 MCP 服务器配置。
这适用于任�� MCP 兼容的代理或 IDE,包括 Visual Studio Code、JetBrains、Claude Code、Cursor 和 Windsurf。 体验因客户端而异。
注意
MCP 调用的扫描返回的发现是 临时的。 它们仅显示在智能体的当前会话聊天中,并且不会在 GitHub 中作为警报持久存在。 这意味着这些发现不会显示在“安全”选项卡、 secret scanning 警报列表或警报的 REST/GraphQL API 中。 MCP 扫描应被视为预提交安全检查,而不是记录系统。 在将结果推送到存储库并保存在 Git 历史记录中之前进行修正。
Prerequisites
- GitHub Secret Protection已启用用于存储库。
- GitHub MCP 服务器 在 IDE 或代理中连接。 请参阅“设置 GitHub MCP 服务器”。
- 您的组织 的安全配置 决定了检测哪些机密类型,并是否强制执行推送保护。 MCP 工具遵循组织的推送保护配置(不使用存储库级推送保护设置)。
步骤 1:安装和配置工具
secret_protection启用工具集
secret_protection启用工具集,使扫描工具可供代理使用。 默认工具集不包含它。
run_secret_scanning工具当前附加到copilot工具集,而不是secret_protection。 必须在 MCP 配置中显式将 run_secret_scanning 作为附加工具包含在 secret_protection 工具集旁边。
GitHub Copilot 命令行界面 (CLI) GitHub具有内置 MCP 服务器:
copilot mcp --toolsets=secret_protection --tools=run_secret_scanning
将 secret_protection 工具集和 run_secret_scanning tool 添加到您的 MCP 配置中
{
"servers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"X-MCP-Toolsets": "secret_protection",
"X-MCP-Tools": "run_secret_scanning"
}
}
}
}
{
"servers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"X-MCP-Toolsets": "secret_protection",
"X-MCP-Tools": "run_secret_scanning"
}
}
}
}
在 JetBrains IDE 中,编辑 MCP 服务器配置以包括 secret_protection 工具集和 run_secret_scanning 工具标头。 有关在 JetBrains 中配置 MCP 服务器的详细信息,请参阅 JetBrains 文档中的 MCP 服务器 。
{
"servers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"GitHub-MCP-Toolsets": "secret_protection",
"GitHub-MCP-Tools": "run_secret_scanning"
}
}
}
}
{
"servers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"GitHub-MCP-Toolsets": "secret_protection",
"GitHub-MCP-Tools": "run_secret_scanning"
}
}
}
}
(可选) Advanced Security 安装插件
Advanced Security 插件提供 /secret-scanning 斜杠命令,以便在 GitHub Copilot 命令行界面 (CLI) 和 Visual Studio Code 中实现简化的扫描体验。 该插件使用 MCP 工具,因此仍需启用 secret_protection 工具集。
有关安装插件的说明:
- 有关 GitHub Copilot 命令行界面 (CLI),请参阅 查找并安装插件适用于GitHub Copilot 命令行界面 (CLI)。
- 有关Visual Studio Code,请参阅文档中的“发现和安装插件Visual Studio Code”。
步骤 2:扫描代码
启用工具集后,可以通过多种方式触发扫描,具体取决于客户端。
自然语言提示。 在任何 MCP 兼容的代理中,您可以请求:
“扫描当前更改以了解是否存在被公开的机密,并显示我提交之前应更新的文件和行。”
“对自上次提交以来更改过的文件运行 secret scanning,并汇总任何高可信度调查结果。”
斜杠命令(需要Advanced Security插件)。 如果在步骤 1 中安装了可选插件,还可以使用:
“/secret-scanning 查看凭据、密钥或令牌的暂存差异,并建议使用环境变量进行替换。”
直接工具调用: 还可以直接从客户端调用扫描工具。
运行 copilot --add-github-mcp-tool run_secret_scanning。
在 /secret-scanning 中键入 副驾驶聊天。
- 在 IDE 中打开 副驾驶聊天
- 单击 “代理 ”选项卡
- 使用类似这样的提示:“在提交代码之前,扫描我最近的更改以查找暴露的秘密。” 还可以单击聊天框中的工具图标,直接浏览可用
secret_protection工具。
代理返回:
- 找到的机密类型
- 检测到的文件和行
- 修正步骤,例如删除或轮换凭据
如果启用了推送保护,MCP 服务器还会阻止机密包含在代表你执行的任何操作中,例如提交、拉取请求或创建文件。 请参阅“使用推送保护和 GitHub MCP 服务器”。
故障排除
| 问题 | 检查 |
|---|---|
| 扫描不返回结果 | |
secret_protection验证是否已在 MCP 配置中启用工具集。 | |
| 存储库不符合条件 | |
| Secret scanning 通过 MCP 可用于公共存储库,需要 GitHub Secret Protection 为专用存储库和内部存储库启用。 | |
| 代理无法识别该工具 | 确认 IDE 或代理支持 MCP。 请参阅“关于模型上下文协议 (MCP)”。 |
| 意外检测结果 | 贵组织的安全配置控制扫描的模式。 检查存储库安全设置。 |
| 工具在一个客户端中工作,但不适用于另一个客户端 | 体验因 MCP 兼容的客户端而异。 查看客户端的 MCP 文档,了解支持的功能。 |