cortex-mcp
cortex-mcp
Un servidor MCP (Model Context Protocol) para Cortex de StrangeBee/TheHive Project. Cortex automatiza el análisis de observables (IP, URL, hashes, dominios, correos electrónicos, archivos) mediante analizadores y ejecuta acciones de respuesta a través de respondedores. Este servidor MCP expone toda la canalización de análisis y administración de Cortex a los LLM.
Características
31 herramientas MCP que cubren toda la superficie de la API de Cortex
4 recursos MCP para explorar el estado de Cortex
4 prompts MCP con flujos de trabajo guiados (configuración, investigación, triaje)
Ciclo de vida completo de analizador/respondedor: explorar definiciones, habilitar, configurar, deshabilitar
Detección automática de tipos de datos de observables (IP, dominio, hash, URL, correo electrónico)
Análisis masivo en todos los analizadores aplicables con agregación de taxonomía
Limpieza de trabajos con soporte para simulacros (dry-run)
Gestión de claves API de usuario (crear, renovar, recuperar)
CRUD de organizaciones con gestión de estado
Soporte para doble clave API: operaciones a nivel de organización + administración de superadministrador
Requisitos previos
Node.js 20 o superior
Una instancia de Cortex en ejecución (se recomienda v3.x)
Una clave API de Cortex con los permisos adecuados
Instalación
git clone https://github.com/solomonneas/cortex-mcp.git
cd cortex-mcp
npm install
npm run buildConfiguración
Variable | Requerido | Predeterminado | Descripción |
| Sí | - | URL base de Cortex (ej. |
| Sí | - | Clave API para operaciones normales (nivel de administrador de org) |
| No | - | Clave API de superadministrador para gestión de org/usuario/definición |
| No |
| Establecer en |
| No |
| Tiempo de espera de la solicitud en segundos |
Uso
Claude Desktop
Añadir a ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) o %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"cortex": {
"command": "cortex-mcp",
"env": {
"CORTEX_URL": "http://cortex.example.com:9001",
"CORTEX_API_KEY": "your-org-admin-key",
"CORTEX_SUPERADMIN_KEY": "your-superadmin-key"
}
}
}
}Claude Code
claude mcp add cortex \
--env CORTEX_URL=http://cortex.example.com:9001 \
--env CORTEX_API_KEY=your-org-admin-key \
--env CORTEX_SUPERADMIN_KEY=your-superadmin-key \
-- cortex-mcpAñada --scope user para que esté disponible desde cualquier directorio en lugar de solo el proyecto actual.
OpenClaw
Si está ejecutando desde una descarga de código fuente en lugar del binario instalado por npm, apunte command/args al dist/index.js compilado:
openclaw mcp set cortex '{
"command": "node",
"args": ["/absolute/path/to/cortex-mcp/dist/index.js"],
"env": {
"CORTEX_URL": "http://cortex.example.com:9001",
"CORTEX_API_KEY": "your-org-admin-key",
"CORTEX_SUPERADMIN_KEY": "your-superadmin-key"
}
}'O, con la instalación global de npm:
openclaw mcp set cortex '{
"command": "cortex-mcp",
"env": {
"CORTEX_URL": "http://cortex.example.com:9001",
"CORTEX_API_KEY": "your-org-admin-key",
"CORTEX_SUPERADMIN_KEY": "your-superadmin-key"
}
}'Luego reinicie la puerta de enlace de OpenClaw para que se detecte el nuevo servidor:
systemctl --user restart openclaw-gateway
openclaw mcp list # confirm "cortex" is registeredHermes Agent
Hermes Agent lee la configuración de MCP desde ~/.hermes/config.yaml bajo la clave mcp_servers. Añada una entrada:
mcp_servers:
cortex:
command: "cortex-mcp"
env:
CORTEX_URL: "http://cortex.example.com:9001"
CORTEX_API_KEY: "your-org-admin-key"
CORTEX_SUPERADMIN_KEY: "your-superadmin-key"O, al ejecutar desde una descarga de código fuente en lugar de la instalación global de npm:
mcp_servers:
cortex:
command: "node"
args: ["/absolute/path/to/cortex-mcp/dist/index.js"]
env:
CORTEX_URL: "http://cortex.example.com:9001"
CORTEX_API_KEY: "your-org-admin-key"
CORTEX_SUPERADMIN_KEY: "your-superadmin-key"Luego recargue MCP desde dentro de una sesión de Hermes:
/reload-mcpCodex CLI
Codex CLI registra servidores MCP mediante codex mcp add:
codex mcp add cortex \
--env CORTEX_URL=http://cortex.example.com:9001 \
--env CORTEX_API_KEY=your-org-admin-key \
--env CORTEX_SUPERADMIN_KEY=your-superadmin-key \
-- cortex-mcpO, al ejecutar desde una descarga de código fuente:
codex mcp add cortex \
--env CORTEX_URL=http://cortex.example.com:9001 \
--env CORTEX_API_KEY=your-org-admin-key \
--env CORTEX_SUPERADMIN_KEY=your-superadmin-key \
-- node /absolute/path/to/cortex-mcp/dist/index.jsCodex escribe la entrada en ~/.codex/config.toml bajo [mcp_servers.cortex]. Verifique con:
codex mcp listIndependiente
export CORTEX_URL=http://cortex.example.com:9001
export CORTEX_API_KEY=your-org-admin-key
npm startHerramientas MCP (31)
Estado
Herramienta | Descripción |
| Obtener el estado de salud, la versión y la configuración de la instancia de Cortex |
Herramientas de analizador
Herramienta | Descripción |
| Listar todos los analizadores habilitados, opcionalmente filtrados por tipo de datos |
| Obtener detalles sobre un analizador específico por ID |
| Enviar un observable a un analizador específico para su análisis |
| Ejecutar un analizador por nombre en lugar de ID (envoltorio de conveniencia) |
| Enviar un archivo (desde ruta o base64) a un analizador para su análisis |
Herramientas de definición de analizador
Herramienta | Descripción |
| Explorar más de 260 definiciones de analizadores disponibles con filtrado (por tipo de datos, gratuito/sin configuración, búsqueda) |
| Habilitar una definición de analizador en la organización actual con configuración |
| Deshabilitar (eliminar) un analizador habilitado |
Herramientas de trabajo
Herramienta | Descripción |
| Obtener el estado y los detalles de un trabajo de análisis |
| Obtener el informe completo de un trabajo de análisis completado |
| Esperar a que un trabajo se complete y devolver el informe |
| Listar trabajos de análisis recientes con filtros opcionales |
| Obtener artefactos (IOC extraídos) de un trabajo completado |
| Eliminar un trabajo específico |
| Eliminar trabajos de forma masiva por estado o antigüedad (con simulacro) |
Herramientas de respondedor
Herramienta | Descripción |
| Listar todos los respondedores habilitados, opcionalmente filtrados por tipo de datos |
| Ejecutar una acción de respondedor contra una entidad de TheHive |
Herramientas de definición de respondedor
Herramienta | Descripción |
| Explorar más de 137 definiciones de respondedores disponibles con filtrado |
| Habilitar una definición de respondedor con configuración |
| Deshabilitar (eliminar) un respondedor habilitado |
Operaciones masivas
Herramienta | Descripción |
| Ejecutar TODOS los analizadores aplicables con tipo de datos detectado automáticamente y resultados de taxonomía agregados |
Gestión de organizaciones (superadministrador)
Herramienta | Descripción |
| Listar todas las organizaciones |
| Obtener detalles de la organización |
| Crear una nueva organización |
| Actualizar la descripción o el estado de la organización |
Gestión de usuarios (superadministrador)
Herramienta | Descripción |
| Listar todos los usuarios en todas las organizaciones |
| Obtener detalles del usuario |
| Crear un nuevo usuario en una organización |
| Generar una nueva clave API para un usuario (invalida la anterior) |
| Recuperar la clave API actual de un usuario |
Recursos MCP (4)
URI | Descripción |
| Analizadores habilitados con capacidades |
| Más de 260 definiciones de analizadores disponibles con requisitos de configuración |
| Más de 137 definiciones de respondedores disponibles con requisitos de configuración |
| Últimos 50 trabajos de análisis |
Prompts MCP (4)
Prompt | Descripción |
| Flujo de trabajo guiado para analizar un observable a través de Cortex |
| Flujo de trabajo de investigación profunda para un IOC sospechoso |
| Asistente de configuración guiado para instancias nuevas de Cortex (habilitar analizadores gratuitos, configurar claves API) |
| Flujo de trabajo estructurado de triaje de alertas con análisis de múltiples observables y evaluación de riesgos |
Ejemplos
Configurar analizadores desde cero
1. Use cortex_list_analyzer_definitions with freeOnly=true to find analyzers
that need no API keys.
2. Use cortex_enable_analyzer to enable "Abuse_Finder_3_0" with empty config.
3. Use cortex_analyze_observable with data "8.8.8.8" to analyze the IP.Detectar automáticamente el tipo de observable
Use cortex_analyze_observable with data "185.220.101.42"
(no dataType needed - auto-detects as IP)Limpiar trabajos antiguos fallidos
Use cortex_cleanup_jobs with status "Failure", dryRun true to preview,
then dryRun false to delete.Analizar un archivo
Use cortex_run_analyzer_file with analyzerId "Yara_3_0",
filePath "/tmp/suspicious.exe" to scan with YARA rules.Gestionar claves API
Use cortex_renew_user_key with userId "analyst1" to rotate their API key.Triar una alerta de seguridad
Use the triage-alert prompt with alertDescription "Suspicious outbound traffic
detected" and observables "185.220.101.42, evil.example.com, 44d88612fea8a8f36de82e1278abb02f"Tipos de datos admitidos
Tipo | Ejemplos | Detectado automáticamente |
|
| ✅ |
|
| ✅ |
|
| ✅ |
| MD5, SHA1, SHA256, SHA512 | ✅ |
|
| ✅ |
|
| Como dominio |
|
| Manual |
|
| Manual |
| Cargas de archivos binarios | Manual |
| CVE, tipos personalizados | Manual |
Pruebas
npm test # Unit tests (36 tests)
npm run test:watch # Watch mode
npm run lint # Type check
# Integration tests (requires live Cortex instance)
CORTEX_URL=http://cortex:9001 \
CORTEX_API_KEY=your-key \
CORTEX_SUPERADMIN_KEY=your-superadmin-key \
npx vitest run tests/integration.test.tsEstructura del proyecto
cortex-mcp/
src/
index.ts # MCP server entry point
config.ts # Environment config + validation
client.ts # Cortex REST API client (full surface)
types.ts # Cortex API type definitions
resources.ts # MCP resources (4)
prompts.ts # MCP prompts (2)
tools/
analyzers.ts # Analyzer tools (list, get, run, run-by-name)
analyzer-definitions.ts # Definition browsing, enable, disable
jobs.ts # Job management + cleanup
responders.ts # Responder tools (list, run)
responder-definitions.ts # Definition browsing, enable, disable
bulk.ts # Bulk analysis with auto-detect
status.ts # Health/version check
organizations.ts # Org CRUD (superadmin)
users.ts # User CRUD + key management (superadmin)
tests/
client.test.ts # API client unit tests
tools.test.ts # Tool handler unit tests
integration.test.ts # Live instance integration tests (21 tests)
scripts/
proxmox_install.sh # Proxmox LXC deployment scriptDespliegue
Proxmox LXC
bash -c "$(wget -qLO - https://raw.githubusercontent.com/solomonneas/cortex-mcp/main/scripts/proxmox_install.sh)"Licencia
MIT
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/solomonneas/cortex-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server