ExploitDB MCP Server

Consulta exploits y vulnerabilidades de seguridad en la base de datos ExploitDB.

Documentación

Servidor MCP de ExploitDB

Un servidor de Model Context Protocol que proporciona acceso a la funcionalidad de ExploitDB, desarrollado por Cyreslab.ai. Este servidor permite a asistentes de IA como Claude consultar información sobre exploits y vulnerabilidades de seguridad, mejorando las capacidades de investigación en ciberseguridad e inteligencia de amenazas.

Repositorio de GitHub: https://github.com/Cyreslab-AI/exploitdb-mcp-server Contacto: contact@cyreslab.ai

Características

  • Búsqueda de exploits: Busca exploits por palabras clave, IDs de CVE, plataformas y más
  • Detalles de exploits: Obtén información completa sobre exploits específicos, incluido el código
  • Consulta de CVE: Encuentra todos los exploits relacionados con IDs de CVE específicos
  • Exploits recientes: Realiza un seguimiento de los exploits recién añadidos
  • Estadísticas: Obtén información sobre la distribución de exploits por plataforma, tipo y año
  • Actualizaciones automáticas: Mantén la base de datos actualizada con actualizaciones programadas

Instalación

Requisitos previos

  • Node.js (v16 o superior)
  • npm (v7 o superior)

Pasos de instalación

  1. Clona el repositorio:

    git clone https://github.com/Cyreslab-AI/exploitdb-mcp-server.git
    cd exploitdb-mcp-server
    
  2. Instala las dependencias:

    npm install
    
  3. Compila el proyecto:

    npm run build
    
  4. Configura el servidor:

    • Crea un archivo .env en el directorio raíz basándote en .env.example
    • Ajusta la configuración según sea necesario (directorio de datos, frecuencia de actualización, etc.)
  5. Inicializa la base de datos:

    npm run update-db
    

    Nota: La actualización inicial de la base de datos puede tardar varios minutos, ya que procesa alrededor de 47 000 exploits del archivo CSV de ExploitDB. El script gestiona los datos faltantes o malformados de forma elegante utilizando valores de respaldo para los campos obligatorios.

  6. Ejecuta el servidor:

    node build/index.js
    

Configuración de MCP

Para usar este servidor con Claude u otros asistentes compatibles con MCP, añádelo a tu configuración de MCP:

{
  "mcpServers": {
    "mcp-exploitdb-server": {
      "command": "node",
      "args": ["/path/to/exploitdb-mcp-server/build/index.js"]
    }
  }
}

Herramientas disponibles

El servidor MCP de ExploitDB proporciona 18 herramientas completas para consultar y analizar datos de exploits:

Herramientas principales de búsqueda

  1. search_exploits — Búsqueda general con múltiples filtros
  2. get_exploit — Obtén información detallada sobre un exploit específico
  3. find_by_cve — Encuentra exploits por ID de CVE
  4. get_recent_exploits — Obtén los exploits añadidos recientemente
  5. get_statistics — Obtén estadísticas de la base de datos

Herramientas de búsqueda avanzada

  1. search_by_platform — Busca exploits para una plataforma específica con filtros
  2. search_by_type — Busca por tipo de exploit (webapps, remote, local, dos, hardware)
  3. search_by_author — Encuentra todos los exploits de un autor específico
  4. search_by_date_range — Encuentra exploits dentro de un rango de fechas
  5. search_by_tags — Busca por etiquetas generadas (sql injection, xss, etc.)

Herramientas de análisis e inteligencia

  1. get_platform_statistics — Obtén estadísticas detalladas para una plataforma específica
  2. get_trending_exploits — Encuentra exploits añadidos recientemente (período de tiempo configurable)
  3. compare_exploits — Compara múltiples exploits en paralelo
  4. get_exploit_timeline — Obtén una línea de tiempo cronológica de exploits

Herramientas de utilidad

  1. batch_get_exploits — Recupera múltiples exploits de forma eficiente (hasta 50)
  2. get_related_exploits — Encuentra exploits relacionados por plataforma, autor, CVE o etiquetas
  3. validate_exploit_id — Comprueba si existe un ID de exploit
  4. export_search_results — Exporta resultados de búsqueda en formato JSON o CSV

Ejemplos de uso

Buscar exploits

Usa la herramienta search_exploits para buscar exploits en la base de datos:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_exploits</tool_name>
<arguments>
{
  "query": "wordpress plugin",
  "platform": "php",
  "limit": 5
}
</arguments>
</use_mcp_tool>

Parámetros de búsqueda adicionales:

  • type: Filtra por tipo de exploit (p. ej., webapps, remote, local)
  • cve: Filtra por ID de CVE
  • author: Filtra por nombre de autor
  • start_date/end_date: Filtra por rango de fechas (AAAA-MM-DD)
  • verified: Filtra por estado verificado (true/false)
  • offset: Para paginación

Obtener detalles de un exploit

Usa la herramienta get_exploit para recuperar información detallada sobre un exploit específico:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_exploit</tool_name>
<arguments>
{
  "id": 12345,
  "include_code": true
}
</arguments>
</use_mcp_tool>

Encontrar exploits por CVE

Usa la herramienta find_by_cve para encontrar todos los exploits relacionados con un CVE específico:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>find_by_cve</tool_name>
<arguments>
{
  "cve": "CVE-2021-44228",
  "limit": 10
}
</arguments>
</use_mcp_tool>

Obtener exploits recientes

Usa la herramienta get_recent_exploits para recuperar los exploits añadidos recientemente:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_recent_exploits</tool_name>
<arguments>
{
  "limit": 10
}
</arguments>
</use_mcp_tool>

Obtener estadísticas

Usa la herramienta get_statistics para obtener información sobre los exploits en la base de datos:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_statistics</tool_name>
<arguments>
{}
</arguments>
</use_mcp_tool>

Buscar por plataforma

Busca exploits para una plataforma específica con filtros avanzados:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_by_platform</tool_name>
<arguments>
{
  "platform": "php",
  "type": "webapps",
  "verified": true,
  "limit": 10
}
</arguments>
</use_mcp_tool>

Buscar por autor

Encuentra todos los exploits de un autor específico:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_by_author</tool_name>
<arguments>
{
  "author": "Offensive Security",
  "limit": 10
}
</arguments>
</use_mcp_tool>

Buscar por rango de fechas

Encuentra exploits dentro de un rango de fechas específico:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_by_date_range</tool_name>
<arguments>
{
  "start_date": "2024-01-01",
  "end_date": "2024-12-31",
  "platform": "windows",
  "limit": 20
}
</arguments>
</use_mcp_tool>

Buscar por etiquetas

Busca exploits por etiquetas generadas:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_by_tags</tool_name>
<arguments>
{
  "tags": ["sql injection", "rce"],
  "match_all": false,
  "limit": 10
}
</arguments>
</use_mcp_tool>

Obtener exploits en tendencia

Encuentra exploits añadidos recientemente:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_trending_exploits</tool_name>
<arguments>
{
  "days": 30,
  "limit": 10
}
</arguments>
</use_mcp_tool>

Comparar exploits

Compara múltiples exploits en paralelo:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>compare_exploits</tool_name>
<arguments>
{
  "ids": [12345, 12346, 12347]
}
</arguments>
</use_mcp_tool>

Obtener exploits relacionados

Encuentra exploits relacionados con un exploit específico:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_related_exploits</tool_name>
<arguments>
{
  "id": 12345,
  "relation_type": "platform",
  "limit": 10
}
</arguments>
</use_mcp_tool>

Obtener exploits por lotes

Recupera múltiples exploits de forma eficiente:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>batch_get_exploits</tool_name>
<arguments>
{
  "ids": [12345, 12346, 12347, 12348],
  "include_code": false
}
</arguments>
</use_mcp_tool>

Exportar resultados de búsqueda

Exporta resultados de búsqueda en formato CSV o JSON:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>export_search_results</tool_name>
<arguments>
{
  "query": "wordpress",
  "format": "csv",
  "platform": "php",
  "limit": 100
}
</arguments>
</use_mcp_tool>

Opciones de configuración

El servidor puede configurarse mediante variables de entorno o un archivo .env:

VariableDescripciónValor predeterminado
CLONE_REPOSITORYSi se debe clonar el repositorio de ExploitDBfalse
REPOSITORY_URLURL del repositorio de ExploitDBhttps://gitlab.com/exploit-database/exploitdb.git
CSV_URLURL del archivo CSV de ExploitDBhttps://gitlab.com/exploit-database/exploitdb/-/raw/main/files_exploits.csv
DATA_DIRDirectorio para almacenar datos./data
DB_PATHRuta a la base de datos SQLite./data/exploitdb.sqlite
UPDATE_INTERVALFrecuencia de actualización en horas (0 para desactivar)24
MAX_RESULTSNúmero máximo de resultados por consulta10

Fuentes de datos

Este servidor utiliza datos de la Exploit Database, mantenida por Offensive Security. Los datos se descargan directamente del archivo CSV o se clonan desde el repositorio de GitLab de ExploitDB.

Procesamiento de datos

El servidor maneja automáticamente varios problemas de calidad de datos:

  • Gestión de fechas: Utiliza date_published del CSV, con respaldo en date_added, date_updated o una fecha predeterminada si faltan todos
  • Campos faltantes: Proporciona valores predeterminados sensatos para los campos obligatorios (autor, tipo, plataforma) cuando los datos están incompletos
  • Extracción de CVE: Extrae automáticamente identificadores de CVE de las descripciones de exploits
  • Generación de etiquetas: Genera etiquetas relevantes basadas en las descripciones de exploits para mejorar la capacidad de búsqueda

La base de datos normalmente contiene:

  • Más de 46 000 exploits que abarcan desde 1988 hasta la actualidad
  • Más de 33 000 exploits verificados
  • Cobertura en más de 60 plataformas (PHP, Windows, Linux, etc.)
  • Más de 27 000 exploits de aplicaciones web
  • Metadatos completos que incluyen autores, fechas, plataformas y referencias CVE

Licencia

Este proyecto está licenciado bajo la Licencia MIT; consulta el archivo LICENSE para obtener más detalles.

Agradecimientos

Contribuciones

¡Las contribuciones son bienvenidas! No dudes en enviar una solicitud de extracción (Pull Request).

¿Tienes sugerencias de funciones o has encontrado un error? Abre un problema en nuestro repositorio de GitHub o contáctanos directamente en contact@cyreslab.ai.