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 文档,了解支持的功能。 |

延伸阅读