Skip to main content

使用 GitHub MCP 服务器扫描机密

在它们到达存储库之前,实时从您的 AI 编码代理中检测暴露的机密。

谁可以使用此功能?

People with write access to a repository.

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 配置中

JSON
{
  "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 服务器

JSON
{
  "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 工具集。

有关安装插件的说明:

步骤 2:扫描代码

启用工具集后,可以通过多种方式触发扫描,具体取决于客户端。

自然语言提示。 在任何 MCP 兼容的代理中,您可以请求:

“扫描当前更改以了解是否存在被公开的机密,并显示我提交之前应更新的文件和行。”

“对自上次提交以来更改过的文件运行 secret scanning,并汇总任何高可信度调查结果。”

斜杠命令(需要Advanced Security插件)。 如果在步骤 1 中安装了可选插件,还可以使用:

“/secret-scanning 查看凭据、密钥或令牌的暂存差异,并建议使用环境变量进行替换。”

直接工具调用: 还可以直接从客户端调用扫描工具。

运行 copilot --add-github-mcp-tool run_secret_scanning

/secret-scanning 中键入 副驾驶聊天。

  1. 在 IDE 中打开 副驾驶聊天
  2. 单击 “代理 ”选项卡
  3. 使用类似这样的提示:“在提交代码之前,扫描我最近的更改以查找暴露的秘密。” 还可以单击聊天框中的工具图标,直接浏览可用 secret_protection 工具。

代理返回:

  • 找到的机密类型
  • 检测到的文件和行
  • 修正步骤,例如删除或轮换凭据

如果启用了推送保护,MCP 服务器还会阻止机密包含在代表你执行的任何操作中,例如提交、拉取请求或创建文件。 请参阅“使用推送保护和 GitHub MCP 服务器”。

故障排除

问题检查
扫描不返回结果
secret_protection验证是否已在 MCP 配置中启用工具集。
存储库不符合条件
Secret scanning 通过 MCP 可用于公共存储库,需要 GitHub Secret Protection 为专用存储库和内部存储库启用。
代理无法识别该工具确认 IDE 或代理支持 MCP。 请参阅“关于模型上下文协议 (MCP)”。
意外检测结果贵组织的安全配置控制扫描的模式。 检查存储库安全设置。
工具在一个客户端中工作,但不适用于另一个客户端体验因 MCP 兼容的客户端而异。 查看客户端的 MCP 文档,了解支持的功能。