DefectDojo MCP Server

MIT License
1
  • Linux
  • Apple

Integrations

  • Provides a Model Context Protocol (MCP) server implementation for DefectDojo (built on Django), enabling interaction with DefectDojo's vulnerability management system, including tools for managing findings, products, and engagements.

Servidor MCP de DefectDojo

Este proyecto proporciona una implementación de servidor del Protocolo de Contexto de Modelo (MCP) para DefectDojo , una popular herramienta de gestión de vulnerabilidades de código abierto. Permite que los agentes de IA y otros clientes MCP interactúen con la API de DefectDojo mediante programación.

Características

Este servidor MCP expone herramientas para administrar entidades clave de DefectDojo:

  • Resultados: obtener, buscar, crear, actualizar el estado y agregar notas.
  • Productos: Listado de productos disponibles.
  • Compromisos: enumerar, recuperar detalles, crear, actualizar y cerrar compromisos.

Instalación y funcionamiento

Hay un par de formas de ejecutar este servidor:

Uso de uvx (recomendado)

uvx ejecuta aplicaciones Python en entornos virtuales temporales, instalando dependencias automáticamente.

uvx defectdojo-mcp

Usando pip

Puede instalar el paquete en su entorno Python usando pip .

# Install directly from the cloned source code directory pip install . # Or, if the package is published on PyPI pip install defectdojo-mcp

Una vez instalado a través de pip, ejecute el servidor usando:

defectdojo-mcp

Configuración

El servidor requiere las siguientes variables de entorno para conectarse a su instancia de DefectDojo:

  • DEFECTDOJO_API_TOKEN ( obligatorio ): su token de API de DefectDojo para autenticación.
  • DEFECTDOJO_API_BASE ( obligatorio ): la URL base de su instancia de DefectDojo (por ejemplo, https://your-defectdojo-instance.com ).

Puede configurarlos en el archivo de configuración de su cliente MCP. A continuación, se muestra un ejemplo con el comando uvx :

{ "mcpServers": { "defectdojo": { "command": "uvx", "args": ["defectdojo-mcp"], "env": { "DEFECTDOJO_API_TOKEN": "YOUR_API_TOKEN_HERE", "DEFECTDOJO_API_BASE": "https://your-defectdojo-instance.com" } } } }

Si instaló el paquete usando pip , la configuración se vería así:

{ "mcpServers": { "defectdojo": { "command": "defectdojo-mcp", "args": [], "env": { "DEFECTDOJO_API_TOKEN": "YOUR_API_TOKEN_HERE", "DEFECTDOJO_API_BASE": "https://your-defectdojo-instance.com" } } } }

Herramientas disponibles

Las siguientes herramientas están disponibles a través de la interfaz MCP:

  • get_findings : recupera hallazgos con filtrado (nombre del producto, estado, gravedad) y paginación (límite, desplazamiento).
  • search_findings : Busque resultados mediante una consulta de texto, con filtrado y paginación.
  • update_finding_status : cambia el estado de un hallazgo específico (por ejemplo, Activo, Verificado, Falso positivo).
  • add_finding_note : agrega una nota textual a un hallazgo.
  • create_finding : crea un nuevo hallazgo asociado con una prueba.
  • list_products : Lista de productos con filtrado (nombre, tipo_de_producto) y paginación.
  • list_engagements : lista de interacciones con filtrado (product_id, estado, nombre) y paginación.
  • get_engagement : obtiene detalles de un compromiso específico por su ID.
  • create_engagement : crea un nuevo compromiso para un producto.
  • update_engagement : Modificar los detalles de un compromiso existente.
  • close_engagement : Marcar un compromiso como completado.

(Consulte el contenido README original a continuación para ver ejemplos de uso detallados de cada herramienta)

Ejemplos de uso

(Nota: Estos ejemplos suponen un entorno de cliente MCP capaz de llamar use_mcp_tool )

Obtener resultados

# Get active, high-severity findings (limit 10) result = await use_mcp_tool("defectdojo", "get_findings", { "status": "Active", "severity": "High", "limit": 10 })

Resultados de la búsqueda

# Search for findings containing 'SQL Injection' result = await use_mcp_tool("defectdojo", "search_findings", { "query": "SQL Injection" })

Actualizar el estado del hallazgo

# Mark finding 123 as Verified result = await use_mcp_tool("defectdojo", "update_finding_status", { "finding_id": 123, "status": "Verified" })

Agregar nota al hallazgo

result = await use_mcp_tool("defectdojo", "add_finding_note", { "finding_id": 123, "note": "Confirmed vulnerability on staging server." })

Crear hallazgo

result = await use_mcp_tool("defectdojo", "create_finding", { "title": "Reflected XSS in Search Results", "test_id": 55, # ID of the associated test "severity": "Medium", "description": "User input in search is not properly sanitized, leading to XSS.", "cwe": 79 })

Lista de productos

# List products containing 'Web App' in their name result = await use_mcp_tool("defectdojo", "list_products", { "name": "Web App", "limit": 10 })

Lista de compromisos

# List 'In Progress' engagements for product ID 42 result = await use_mcp_tool("defectdojo", "list_engagements", { "product_id": 42, "status": "In Progress" })

Conseguir compromiso

result = await use_mcp_tool("defectdojo", "get_engagement", { "engagement_id": 101 })

Crear compromiso

result = await use_mcp_tool("defectdojo", "create_engagement", { "product_id": 42, "name": "Q2 Security Scan", "target_start": "2025-04-01", "target_end": "2025-04-15", "status": "Not Started" })

Actualizar el compromiso

result = await use_mcp_tool("defectdojo", "update_engagement", { "engagement_id": 101, "status": "In Progress", "description": "Scan initiated." })

Compromiso cercano

result = await use_mcp_tool("defectdojo", "close_engagement", { "engagement_id": 101 })

Desarrollo

Configuración

  1. Clonar el repositorio.
  2. Se recomienda utilizar un entorno virtual:
    python -m venv .venv source .venv/bin/activate # On Windows use `.venv\Scripts\activate`
  3. Instalar dependencias, incluidas las dependencias de desarrollo:
    pip install -e ".[dev]"

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

Contribuyendo

¡Agradecemos sus contribuciones! No dude en abrir un problema para solucionar errores, solicitar funciones o hacer preguntas. Si desea contribuir con código, primero abra un problema para discutir los cambios propuestos.

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Proporciona una implementación de servidor de Protocolo de contexto de modelo que permite a los agentes de IA y otros clientes de MCP interactuar programáticamente con DefectDojo, una herramienta de gestión de vulnerabilidades, para administrar hallazgos, productos y compromisos.

  1. Features
    1. Installation & Running
      1. Using uvx (Recommended)
      2. Using pip
    2. Configuration
      1. Available Tools
        1. Usage Examples
          1. Get Findings
          2. Search Findings
          3. Update Finding Status
          4. Add Note to Finding
          5. Create Finding
          6. List Products
          7. List Engagements
          8. Get Engagement
          9. Create Engagement
          10. Update Engagement
          11. Close Engagement
        2. Development
          1. Setup
        3. License
          1. Contributing
            ID: exlay0zmev