Contrast MCP Server
Remedie vulnerabilidades encontradas pelos produtos Contrast usando capacidades de LLM e Agente de Codificação.
Documentação
Contrast MCP Server
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)
- Ferramentas disponíveis
- Local MCP Server
- Exemplos de prompts
- Privacidade de dados
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ção | Valor |
|---|---|
| URL do endpoint | https://<your-contrast-host>/mcp (por exemplo https://app.contrastsecurity.com/mcp) |
| Transporte | Streamable HTTP (stateless) |
| Método HTTP | POST |
| Autenticação | OAuth 2.0 com PKCE (S256) |
| Escopos OAuth | openid, 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
| Cliente | Status |
|---|---|
| Claude Code CLI | Funcionando |
| Codex CLI | Funcionando |
| GitHub Copilot CLI | Funcionando |
| opencode | Funcionando |
| Claude Desktop | Funcionando |
| Gemini CLI | Ainda não suportado, problema de compatibilidade OAuth |
| Plugin VS Code Copilot | Ainda 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
| Ferramenta | Descrição | Hosted | Local |
|---|---|---|---|
get_user_info | Mostra quem está conectado e qual organização está ativa | ✅ | — |
Vulnerabilidades (Assess)
| Ferramenta | Descrição | Hosted | Local |
|---|---|---|---|
search_vulnerabilities | Pesquisa vulnerabilidades em todos os aplicativos (nível de organização) | ✅ | ✅ |
search_app_vulnerabilities | Pesquisa vulnerabilidades em um aplicativo específico com filtro de sessão | ✅ | ✅ |
get_vulnerability | Obtém informações detalhadas de vulnerabilidade, incluindo stack trace e orientação de correção | ✅ | ✅ |
list_vulnerability_types | Lista todos os tipos de vulnerabilidade disponíveis para filtragem | ✅ | ✅ |
Aplicativos
| Ferramenta | Descrição | Hosted | Local |
|---|---|---|---|
search_applications | Pesquisa aplicativos por nome, tag ou filtros de metadados | ✅ | ✅ |
get_session_metadata | Obtém campos de metadados de sessão disponíveis para um aplicativo | ✅ | ✅ |
Servidores
| Ferramenta | Descrição | Hosted | Local |
|---|---|---|---|
search_servers | Pesquisa o inventário de servidores para saúde do agente e cobertura do Protect | ✅ | ✅ |
Bibliotecas (SCA)
| Ferramenta | Descrição | Hosted | Local |
|---|---|---|---|
list_application_libraries | Lista bibliotecas usadas por um aplicativo com estatísticas de uso de classes e contagens de vulnerabilidades | ✅ | ✅ |
list_applications_by_cve | Encontra aplicativos afetados por um CVE específico | ✅ | ✅ |
Proteção (ADR/Protect)
| Ferramenta | Descrição | Hosted | Local |
|---|---|---|---|
search_attacks | Pesquisa eventos de ataque com filtros por status, tipo e regras | ✅ | ✅ |
get_protect_rules | Obtém regras de proteção configuradas para um aplicativo | ✅ | ✅ |
Cobertura
| Ferramenta | Descrição | Hosted | Local |
|---|---|---|---|
get_route_coverage | Obtém dados de cobertura de rotas mostrando rotas exercitadas vs. descobertas | ✅ | ✅ |
SAST (Scan)
| Ferramenta | Descrição | Hosted | Local |
|---|---|---|---|
get_scan_project | Obtém detalhes do projeto SAST e contagens de vulnerabilidades | ✅ | ✅ |
get_scan_results | Obté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.
| Ferramenta | Descrição | Hosted | Local |
|---|---|---|---|
search_cves | Pesquisa CVEs em sua organização para exposição e risco do CVE Shield | ✅ | — |
list_cve_issues | Lista aplicativos e bibliotecas afetados por um CVE, um problema por par | ✅ | — |
get_cve_impact | Obtém risco de CVE, exposição e postura de proteção do shield em sua organização | ✅ | — |
search_issues | Pesquisa e filtra problemas de segurança em sua organização | ✅ | — |
get_issue | Obtém detalhes completos de um problema específico | ✅ | — |
list_issue_incidents | Lista incidentes vinculados a um problema | ✅ | — |
list_issues_by_library | Lista problemas abertos associados a uma biblioteca de aplicativo | ✅ | — |
search_incidents | Pesquisa e filtra incidentes | ✅ | — |
get_incident | Obtém detalhes completos de um incidente específico | ✅ | — |
list_incident_issues | Lista problemas vinculados a um incidente | ✅ | — |
get_observation | Obtém detalhes completos de uma observação específica | ✅ | — |
list_issue_observations | Lista observações vinculadas a um problema (paginação por cursor) | ✅ | — |
list_incident_observations | Lista 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
- Docker (recomendado) ou Java 21+ para implantação JAR
- Credenciais de API do Contrast (como obter credenciais de API)
VS Code (GitHub Copilot) - Instalação com um clique
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
- Claude Code - Ferramenta CLI oficial da Anthropic
- Claude Desktop - Aplicativo Claude independente
- Plugin Cline - Assistente de IA alternativo para VS Code
- Todos os Outros Hosts MCP - Guias de instalação completos para oterm e mais
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.