Skip to main content
Glama

cortex-mcp

TypeScript Node.js MCP License: MIT

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 build

Configuración

Variable

Requerido

Predeterminado

Descripción

CORTEX_URL

-

URL base de Cortex (ej. http://cortex.example.com:9001)

CORTEX_API_KEY

-

Clave API para operaciones normales (nivel de administrador de org)

CORTEX_SUPERADMIN_KEY

No

-

Clave API de superadministrador para gestión de org/usuario/definición

CORTEX_VERIFY_SSL

No

true

Establecer en false para omitir la verificación SSL

CORTEX_TIMEOUT

No

30

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-mcp

Añ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 registered

Hermes 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-mcp

Codex 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-mcp

O, 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.js

Codex escribe la entrada en ~/.codex/config.toml bajo [mcp_servers.cortex]. Verifique con:

codex mcp list

Independiente

export CORTEX_URL=http://cortex.example.com:9001
export CORTEX_API_KEY=your-org-admin-key
npm start

Herramientas MCP (31)

Estado

Herramienta

Descripción

cortex_get_status

Obtener el estado de salud, la versión y la configuración de la instancia de Cortex

Herramientas de analizador

Herramienta

Descripción

cortex_list_analyzers

Listar todos los analizadores habilitados, opcionalmente filtrados por tipo de datos

cortex_get_analyzer

Obtener detalles sobre un analizador específico por ID

cortex_run_analyzer

Enviar un observable a un analizador específico para su análisis

cortex_run_analyzer_by_name

Ejecutar un analizador por nombre en lugar de ID (envoltorio de conveniencia)

cortex_run_analyzer_file

Enviar un archivo (desde ruta o base64) a un analizador para su análisis

Herramientas de definición de analizador

Herramienta

Descripción

cortex_list_analyzer_definitions

Explorar más de 260 definiciones de analizadores disponibles con filtrado (por tipo de datos, gratuito/sin configuración, búsqueda)

cortex_enable_analyzer

Habilitar una definición de analizador en la organización actual con configuración

cortex_disable_analyzer

Deshabilitar (eliminar) un analizador habilitado

Herramientas de trabajo

Herramienta

Descripción

cortex_get_job

Obtener el estado y los detalles de un trabajo de análisis

cortex_get_job_report

Obtener el informe completo de un trabajo de análisis completado

cortex_wait_and_get_report

Esperar a que un trabajo se complete y devolver el informe

cortex_list_jobs

Listar trabajos de análisis recientes con filtros opcionales

cortex_get_job_artifacts

Obtener artefactos (IOC extraídos) de un trabajo completado

cortex_delete_job

Eliminar un trabajo específico

cortex_cleanup_jobs

Eliminar trabajos de forma masiva por estado o antigüedad (con simulacro)

Herramientas de respondedor

Herramienta

Descripción

cortex_list_responders

Listar todos los respondedores habilitados, opcionalmente filtrados por tipo de datos

cortex_run_responder

Ejecutar una acción de respondedor contra una entidad de TheHive

Herramientas de definición de respondedor

Herramienta

Descripción

cortex_list_responder_definitions

Explorar más de 137 definiciones de respondedores disponibles con filtrado

cortex_enable_responder

Habilitar una definición de respondedor con configuración

cortex_disable_responder

Deshabilitar (eliminar) un respondedor habilitado

Operaciones masivas

Herramienta

Descripción

cortex_analyze_observable

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

cortex_list_organizations

Listar todas las organizaciones

cortex_get_organization

Obtener detalles de la organización

cortex_create_organization

Crear una nueva organización

cortex_update_organization

Actualizar la descripción o el estado de la organización

Gestión de usuarios (superadministrador)

Herramienta

Descripción

cortex_list_users

Listar todos los usuarios en todas las organizaciones

cortex_get_user

Obtener detalles del usuario

cortex_create_user

Crear un nuevo usuario en una organización

cortex_renew_user_key

Generar una nueva clave API para un usuario (invalida la anterior)

cortex_get_user_key

Recuperar la clave API actual de un usuario

Recursos MCP (4)

URI

Descripción

cortex://analyzers

Analizadores habilitados con capacidades

cortex://analyzer-definitions

Más de 260 definiciones de analizadores disponibles con requisitos de configuración

cortex://responder-definitions

Más de 137 definiciones de respondedores disponibles con requisitos de configuración

cortex://jobs/recent

Últimos 50 trabajos de análisis

Prompts MCP (4)

Prompt

Descripción

analyze-observable

Flujo de trabajo guiado para analizar un observable a través de Cortex

investigate-ioc

Flujo de trabajo de investigación profunda para un IOC sospechoso

setup-cortex

Asistente de configuración guiado para instancias nuevas de Cortex (habilitar analizadores gratuitos, configurar claves API)

triage-alert

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

ip

8.8.8.8, 2001:db8::1

domain

example.com

url

https://malware.example.com/payload

hash

MD5, SHA1, SHA256, SHA512

mail

user@example.com

fqdn

mail.example.com

Como dominio

filename

malware.exe

Manual

registry

HKLM\Software\Malware

Manual

file

Cargas de archivos binarios

Manual

other

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.ts

Estructura 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 script

Despliegue

Proxmox LXC

bash -c "$(wget -qLO - https://raw.githubusercontent.com/solomonneas/cortex-mcp/main/scripts/proxmox_install.sh)"

Licencia

MIT

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - A tier

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