mcpField
C
Contrast MCP Server

Contrast MCP Server

本地服务
github.com/Contrast-Security-OSS安全232 周前更新

关于 Contrast MCP Server

Contrast MCP Server 将 Contrast Security 接入 AI 编码 Agent,可通过自然语言修复漏洞、更新存在风险的库并分析安全覆盖情况。提供托管远程服务和可自行部署的本地服务两种形式,后者适用于本地部署及 EOP 环境。

主要功能

  1. 01托管远程服务,基于浏览器 OAuth 登录
  2. 02本地服务为开源项目,使用 API 密钥运行
  3. 03按用户现有角色权限控制数据访问
  4. 04托管服务为只读,所有工具调用均有审计记录
  5. 05覆盖漏洞、SCA 库、ADR/Protect、SAST 等数据

适用场景

  1. 01在编码 Agent 中查询并修复应用漏洞
  2. 02查找受特定 CVE 影响的应用和库
  3. 03检查路由覆盖率与 Protect 规则配置

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 Contrast 的查询与分析工具。托管版通过远程 HTTP 连接,本地版以 stdio 方式由客户端启动。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Contrast MCP 服务

Java CI with Gradle License

Contrast MCP 服务将 Contrast Security 连接到你的 AI 编码 Agent,让你能够通过自然语言修复漏洞、更新不安全的库并分析安全覆盖情况。

它有两种形式。

  • 托管 MCP 服务 是 Contrast 为你运行的远程 MCP 服务。对于 Contrast SaaS 客户,这是最简单的方式,可通过浏览器进行 OAuth 登录,无需安装任何内容。推荐大多数用户使用。
  • 本地 MCP 服务 是此仓库中的开源服务,你可以使用 API 密钥自行运行。它适用于本地部署和 EOP(Enterprise On-Premises)实例。

警告

严重安全警告: 将 Contrast 漏洞数据暴露给会使用提示词进行训练的 AI 服务,可能会泄露敏感信息。只有在合同中明确保证数据隔离并禁止使用你的输入进行模型训练的环境中,才能使用 Contrast MCP 服务。

验证 AI 数据隐私: 请确认你的服务协议禁止使用提示词进行模型训练,并在分享 Contrast 数据前咨询安全团队。

不安全: 将提示词用于训练的公共消费级大模型网站(例如,免费版 ChatGPT、Gemini、Claude)。

可能安全: 具有合同隐私保障的企业服务(例如,Google Cloud AI、AWS Bedrock、Azure OpenAI)。

目录

托管 MCP 服务(推荐)

托管 MCP 服务是由 Contrast 为你运行的远程 MCP 服务,是将 AI Agent 连接到 Contrast 最简单的方式。你只需将客户端指向一个 URL,通过浏览器登录,Agent 就可以开始询问有关安全数据的问题。无需复制 API 密钥,无需维护容器或 JAR,也无需运行本地进程。

托管服务为只读,目前面向 Contrast SaaS 开放。

先决条件
  • 拥有可访问至少一个组织的 Contrast SaaS 账户
  • 支持 Streamable HTTP 传输和 OAuth 2.0 with PKCE 的 MCP 客户端(参见支持的客户端)
  • 用于 OAuth 登录的现代 Web 浏览器
连接

将服务器地址设为你的 Contrast 主机并在后面加上 /mcp,即可将其添加到 Claude Code。

claude mcp add --transport http contrast-hosted-mcp https://app.contrastsecurity.com/mcp

如果你使用专用实例,请将 app.contrastsecurity.com 替换为组织的 Contrast URL。Agent 首次调用工具时,浏览器会打开并提示登录。如果未自动开始登录,请在 Claude Code 中运行 /mcp,然后为 contrast-hosted-mcp 选择 Authenticate。使用现有 Contrast 凭据登录,选择一个组织并批准读取权限。会话会自动续期,因此通常只需登录一次即可继续使用。

有关 Claude Code、Claude Desktop、Codex CLI、GitHub Copilot CLI 和 opencode 的分步设置说明,请参阅托管 MCP 服务安装指南。

连接详情

任何支持 Streamable HTTP 传输和 OAuth 2.0 with PKCE 的 MCP 客户端都可以连接。

设置值
端点 URLhttps://<your-contrast-host>/mcp(例如 https://app.contrastsecurity.com/mcp)
传输方式Streamable HTTP(无状态)
HTTP 方法POST
身份验证OAuth 2.0 with PKCE(S256)
OAuth 作用域openid、profile、offline_access

客户端会通过 WWW-Authenticate 响应头自动发现 OAuth 配置,该响应头指向标准的 /.well-known/oauth-protected-resource 元数据文档。支持动态客户端注册的客户端可以在 Contrast 源站的 /oauth2/connect/register 注册。

这些 OAuth 作用域仅涵盖身份验证,这是有意为之。令牌本身不授予任何数据权限。Contrast 平台会在每次请求时根据已登录用户现有的基于角色的访问控制来决定授权。这意味着 Agent 无须持有或泄露范围宽泛的令牌,也无须在连接时担心授权作用域配置错误。完整机制请参阅安全与隐私。

支持的客户端
客户端状态
Claude Code CLI可用
Codex CLI可用
GitHub Copilot CLI可用
opencode可用
Claude Desktop可用
Gemini CLI暂不支持,OAuth 兼容性问题
VS Code Copilot plugin暂不支持,OAuth 兼容性问题

随着更多客户端的 OAuth 处理机制日趋成熟,我们正在逐步支持它们。如果客户端在登录页面出现前于 OAuth 注册期间失败,通常是客户端兼容性问题,而非账户问题。

安全与隐私

托管服务改变了访问方式,但不会改变您获准查看的内容。

  • 使用 OAuth,而非 API 密钥。 您通过浏览器登录,因此无须在开发人员的计算机上分发或存储长期有效的密钥。
  • 只读。 所有托管工具都为只读。您无法通过托管服务修改、更新或删除数据。
  • 限定组织范围。 每个会话都绑定到您登录时选择的单个组织,因此无须猜测或填写组织 ID。
  • 沿用您现有的权限。 每个请求都会携带您的身份信息发送至 Contrast,由其执行与 Web 界面相同的基于角色的访问控制。如果您无法在 Contrast 中查看某项内容,您的 Agent 也无法查看。授权是在每次请求时做出的运行时决策,而非一次性编码在令牌中的授权,因此,为 Agent 限定权限与为用户限定权限的做法相同。
  • 审计每次工具调用。 Contrast 会记录每个请求的唯一标识符、所调用的工具、用户、组织和结果,以支持事件重建。
  • 不存储数据。 托管服务不会存储您的任何数据,您的令牌也不会出现在工具响应中。

上文的通用警告仍然适用。工具结果会成为 AI 对话的一部分,因此请遵循所在组织关于哪些安全数据可以发送给所选 AI 客户端和模型的政策。

可用工具

两个服务都共享相同的核心工具,因此下表将它们一并列出。托管和本地列表示提供相应工具的服务。Agent 会根据您的问题自动调用工具。

身份验证
工具描述托管本地
get_user_info显示您当前以什么身份登录以及哪个组织处于活动状态✅—
漏洞(评估)
工具描述托管本地
search_vulnerabilities搜索所有应用中的漏洞(组织级)✅✅
search_app_vulnerabilities在指定应用中搜索漏洞,并按会话筛选✅✅
get_vulnerability获取漏洞详细信息,包括堆栈跟踪和修复指导✅✅
list_vulnerability_types列出所有可用于筛选的漏洞类型✅✅
应用
工具描述托管本地
search_applications按名称、标签或元数据筛选条件搜索应用✅✅
get_session_metadata获取应用可用的会话元数据字段✅✅
服务
工具描述托管本地
search_servers搜索服务器清单,查看 Agent 运行状况和 Protect 覆盖情况✅✅
库(SCA)
工具描述托管本地
list_application_libraries列出应用使用的库,包括类使用统计信息和漏洞数量✅✅
list_applications_by_cve查找受特定 CVE 影响的应用✅✅
防护(ADR/Protect)
工具描述托管本地
search_attacks搜索攻击事件,可按状态、类型和规则筛选✅✅
get_protect_rules获取为应用配置的防护规则✅✅
覆盖情况
工具描述托管本地
get_route_coverage获取路由覆盖数据,显示已测试与已发现的路由✅✅
SAST(扫描)
工具描述托管本地
get_scan_project获取 SAST 项目详情和漏洞数量✅✅
get_scan_results以 SARIF 格式获取 SAST 扫描结果—✅
CVE、问题、事件和观察项

这些工具仅在托管服务上可用,并且需要为你的组织启用 Contrast 统一数据平台(NorthStar)。

工具描述托管本地
search_cves搜索组织中的 CVE,查看 CVE Shield 暴露情况和风险✅—
list_cve_issues列出受某个 CVE 影响的应用和库,每对应用与库对应一个问题✅—
get_cve_impact获取组织范围内的 CVE 风险、暴露情况和 Shield 防护状态✅—
search_issues搜索并筛选组织中的安全问题✅—
get_issue获取特定问题的完整详情✅—
list_issue_incidents列出与某个问题关联的事件✅—
list_issues_by_library列出与应用库关联的未解决问题✅—
search_incidents搜索并筛选事件✅—
get_incident获取特定事件的完整详情✅—
list_incident_issues列出与某个事件关联的问题✅—
get_observation获取特定观察项的完整详情✅—
list_issue_observations列出与某个问题关联的观察项(游标分页)✅—
list_incident_observations列出与某个事件关联的观察项(游标分页)✅—

本地 MCP 服务

本地 MCP 服务是此仓库中的开源服务。你的 MCP 客户端会通过 stdio 将其作为本地进程启动;它使用 Contrast API 和服务密钥进行身份验证,并连接到你自己的 Contrast 实例,包括本地部署实例和 EOP。无法使用托管服务,或需要原始 SARIF 扫描输出时,请使用此服务。

本地服务提供上方可用工具中标记为本地的工具。

快速开始
前置条件
VS Code(GitHub Copilot)- 一键安装

在 VS Code 中安装

点击上方按钮即可在 VS Code 中自动安装。手动设置请参阅 VS Code(GitHub Copilot)安装指南。

IntelliJ IDEA(GitHub Copilot)

将以下内容添加到 mcp.json 配置文件,并将占位值替换为你的 Contrast 凭据:

{
  "servers": {
    "contrast": {
      "command": "docker",
      "args": [
        "run",
        "-e",
        "CONTRAST_HOST_NAME",
        "-e",
        "CONTRAST_API_KEY",
        "-e",
        "CONTRAST_SERVICE_KEY",
        "-e",
        "CONTRAST_USERNAME",
        "-e",
        "CONTRAST_ORG_ID",
        "-i",
        "--rm",
        "contrast/mcp-contrast:latest",
        "-t",
        "stdio"
      ],
      "env": {
        "CONTRAST_HOST_NAME": "example.contrastsecurity.com",
        "CONTRAST_API_KEY": "example",
        "CONTRAST_SERVICE_KEY": "example",
        "CONTRAST_USERNAME": "[email protected]",
        "CONTRAST_ORG_ID": "example"
      }
    }
  }
}

📖 IntelliJ(GitHub Copilot)完整安装指南 - 包含分步设置说明和 JAR 部署选项

其他 AI 助手
更多设置与故障排除

获取 JAR 文件(下载、证明验证和从源代码构建)、代理配置及故障排除内容已移至本地 MCP 服务指南。

示例提示词

除非某个章节另有说明,这些提示词适用于任一服务。

面向开发者
修复代码中的漏洞
  • 请列出 Application Y 中的漏洞。
  • 请向我介绍 Application Y 中漏洞 X 的详细信息。
  • 请检查漏洞 X 并修复它。
修复第三方库问题
  • Application X 中哪些库存在高危或严重漏洞且正在使用?
  • 请将存在严重漏洞的库 X 更新到安全版本。
  • Application X 中哪些库未被使用?
按标签检索应用程序
  • 请列出带有“backend”标签的应用程序。
按元数据检索应用
  • 请列出元数据为“dev-team”和“backend-team”的应用。
按会话元数据检索漏洞
  • 请提供 Application X 的会话元数据。
  • 请列出 Application X 最新会话中的漏洞。
  • 请列出 Application X 中会话元数据为“Branch Name”“feature/some-new-fix”的漏洞。
  • 请提供 Application X 最新会话的路由覆盖率。
  • 请提供 Application X 中会话元数据为“Branch Name”“feature/some-new-fix”的路由覆盖率。
面向安全专业人员
  • 请列出受 CVE-xxxx-xxxx 影响的应用和服务器,并提供详细情况。
  • 请列出名为 xxx 的应用所使用的库,并告知 commons-collections 的版本。
  • Application X 中哪些漏洞正受到 Protect 或 ADR 规则的拦截?
  • 哪些生产服务器未启用 Protect?
  • 显示代理程序已过期的服务器。
  • 显示过去 7 天的攻击事件,并告知哪些事件已被利用。
使用统一数据平台(NorthStar)的托管服务

这些提示词要求为您的组织启用托管服务和 Contrast 统一数据平台(NorthStar)。

  • 哪些 CVE 在整个组织中风险最高?
  • 我的组织是否已针对 CVE-xxxx-xxxx 部署防护?
  • 哪些应用和库受到 CVE-xxxx-xxxx 的影响?
  • 显示 Application X 中未解决的安全问题。
  • 请提供事件 X 的详细信息以及与之关联的问题。
  • 哪些观察结果为问题 X 提供了证据?

数据隐私

Contrast MCP Server 为您选择的 AI Agent/大模型与 Contrast 数据搭建桥梁。 使用 Contrast MCP Server 即表示您会将 Contrast 数据提供给 AI Agent/大模型;您有责任确保所使用的 AI Agent/大模型符合您的数据隐私政策。 根据您提出的问题,以下信息可能会提供给您的 AI Agent/大模型。

  • 应用详情
  • 应用规则配置
  • 漏洞详情
  • 路由覆盖率数据
  • ADR/Protect 攻击事件详情
  • 服务器清单和代理程序详情(主机名、路径、代理程序版本、环境、日志级别和标签)
  • 问题、事件、观察结果和 CVE Shield 数据(使用 NorthStar 的托管服务)

更新日志

请参阅 CHANGELOG.md,了解完整的版本发布历史,包括重大变更和新功能。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。