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
-
Clona el repositorio:
git clone https://github.com/Cyreslab-AI/exploitdb-mcp-server.git cd exploitdb-mcp-server -
Instala las dependencias:
npm install -
Compila el proyecto:
npm run build -
Configura el servidor:
- Crea un archivo
.enven 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.)
- Crea un archivo
-
Inicializa la base de datos:
npm run update-dbNota: 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.
-
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
- search_exploits — Búsqueda general con múltiples filtros
- get_exploit — Obtén información detallada sobre un exploit específico
- find_by_cve — Encuentra exploits por ID de CVE
- get_recent_exploits — Obtén los exploits añadidos recientemente
- get_statistics — Obtén estadísticas de la base de datos
Herramientas de búsqueda avanzada
- search_by_platform — Busca exploits para una plataforma específica con filtros
- search_by_type — Busca por tipo de exploit (webapps, remote, local, dos, hardware)
- search_by_author — Encuentra todos los exploits de un autor específico
- search_by_date_range — Encuentra exploits dentro de un rango de fechas
- search_by_tags — Busca por etiquetas generadas (sql injection, xss, etc.)
Herramientas de análisis e inteligencia
- get_platform_statistics — Obtén estadísticas detalladas para una plataforma específica
- get_trending_exploits — Encuentra exploits añadidos recientemente (período de tiempo configurable)
- compare_exploits — Compara múltiples exploits en paralelo
- get_exploit_timeline — Obtén una línea de tiempo cronológica de exploits
Herramientas de utilidad
- batch_get_exploits — Recupera múltiples exploits de forma eficiente (hasta 50)
- get_related_exploits — Encuentra exploits relacionados por plataforma, autor, CVE o etiquetas
- validate_exploit_id — Comprueba si existe un ID de exploit
- 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 CVEauthor: Filtra por nombre de autorstart_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:
| Variable | Descripción | Valor predeterminado |
|---|---|---|
CLONE_REPOSITORY | Si se debe clonar el repositorio de ExploitDB | false |
REPOSITORY_URL | URL del repositorio de ExploitDB | https://gitlab.com/exploit-database/exploitdb.git |
CSV_URL | URL del archivo CSV de ExploitDB | https://gitlab.com/exploit-database/exploitdb/-/raw/main/files_exploits.csv |
DATA_DIR | Directorio para almacenar datos | ./data |
DB_PATH | Ruta a la base de datos SQLite | ./data/exploitdb.sqlite |
UPDATE_INTERVAL | Frecuencia de actualización en horas (0 para desactivar) | 24 |
MAX_RESULTS | Número máximo de resultados por consulta | 10 |
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_publisheddel CSV, con respaldo endate_added,date_updatedo 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
- Offensive Security por mantener la Exploit Database
- Model Context Protocol por permitir que los asistentes de IA accedan a herramientas externas
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.