Skip to main content
Glama

Servidor MCP de DefectDojo

Versión de PyPI

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.

Related MCP server: DeepSource MCP Server

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

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.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jamiesonio/defectdojo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server