Contrast MCP Server
Remediar vulnerabilidades encontradas por productos de Contrast usando capacidades de LLM y Coding Agent.
Documentación
Contrast MCP Server
El Contrast MCP Server conecta Contrast Security con tu agente de codificación de IA para que puedas remediar vulnerabilidades, actualizar librerías inseguras y analizar la cobertura de seguridad mediante lenguaje natural.
Se presenta en dos formas.
- Hosted MCP Server es un servidor MCP remoto que Contrast ejecuta por ti. Es la ruta más sencilla para clientes de Contrast SaaS, con inicio de sesión OAuth basado en navegador y nada que instalar. Recomendado para la mayoría de los usuarios.
- Local MCP Server es el servidor de código abierto en este repositorio que tú mismo ejecutas con claves de API. Es la opción adecuada para instancias on-premises y EOP (Enterprise On-Premises).
[!WARNING] ADVERTENCIA DE SEGURIDAD CRÍTICA: Exponer datos de vulnerabilidades de Contrast a un servicio de IA que entrene con tus indicaciones puede filtrar información sensible. Utiliza el Contrast MCP Server únicamente con entornos que garanticen contractualmente el aislamiento de datos y prohíban el entrenamiento de modelos con tus entradas.
Verifica la privacidad de datos de IA: Confirma que tu acuerdo de servicio impide el entrenamiento de modelos con tus indicaciones y consulta a tu equipo de seguridad antes de compartir datos de Contrast.
NO SEGURO: Sitios públicos de LLM para consumidores (p. ej., ChatGPT gratuito, Gemini, Claude) que utilizan indicaciones para entrenamiento.
POTENCIALMENTE SEGURO: Servicios empresariales con garantías contractuales de privacidad (p. ej., Google Cloud AI, AWS Bedrock, Azure OpenAI).
Contenido
- Hosted MCP Server (recomendado)
- Herramientas disponibles
- Local MCP Server
- Indicaciones de ejemplo
- Privacidad de datos
Hosted MCP Server (recomendado)
El Hosted MCP Server, un servidor MCP remoto que Contrast opera por ti, es la forma más sencilla de conectar un agente de IA a Contrast. Apuntas tu cliente a una URL, inicias sesión a través de tu navegador y tu agente puede comenzar a hacer preguntas sobre tus datos de seguridad. No hay claves de API que copiar, ni contenedor o JAR que mantener actualizado, ni proceso local que ejecutar.
El servidor alojado es de solo lectura y está disponible ahora para Contrast SaaS.
Requisitos previos
- Una cuenta de Contrast SaaS con acceso a al menos una organización
- Un cliente MCP que admita transporte Streamable HTTP y OAuth 2.0 con PKCE (consulta Clientes compatibles)
- Un navegador web moderno para el inicio de sesión OAuth
Conexión
Agrega el servidor a Claude Code apuntándolo a tu host de Contrast seguido de /mcp.
claude mcp add --transport http contrast-hosted-mcp https://app.contrastsecurity.com/mcp
Reemplaza app.contrastsecurity.com con la URL de Contrast de tu organización si utilizas una instancia dedicada. La primera vez que tu agente llame a una herramienta, tu navegador se abrirá para el inicio de sesión. Si el inicio de sesión no comienza automáticamente, ejecuta /mcp en Claude Code y elige Authenticate para contrast-hosted-mcp. Inicias sesión con tus credenciales existentes de Contrast, eliges una organización y apruebas el acceso de lectura. Tu sesión se renueva automáticamente, por lo que normalmente inicias sesión una vez y sigues trabajando.
Para la configuración paso a paso de Claude Code, Claude Desktop, Codex CLI, GitHub Copilot CLI y opencode, consulta la guía de instalación del Hosted MCP Server.
Detalles de conexión
Cualquier cliente MCP que admita transporte Streamable HTTP y OAuth 2.0 con PKCE puede conectarse.
| Configuración | Valor |
|---|---|
| URL del endpoint | https://<your-contrast-host>/mcp (por ejemplo, https://app.contrastsecurity.com/mcp) |
| Transporte | Streamable HTTP (sin estado) |
| Método HTTP | POST |
| Autenticación | OAuth 2.0 con PKCE (S256) |
| Ámbitos OAuth | openid, profile, offline_access |
Tu cliente descubre la configuración OAuth automáticamente a través del encabezado de respuesta WWW-Authenticate, que apunta al documento de metadatos estándar /.well-known/oauth-protected-resource. Los clientes que admiten Dynamic Client Registration pueden registrarse en /oauth2/connect/register en el origen de Contrast.
Estos ámbitos OAuth cubren solo la identidad, y eso es deliberado. El token no otorga permisos de datos por sí mismo. La autorización la decide la plataforma Contrast en cada solicitud, utilizando el control de acceso basado en roles existente del usuario con sesión iniciada. Esto significa que no hay un token de ámbito amplio que un agente pueda tener o filtrar, ni un ámbito de autorización que pueda configurarse incorrectamente al momento de la conexión. Consulta Seguridad y privacidad para conocer el modelo completo.
Clientes compatibles
| Cliente | Estado |
|---|---|
| Claude Code CLI | Funcionando |
| Codex CLI | Funcionando |
| GitHub Copilot CLI | Funcionando |
| opencode | Funcionando |
| Claude Desktop | Funcionando |
| Gemini CLI | Aún no compatible, problema de compatibilidad OAuth |
| Complemento VS Code Copilot | Aún no compatible, problema de compatibilidad OAuth |
El soporte para más clientes está en progreso a medida que madura su manejo de OAuth. Si tu cliente falla durante el registro OAuth antes de que aparezca la página de inicio de sesión, generalmente es un problema de compatibilidad del cliente más que un problema con tu cuenta.
Seguridad y privacidad
El servidor alojado cambia cómo funciona el acceso sin cambiar lo que puedes ver.
- OAuth, no claves de API. Inicias sesión a través de tu navegador, por lo que no hay claves de larga duración que distribuir o almacenar en las máquinas de los desarrolladores.
- Solo lectura. Cada herramienta alojada es de solo lectura. No puedes modificar, actualizar ni eliminar datos a través del servidor alojado.
- Limitado a la organización. Cada sesión está vinculada a la única organización que seleccionas al iniciar sesión, por lo que no hay ID de organización que adivinar o configurar incorrectamente.
- Se aplican tus permisos existentes. Cada solicitud lleva tu identidad a Contrast, que aplica el mismo control de acceso basado en roles que la interfaz web. Si no puedes ver algo en Contrast, tu agente tampoco puede verlo. La autorización es una decisión en tiempo de ejecución tomada en cada solicitud, no una concesión única codificada en el token, por lo que limitar el alcance de un agente es el mismo ejercicio que limitar el alcance de su usuario.
- Cada llamada a herramienta se audita. Contrast registra cada solicitud con un identificador único, la herramienta invocada, el usuario, la organización y el resultado, lo que respalda la reconstrucción de incidentes.
- Sin almacenamiento de datos. El servidor alojado no almacena ninguno de tus datos, y tu token nunca aparece en una respuesta de herramienta.
La advertencia compartida anterior sigue aplicándose. Los resultados de las herramientas pasan a formar parte de tu conversación de IA, por lo que debes seguir la política de tu organización sobre qué datos de seguridad se pueden enviar a tu cliente y modelo de IA elegidos.
Herramientas disponibles
Ambos servidores comparten las mismas herramientas principales, por lo que la tabla siguiente los cubre juntos. Las columnas Hosted y Local muestran qué servidor proporciona cada herramienta. Tu agente llama a las herramientas automáticamente según tus preguntas.
Autenticación
| Herramienta | Descripción | Hosted | Local |
|---|---|---|---|
get_user_info | Muestra con quién has iniciado sesión y qué organización está activa | ✅ | — |
Vulnerabilidades (Assess)
| Herramienta | Descripción | Hosted | Local |
|---|---|---|---|
search_vulnerabilities | Busca vulnerabilidades en todas las aplicaciones (nivel de organización) | ✅ | ✅ |
search_app_vulnerabilities | Busca vulnerabilidades dentro de una aplicación específica con filtrado de sesiones | ✅ | ✅ |
get_vulnerability | Obtén información detallada de vulnerabilidades, incluido el stack trace y la guía de remediación | ✅ | ✅ |
list_vulnerability_types | Lista todos los tipos de vulnerabilidades disponibles para filtrar | ✅ | ✅ |
Aplicaciones
| Herramienta | Descripción | Hosted | Local |
|---|---|---|---|
search_applications | Busca aplicaciones por nombre, etiqueta o filtros de metadatos | ✅ | ✅ |
get_session_metadata | Obtén los campos de metadatos de sesión disponibles para una aplicación | ✅ | ✅ |
Servidores
| Herramienta | Descripción | Hosted | Local |
|---|---|---|---|
search_servers | Busca en el inventario de servidores el estado de los agentes y la cobertura de Protect | ✅ | ✅ |
Librerías (SCA)
| Herramienta | Descripción | Hosted | Local |
|---|---|---|---|
list_application_libraries | Lista las librerías utilizadas por una aplicación con estadísticas de uso de clases y recuentos de vulnerabilidades | ✅ | ✅ |
list_applications_by_cve | Encuentra aplicaciones afectadas por un CVE específico | ✅ | ✅ |
Protección (ADR/Protect)
| Herramienta | Descripción | Hosted | Local |
|---|---|---|---|
search_attacks | Busca eventos de ataque con filtrado por estado, tipo y reglas | ✅ | ✅ |
get_protect_rules | Obtén las reglas de protección configuradas para una aplicación | ✅ | ✅ |
Cobertura
| Herramienta | Descripción | Hosted | Local |
|---|---|---|---|
get_route_coverage | Obtén datos de cobertura de rutas que muestran rutas ejercitadas vs. descubiertas | ✅ | ✅ |
SAST (Scan)
| Herramienta | Descripción | Hosted | Local |
|---|---|---|---|
get_scan_project | Obtén detalles del proyecto SAST y recuentos de vulnerabilidades | ✅ | ✅ |
get_scan_results | Obtén resultados de escaneo SAST en formato SARIF | — | ✅ |
CVEs, Problemas, Incidentes y Observaciones
Estas herramientas están disponibles solo en el servidor alojado y requieren que la plataforma unificada de datos de Contrast (NorthStar) esté habilitada para tu organización.
| Herramienta | Descripción | Hosted | Local |
|---|---|---|---|
search_cves | Busca CVEs en tu organización para exposición y riesgo de CVE Shield | ✅ | — |
list_cve_issues | Lista aplicaciones y librerías afectadas por un CVE, un problema por par | ✅ | — |
get_cve_impact | Obtén la postura de riesgo, exposición y protección de CVE Shield en tu organización | ✅ | — |
search_issues | Busca y filtra problemas de seguridad en tu organización | ✅ | — |
get_issue | Obtén detalles completos de un problema específico | ✅ | — |
list_issue_incidents | Lista incidentes vinculados a un problema | ✅ | — |
list_issues_by_library | Lista problemas abiertos asociados con una librería de aplicación | ✅ | — |
search_incidents | Busca y filtra incidentes | ✅ | — |
get_incident | Obtén detalles completos de un incidente específico | ✅ | — |
list_incident_issues | Lista problemas vinculados a un incidente | ✅ | — |
get_observation | Obtén detalles completos de una observación específica | ✅ | — |
list_issue_observations | Lista observaciones vinculadas a un problema (paginación por cursor) | ✅ | — |
list_incident_observations | Lista observaciones vinculadas a un incidente (paginación por cursor) | ✅ | — |
Local MCP Server
El Local MCP Server es el servidor de código abierto en este repositorio. Tu cliente MCP lo inicia como un proceso local a través de stdio, se autentica con claves de API y servicio de Contrast, y se conecta a tu propia instancia de Contrast, incluidas las instancias on-premises y EOP. Úsalo cuando no puedas usar el servidor alojado o cuando necesites salida de escaneo SARIF sin procesar.
El servidor local proporciona las herramientas marcadas como Local en Herramientas disponibles anteriormente.
Inicio rápido
Requisitos previos
- Docker (recomendado) o Java 21+ para implementación JAR
- Credenciales de API de Contrast (cómo obtener credenciales de API)
VS Code (GitHub Copilot) - Instalación con un clic
Haz clic en el botón anterior para instalar automáticamente en VS Code. Para configuración manual, consulta la Guía de instalación de VS Code (GitHub Copilot).
IntelliJ IDEA (GitHub Copilot)
Agrega esto a tu archivo de configuración mcp.json y reemplaza los valores de marcador de posición con tus credenciales de 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"
}
}
}
}
📖 Guía completa de instalación de IntelliJ (GitHub Copilot) - Incluye configuración paso a paso y opción de implementación JAR
Otros asistentes de IA
- Claude Code - La herramienta CLI oficial de Anthropic
- Claude Desktop - Aplicación independiente de Claude
- Complemento Cline - Asistente de IA alternativo para VS Code
- Todos los demás hosts MCP - Guías de instalación completas para oterm y más
Más configuración y solución de problemas
La obtención del archivo JAR (descarga, verificación de atestación y compilación desde el código fuente), la configuración del proxy y la resolución de problemas se han movido a la Guía del servidor MCP local.
Prompts de ejemplo
Estos prompts funcionan con cualquiera de los dos servidores, excepto donde una sección indique lo contrario.
Para el desarrollador
Remediar vulnerabilidades en el código
- Enumera las vulnerabilidades de la Aplicación Y.
- Dame los detalles de la vulnerabilidad X en la Aplicación Y.
- Revisa la vulnerabilidad X y corrígela.
Remediación de bibliotecas de terceros
- ¿Qué bibliotecas de la Aplicación X tienen vulnerabilidades altas o críticas y se usan activamente?
- Actualiza la biblioteca X, que tiene una vulnerabilidad crítica, a la versión segura.
- ¿Qué bibliotecas de la Aplicación X no se están utilizando?
Recuperar aplicaciones por etiqueta
- Por favor, dame las aplicaciones etiquetadas con "backend".
Recuperar aplicaciones por metadatos
- Por favor, dame las aplicaciones con los metadatos "dev-team" y "backend-team".
Recuperar vulnerabilidades por metadatos de sesión
- Dame los metadatos de sesión de la Aplicación X.
- Dame las vulnerabilidades de la última sesión de la Aplicación X.
- Dame las vulnerabilidades de los metadatos de sesión "Branch Name" "feature/some-new-fix" para la Aplicación X.
- Dame la cobertura de rutas de la última sesión de la Aplicación X.
- Dame la cobertura de rutas de los metadatos de sesión "Branch Name" "feature/some-new-fix" para la Aplicación X.
Para el profesional de seguridad
- Por favor, dame un desglose de las aplicaciones y servidores vulnerables a CVE-xxxx-xxxx.
- Enumera las bibliotecas de la aplicación llamada xxx y dime qué versión de commons-collections se está utilizando.
- ¿Qué vulnerabilidades de la Aplicación X están siendo bloqueadas por una regla de Protect o ADR?
- ¿Qué servidores de producción no tienen Protect habilitado?
- Muéstrame los servidores cuyos agentes están desactualizados.
- Muéstrame los eventos de ataque de los últimos 7 días y dime cuáles fueron explotados.
Servidor alojado con la plataforma de datos unificada (NorthStar)
Estos prompts requieren el servidor alojado y la plataforma de datos unificada de Contrast (NorthStar) habilitada para tu organización.
- ¿Qué CVEs representan el mayor riesgo en toda mi organización?
- ¿Está mi organización protegida contra CVE-xxxx-xxxx?
- ¿Qué aplicaciones y bibliotecas se ven afectadas por CVE-xxxx-xxxx?
- Muéstrame los problemas de seguridad abiertos de la Aplicación X.
- Dame los detalles del incidente X y los problemas vinculados a él.
- ¿Qué observaciones proporcionan evidencia para el problema X?
Privacidad de datos
El Contrast MCP Server proporciona un puente entre tus Datos de Contrast y el Agente de IA/LLM de tu elección. Al usar el servidor MCP de Contrast, estarás proporcionando tus Datos de Contrast a tu Agente de IA/LLM; es tu responsabilidad asegurarte de que el Agente de IA/LLM que uses cumpla con tu política de privacidad de datos. Dependiendo de las preguntas que hagas, se proporcionará la siguiente información a tu Agente de IA/LLM.
- Detalles de la aplicación
- Configuración de reglas de la aplicación
- Detalles de vulnerabilidades
- Datos de cobertura de rutas
- Detalles de eventos de ataque de ADR/Protect
- Inventario de servidores y detalles de agentes (nombres de host, rutas, versiones de agentes, entornos, niveles de registro y etiquetas)
- Datos de problemas, incidentes, observaciones y CVE Shield (servidor alojado con NorthStar)
Registro de cambios
Consulta CHANGELOG.md para ver el historial completo de versiones, incluidos los cambios importantes y las nuevas funciones.