Contrast MCP Server

Remediar vulnerabilidades encontradas por productos de Contrast usando capacidades de LLM y Coding Agent.

Documentación

Contrast MCP Server

Java CI with Gradle License

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)

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ónValor
URL del endpointhttps://<your-contrast-host>/mcp (por ejemplo, https://app.contrastsecurity.com/mcp)
TransporteStreamable HTTP (sin estado)
Método HTTPPOST
AutenticaciónOAuth 2.0 con PKCE (S256)
Ámbitos OAuthopenid, 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

ClienteEstado
Claude Code CLIFuncionando
Codex CLIFuncionando
GitHub Copilot CLIFuncionando
opencodeFuncionando
Claude DesktopFuncionando
Gemini CLIAún no compatible, problema de compatibilidad OAuth
Complemento VS Code CopilotAú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

HerramientaDescripciónHostedLocal
get_user_infoMuestra con quién has iniciado sesión y qué organización está activa✅—

Vulnerabilidades (Assess)

HerramientaDescripciónHostedLocal
search_vulnerabilitiesBusca vulnerabilidades en todas las aplicaciones (nivel de organización)✅✅
search_app_vulnerabilitiesBusca vulnerabilidades dentro de una aplicación específica con filtrado de sesiones✅✅
get_vulnerabilityObtén información detallada de vulnerabilidades, incluido el stack trace y la guía de remediación✅✅
list_vulnerability_typesLista todos los tipos de vulnerabilidades disponibles para filtrar✅✅

Aplicaciones

HerramientaDescripciónHostedLocal
search_applicationsBusca aplicaciones por nombre, etiqueta o filtros de metadatos✅✅
get_session_metadataObtén los campos de metadatos de sesión disponibles para una aplicación✅✅

Servidores

HerramientaDescripciónHostedLocal
search_serversBusca en el inventario de servidores el estado de los agentes y la cobertura de Protect✅✅

Librerías (SCA)

HerramientaDescripciónHostedLocal
list_application_librariesLista las librerías utilizadas por una aplicación con estadísticas de uso de clases y recuentos de vulnerabilidades✅✅
list_applications_by_cveEncuentra aplicaciones afectadas por un CVE específico✅✅

Protección (ADR/Protect)

HerramientaDescripciónHostedLocal
search_attacksBusca eventos de ataque con filtrado por estado, tipo y reglas✅✅
get_protect_rulesObtén las reglas de protección configuradas para una aplicación✅✅

Cobertura

HerramientaDescripciónHostedLocal
get_route_coverageObtén datos de cobertura de rutas que muestran rutas ejercitadas vs. descubiertas✅✅

SAST (Scan)

HerramientaDescripciónHostedLocal
get_scan_projectObtén detalles del proyecto SAST y recuentos de vulnerabilidades✅✅
get_scan_resultsObté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.

HerramientaDescripciónHostedLocal
search_cvesBusca CVEs en tu organización para exposición y riesgo de CVE Shield✅—
list_cve_issuesLista aplicaciones y librerías afectadas por un CVE, un problema por par✅—
get_cve_impactObtén la postura de riesgo, exposición y protección de CVE Shield en tu organización✅—
search_issuesBusca y filtra problemas de seguridad en tu organización✅—
get_issueObtén detalles completos de un problema específico✅—
list_issue_incidentsLista incidentes vinculados a un problema✅—
list_issues_by_libraryLista problemas abiertos asociados con una librería de aplicación✅—
search_incidentsBusca y filtra incidentes✅—
get_incidentObtén detalles completos de un incidente específico✅—
list_incident_issuesLista problemas vinculados a un incidente✅—
get_observationObtén detalles completos de una observación específica✅—
list_issue_observationsLista observaciones vinculadas a un problema (paginación por cursor)✅—
list_incident_observationsLista 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

VS Code (GitHub Copilot) - Instalación con un clic

Install in VS Code

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

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.