Contrast MCP Server

Remedie vulnerabilidades encontradas pelos produtos Contrast usando capacidades de LLM e Agente de Codificação.

Documentação

Contrast MCP Server

Java CI with Gradle License

O Contrast MCP Server conecta o Contrast Security ao seu agente de IA de codificação para que você possa corrigir vulnerabilidades, atualizar bibliotecas inseguras e analisar a cobertura de segurança por meio de linguagem natural.

Ele existe em duas formas.

  • Hosted MCP Server é um servidor MCP remoto que a Contrast opera para você. É o caminho mais simples para clientes Contrast SaaS, com login OAuth baseado em navegador e nada para instalar. Recomendado para a maioria dos usuários.
  • Local MCP Server é o servidor de código aberto neste repositório que você executa com chaves de API. É a escolha certa para instâncias on-premises e EOP (Enterprise On-Premises).

[!WARNING] AVISO CRÍTICO DE SEGURANÇA: Expor dados de vulnerabilidades do Contrast a um serviço de IA que treina com seus prompts pode vazar informações sensíveis. Use o Contrast MCP Server apenas com ambientes que garantam contratualmente o isolamento de dados e proíbam o treinamento de modelos com suas entradas.

Verifique a Privacidade de Dados da IA: Confirme se seu contrato de serviço impede o treinamento de modelos com seus prompts e consulte sua equipe de segurança antes de compartilhar dados do Contrast.

INSEGURO: Sites públicos de LLM para consumidores (ex.: ChatGPT gratuito, Gemini, Claude) que usam prompts para treinamento.

POTENCIALMENTE SEGURO: Serviços empresariais com garantias contratuais de privacidade (ex.: Google Cloud AI, AWS Bedrock, Azure OpenAI).

Conteúdo

Hosted MCP Server (recomendado)

O Hosted MCP Server, um servidor MCP remoto que a Contrast opera para você, é a maneira mais fácil de conectar um agente de IA ao Contrast. Você aponta seu cliente para uma URL, faz login pelo navegador e seu agente pode começar a fazer perguntas sobre seus dados de segurança. Não há chaves de API para copiar, nenhum container ou JAR para manter atualizado e nenhum processo local para executar.

O servidor hospedado é somente leitura e está disponível agora para Contrast SaaS.

Pré-requisitos

  • Uma conta Contrast SaaS com acesso a pelo menos uma organização
  • Um cliente MCP que suporte transporte Streamable HTTP e OAuth 2.0 com PKCE (veja Clientes suportados)
  • Um navegador web moderno para o login OAuth

Conectar

Adicione o servidor ao Claude Code apontando para o seu host Contrast seguido de /mcp.

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

Substitua app.contrastsecurity.com pela URL do Contrast da sua organização se você usar uma instância dedicada. Na primeira vez que seu agente chamar uma ferramenta, seu navegador abrirá para o login. Se o login não iniciar automaticamente, execute /mcp no Claude Code e escolha Authenticate para contrast-hosted-mcp. Você faz login com suas credenciais existentes do Contrast, escolhe uma organização e aprova o acesso de leitura. Sua sessão é renovada automaticamente, então você normalmente faz login uma vez e continua trabalhando.

Para configuração passo a passo para Claude Code, Claude Desktop, Codex CLI, GitHub Copilot CLI e opencode, veja o guia de instalação do Hosted MCP Server.

Detalhes da conexão

Qualquer cliente MCP que suporte transporte Streamable HTTP e OAuth 2.0 com PKCE pode se conectar.

ConfiguraçãoValor
URL do endpointhttps://<your-contrast-host>/mcp (por exemplo https://app.contrastsecurity.com/mcp)
TransporteStreamable HTTP (stateless)
Método HTTPPOST
AutenticaçãoOAuth 2.0 com PKCE (S256)
Escopos OAuthopenid, profile, offline_access

Seu cliente descobre a configuração OAuth automaticamente por meio do cabeçalho de resposta WWW-Authenticate, que aponta para o documento de metadados padrão /.well-known/oauth-protected-resource. Clientes que suportam Dynamic Client Registration podem se registrar em /oauth2/connect/register na origem do Contrast.

Esses escopos OAuth cobrem apenas identidade, e isso é intencional. O token não concede permissões de dados por si só. A autorização é decidida pela plataforma Contrast em cada solicitação, usando o controle de acesso baseado em papéis existente do usuário conectado. Isso significa que não há um token de escopo amplo para um agente manter ou vazar, e nenhum escopo de autorização para errar no momento da conexão. Veja Segurança e privacidade para o modelo completo.

Clientes suportados

ClienteStatus
Claude Code CLIFuncionando
Codex CLIFuncionando
GitHub Copilot CLIFuncionando
opencodeFuncionando
Claude DesktopFuncionando
Gemini CLIAinda não suportado, problema de compatibilidade OAuth
Plugin VS Code CopilotAinda não suportado, problema de compatibilidade OAuth

O suporte para mais clientes está em andamento à medida que o tratamento OAuth deles amadurece. Se seu cliente falhar durante o registro OAuth antes que a página de login apareça, isso geralmente é um problema de compatibilidade do cliente, e não um problema com sua conta.

Segurança e privacidade

O servidor hospedado muda como o acesso funciona sem mudar o que você tem permissão de ver.

  • OAuth, não chaves de API. Você faz login pelo navegador, então não há chaves de longa duração para distribuir ou armazenar nas máquinas dos desenvolvedores.
  • Somente leitura. Cada ferramenta hospedada é somente leitura. Você não pode modificar, atualizar ou excluir dados por meio do servidor hospedado.
  • Escopo por organização. Cada sessão está vinculada à única organização que você seleciona no login, então não há ID de organização para adivinhar ou errar.
  • Suas permissões existentes se aplicam. Cada solicitação leva sua identidade ao Contrast, que aplica o mesmo controle de acesso baseado em papéis da interface web. Se você não pode ver algo no Contrast, seu agente também não pode ver. A autorização é uma decisão em tempo de execução tomada em cada solicitação, não uma concessão única codificada no token, então definir o escopo de um agente é o mesmo exercício que definir o escopo de seu usuário.
  • Cada chamada de ferramenta é auditada. O Contrast registra cada solicitação com um identificador único, a ferramenta invocada, o usuário, a organização e o resultado, apoiando a reconstrução de incidentes.
  • Sem armazenamento de dados. O servidor hospedado não armazena nenhum dos seus dados, e seu token nunca aparece em uma resposta de ferramenta.

O aviso compartilhado acima ainda se aplica. Os resultados das ferramentas se tornam parte da sua conversa de IA, então siga a política da sua organização sobre quais dados de segurança podem ser enviados ao seu cliente e modelo de IA escolhidos.

Ferramentas disponíveis

Ambos os servidores compartilham as mesmas ferramentas principais, então a tabela abaixo os cobre juntos. As colunas Hosted e Local mostram qual servidor fornece cada ferramenta. Seu agente chama as ferramentas automaticamente com base nas suas perguntas.

Autenticação

FerramentaDescriçãoHostedLocal
get_user_infoMostra quem está conectado e qual organização está ativa✅—

Vulnerabilidades (Assess)

FerramentaDescriçãoHostedLocal
search_vulnerabilitiesPesquisa vulnerabilidades em todos os aplicativos (nível de organização)✅✅
search_app_vulnerabilitiesPesquisa vulnerabilidades em um aplicativo específico com filtro de sessão✅✅
get_vulnerabilityObtém informações detalhadas de vulnerabilidade, incluindo stack trace e orientação de correção✅✅
list_vulnerability_typesLista todos os tipos de vulnerabilidade disponíveis para filtragem✅✅

Aplicativos

FerramentaDescriçãoHostedLocal
search_applicationsPesquisa aplicativos por nome, tag ou filtros de metadados✅✅
get_session_metadataObtém campos de metadados de sessão disponíveis para um aplicativo✅✅

Servidores

FerramentaDescriçãoHostedLocal
search_serversPesquisa o inventário de servidores para saúde do agente e cobertura do Protect✅✅

Bibliotecas (SCA)

FerramentaDescriçãoHostedLocal
list_application_librariesLista bibliotecas usadas por um aplicativo com estatísticas de uso de classes e contagens de vulnerabilidades✅✅
list_applications_by_cveEncontra aplicativos afetados por um CVE específico✅✅

Proteção (ADR/Protect)

FerramentaDescriçãoHostedLocal
search_attacksPesquisa eventos de ataque com filtros por status, tipo e regras✅✅
get_protect_rulesObtém regras de proteção configuradas para um aplicativo✅✅

Cobertura

FerramentaDescriçãoHostedLocal
get_route_coverageObtém dados de cobertura de rotas mostrando rotas exercitadas vs. descobertas✅✅

SAST (Scan)

FerramentaDescriçãoHostedLocal
get_scan_projectObtém detalhes do projeto SAST e contagens de vulnerabilidades✅✅
get_scan_resultsObtém resultados de scan SAST em formato SARIF—✅

CVEs, Problemas, Incidentes e Observações

Essas ferramentas estão disponíveis apenas no servidor hospedado e exigem que a plataforma unificada de dados do Contrast (NorthStar) esteja habilitada para sua organização.

FerramentaDescriçãoHostedLocal
search_cvesPesquisa CVEs em sua organização para exposição e risco do CVE Shield✅—
list_cve_issuesLista aplicativos e bibliotecas afetados por um CVE, um problema por par✅—
get_cve_impactObtém risco de CVE, exposição e postura de proteção do shield em sua organização✅—
search_issuesPesquisa e filtra problemas de segurança em sua organização✅—
get_issueObtém detalhes completos de um problema específico✅—
list_issue_incidentsLista incidentes vinculados a um problema✅—
list_issues_by_libraryLista problemas abertos associados a uma biblioteca de aplicativo✅—
search_incidentsPesquisa e filtra incidentes✅—
get_incidentObtém detalhes completos de um incidente específico✅—
list_incident_issuesLista problemas vinculados a um incidente✅—
get_observationObtém detalhes completos de uma observação específica✅—
list_issue_observationsLista observações vinculadas a um problema (paginação por cursor)✅—
list_incident_observationsLista observações vinculadas a um incidente (paginação por cursor)✅—

Local MCP Server

O Local MCP Server é o servidor de código aberto neste repositório. Seu cliente MCP o inicia como um processo local via stdio, ele autentica com chaves de API e serviço do Contrast e se conecta à sua própria instância do Contrast, incluindo on-premises e EOP. Use-o quando não puder usar o servidor hospedado ou quando precisar de saída bruta de scan SARIF.

O servidor local fornece as ferramentas marcadas como Local em Ferramentas disponíveis acima.

Início rápido

Pré-requisitos

VS Code (GitHub Copilot) - Instalação com um clique

Install in VS Code

Clique no botão acima para instalar automaticamente no VS Code. Para configuração manual, veja o Guia de Instalação do VS Code (GitHub Copilot).

IntelliJ IDEA (GitHub Copilot)

Adicione isto ao seu arquivo de configuração mcp.json e substitua os valores de exemplo pelas suas credenciais do 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": "example@example.com",
        "CONTRAST_ORG_ID": "example"
      }
    }
  }
}

📖 Guia Completo de Instalação do IntelliJ (GitHub Copilot) - Inclui configuração passo a passo e opção de implantação JAR

Outros Assistentes de IA

Mais configuração e solução de problemas

Obtendo o arquivo JAR (download, verificação de atestado e build a partir do código-fonte), configuração de proxy e solução de problemas foram movidos para o Guia do Servidor MCP Local.

Exemplos de prompts

Esses prompts funcionam com qualquer um dos servidores, exceto onde uma seção indica o contrário.

Para o Desenvolvedor

Corrigir Vulnerabilidades no Código

  • Liste as vulnerabilidades do Application Y.
  • Dê-me detalhes sobre a vulnerabilidade X no Application Y.
  • Revise a vulnerabilidade X e corrija-a.

Correção de Bibliotecas de Terceiros

  • Quais bibliotecas no Application X têm vulnerabilidades altas ou críticas e estão sendo usadas ativamente?
  • Atualize a biblioteca X, que tem uma vulnerabilidade crítica, para a versão segura.
  • Quais bibliotecas no Application X não estão sendo usadas?

Recuperar Aplicações por Tag

  • Dê-me as aplicações marcadas com "backend."

Recuperar Aplicações por Metadados

  • Dê-me as aplicações com metadados "dev-team" e "backend-team."

Recuperar Vulnerabilidades por Metadados de Sessão

  • Dê-me os metadados de sessão do Application X.
  • Dê-me as vulnerabilidades na sessão mais recente do Application X.
  • Dê-me as vulnerabilidades para os metadados de sessão "Branch Name" "feature/some-new-fix" do Application X.
  • Dê-me a cobertura de rotas da sessão mais recente do Application X.
  • Dê-me a cobertura de rotas para os metadados de sessão "Branch Name" "feature/some-new-fix" do Application X.

Para o Profissional de Segurança

  • Dê-me um detalhamento das aplicações e servidores vulneráveis ao CVE-xxxx-xxxx.
  • Liste as bibliotecas da aplicação chamada xxx e diga-me qual versão de commons-collections está sendo usada.
  • Quais vulnerabilidades no Application X estão sendo bloqueadas por uma regra de Protect ou ADR?
  • Quais servidores de produção não têm o Protect habilitado?
  • Mostre-me servidores cujos agentes estão desatualizados.
  • Mostre-me eventos de ataque dos últimos 7 dias e diga-me quais foram explorados.

Servidor hospedado com a plataforma unificada de dados (NorthStar)

Esses prompts exigem o servidor hospedado e a plataforma unificada de dados da Contrast (NorthStar) habilitada para sua organização.

  • Quais CVEs representam o maior risco na minha organização?
  • Minha organização está protegida contra o CVE-xxxx-xxxx?
  • Quais aplicações e bibliotecas são afetadas pelo CVE-xxxx-xxxx?
  • Mostre-me problemas de segurança abertos do Application X.
  • Dê-me os detalhes do incidente X e os problemas vinculados a ele.
  • Quais observações fornecem evidências para o problema X?

Privacidade de dados

O Contrast MCP Server fornece uma ponte entre seus Dados da Contrast e o Agente de IA/LLM de sua escolha. Ao usar o servidor MCP da Contrast, você estará fornecendo seus Dados da Contrast ao seu Agente de IA/LLM; é sua responsabilidade garantir que o Agente de IA/LLM que você usa esteja em conformidade com sua política de privacidade de dados. Dependendo das perguntas que você fizer, as seguintes informações serão fornecidas ao seu Agente de IA/LLM.

  • Detalhes da Aplicação
  • Configuração de regras da Aplicação
  • Detalhes de Vulnerabilidades
  • Dados de cobertura de rotas
  • Detalhes de eventos de ataque ADR/Protect
  • Inventário de servidores e detalhes de agentes (hostnames, caminhos, versões de agentes, ambientes, níveis de log e tags)
  • Dados de problemas, incidentes, observações e CVE Shield (servidor hospedado com NorthStar)

Changelog

Consulte CHANGELOG.md para o histórico completo de versões, incluindo mudanças de quebra e novos recursos.