Skip to main content
Glama

cortex-mcp

TypeScript Node.js MCP License: MIT

Ein MCP-Server (Model Context Protocol) für Cortex von StrangeBee/TheHive Project. Cortex automatisiert die Analyse von Observables (IPs, URLs, Hashes, Domains, E-Mails, Dateien) mithilfe von Analysetools und führt Reaktionsmaßnahmen über Responder aus. Dieser MCP-Server stellt die vollständige Analyse- und Administrations-Pipeline von Cortex für LLMs bereit.

Funktionen

  • 31 MCP-Tools, die den gesamten Cortex-API-Umfang abdecken

  • 4 MCP-Ressourcen zum Durchsuchen des Cortex-Status

  • 4 MCP-Prompts mit geführten Workflows (Einrichtung, Untersuchung, Triage)

  • Vollständiger Lebenszyklus für Analysetools/Responder: Definitionen durchsuchen, aktivieren, konfigurieren, deaktivieren

  • Automatische Erkennung von Observable-Datentypen (IP, Domain, Hash, URL, E-Mail)

  • Massenanalyse über alle anwendbaren Analysetools mit Taxonomie-Aggregation

  • Job-Bereinigung mit Unterstützung für Testläufe (Dry-Run)

  • Verwaltung von Benutzer-API-Schlüsseln (erstellen, erneuern, abrufen)

  • Organisation-CRUD mit Statusverwaltung

  • Unterstützung für zwei API-Schlüssel: Operationen auf Organisationsebene + Superadmin-Administration

Voraussetzungen

  • Node.js 20 oder höher

  • Eine laufende Cortex-Instanz (v3.x empfohlen)

  • Ein Cortex-API-Schlüssel mit entsprechenden Berechtigungen

Installation

git clone https://github.com/solomonneas/cortex-mcp.git
cd cortex-mcp
npm install
npm run build

Konfiguration

Variable

Erforderlich

Standard

Beschreibung

CORTEX_URL

Ja

-

Cortex-Basis-URL (z. B. http://cortex.example.com:9001)

CORTEX_API_KEY

Ja

-

API-Schlüssel für normale Operationen (Organisationsebene)

CORTEX_SUPERADMIN_KEY

Nein

-

Superadmin-API-Schlüssel für die Verwaltung von Organisationen/Benutzern/Definitionen

CORTEX_VERIFY_SSL

Nein

true

Auf false setzen, um die SSL-Überprüfung zu überspringen

CORTEX_TIMEOUT

Nein

30

Anfrage-Timeout in Sekunden

Verwendung

Claude Desktop

Hinzufügen zu ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) oder %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

Fügen Sie --scope user hinzu, um es von jedem Verzeichnis aus verfügbar zu machen, anstatt nur vom aktuellen Projekt aus.

OpenClaw

Wenn Sie von einem Quell-Checkout aus arbeiten, anstatt von der npm-installierten Binärdatei, verweisen Sie command/args auf die erstellte dist/index.js:

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"
  }
}'

Oder mit der globalen npm-Installation:

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"
  }
}'

Starten Sie dann das OpenClaw-Gateway neu, damit der neue Server erkannt wird:

systemctl --user restart openclaw-gateway
openclaw mcp list   # confirm "cortex" is registered

Hermes Agent

Hermes Agent liest die MCP-Konfiguration aus ~/.hermes/config.yaml unter dem Schlüssel mcp_servers. Fügen Sie einen Eintrag hinzu:

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"

Oder bei Ausführung aus einem Quell-Checkout anstelle der globalen npm-Installation:

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"

Laden Sie dann MCP innerhalb einer Hermes-Sitzung neu:

/reload-mcp

Codex CLI

Codex CLI registriert MCP-Server über 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

Oder bei Ausführung aus einem Quell-Checkout:

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 schreibt den Eintrag in ~/.codex/config.toml unter [mcp_servers.cortex]. Überprüfen mit:

codex mcp list

Standalone

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

MCP-Tools (31)

Status

Tool

Beschreibung

cortex_get_status

Abrufen von Integrität, Version und Konfiguration der Cortex-Instanz

Analysetool-Tools

Tool

Beschreibung

cortex_list_analyzers

Alle aktivierten Analysetools auflisten, optional gefiltert nach Datentyp

cortex_get_analyzer

Details zu einem bestimmten Analysetool nach ID abrufen

cortex_run_analyzer

Ein Observable zur Analyse an ein bestimmtes Analysetool übermitteln

cortex_run_analyzer_by_name

Ein Analysetool nach Namen statt nach ID ausführen (Komfort-Wrapper)

cortex_run_analyzer_file

Eine Datei (von Pfad oder Base64) zur Analyse an ein Analysetool übermitteln

Analysetool-Definitionstools

Tool

Beschreibung

cortex_list_analyzer_definitions

Alle 260+ verfügbaren Analysetool-Definitionen mit Filterung durchsuchen (nach Datentyp, kostenlos/keine Konfiguration, Suche)

cortex_enable_analyzer

Eine Analysetool-Definition in der aktuellen Organisation mit Konfiguration aktivieren

cortex_disable_analyzer

Ein aktiviertes Analysetool deaktivieren (entfernen)

Job-Tools

Tool

Beschreibung

cortex_get_job

Status und Details eines Analyse-Jobs abrufen

cortex_get_job_report

Den vollständigen Bericht eines abgeschlossenen Analyse-Jobs abrufen

cortex_wait_and_get_report

Auf den Abschluss eines Jobs warten und den Bericht zurückgeben

cortex_list_jobs

Aktuelle Analyse-Jobs mit optionalen Filtern auflisten

cortex_get_job_artifacts

Artefakte (extrahierte IOCs) aus einem abgeschlossenen Job abrufen

cortex_delete_job

Einen bestimmten Job löschen

cortex_cleanup_jobs

Jobs massenhaft nach Status oder Alter löschen (mit Testlauf)

Responder-Tools

Tool

Beschreibung

cortex_list_responders

Alle aktivierten Responder auflisten, optional gefiltert nach Datentyp

cortex_run_responder

Eine Responder-Aktion gegen eine TheHive-Entität ausführen

Responder-Definitionstools

Tool

Beschreibung

cortex_list_responder_definitions

Alle 137+ verfügbaren Responder-Definitionen mit Filterung durchsuchen

cortex_enable_responder

Eine Responder-Definition mit Konfiguration aktivieren

cortex_disable_responder

Einen aktivierten Responder deaktivieren (entfernen)

Massenoperationen

Tool

Beschreibung

cortex_analyze_observable

ALLE anwendbaren Analysetools mit automatisch erkanntem Datentyp und aggregierten Taxonomie-Ergebnissen ausführen

Organisationsverwaltung (Superadmin)

Tool

Beschreibung

cortex_list_organizations

Alle Organisationen auflisten

cortex_get_organization

Organisationsdetails abrufen

cortex_create_organization

Eine neue Organisation erstellen

cortex_update_organization

Organisationsbeschreibung oder -status aktualisieren

Benutzerverwaltung (Superadmin)

Tool

Beschreibung

cortex_list_users

Alle Benutzer über Organisationen hinweg auflisten

cortex_get_user

Benutzerdetails abrufen

cortex_create_user

Einen neuen Benutzer in einer Organisation erstellen

cortex_renew_user_key

Einen neuen API-Schlüssel für einen Benutzer generieren (macht den vorherigen ungültig)

cortex_get_user_key

Den aktuellen API-Schlüssel eines Benutzers abrufen

MCP-Ressourcen (4)

URI

Beschreibung

cortex://analyzers

Aktivierte Analysetools mit Fähigkeiten

cortex://analyzer-definitions

Alle 260+ verfügbaren Analysetool-Definitionen mit Konfigurationsanforderungen

cortex://responder-definitions

Alle 137+ verfügbaren Responder-Definitionen mit Konfigurationsanforderungen

cortex://jobs/recent

Die letzten 50 Analyse-Jobs

MCP-Prompts (4)

Prompt

Beschreibung

analyze-observable

Geführter Workflow zur Analyse eines Observables durch Cortex

investigate-ioc

Tiefgehender Untersuchungs-Workflow für ein verdächtiges IOC

setup-cortex

Geführter Einrichtungsassistent für neue Cortex-Instanzen (kostenlose Analysetools aktivieren, API-Schlüssel konfigurieren)

triage-alert

Strukturierter Alert-Triage-Workflow mit Multi-Observable-Analyse und Risikobewertung

Beispiele

Analysetools von Grund auf einrichten

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.

Observable-Typ automatisch erkennen

Use cortex_analyze_observable with data "185.220.101.42"
(no dataType needed - auto-detects as IP)

Alte, fehlgeschlagene Jobs bereinigen

Use cortex_cleanup_jobs with status "Failure", dryRun true to preview,
then dryRun false to delete.

Eine Datei analysieren

Use cortex_run_analyzer_file with analyzerId "Yara_3_0",
filePath "/tmp/suspicious.exe" to scan with YARA rules.

API-Schlüssel verwalten

Use cortex_renew_user_key with userId "analyst1" to rotate their API key.

Einen Sicherheitsalarm triagieren

Use the triage-alert prompt with alertDescription "Suspicious outbound traffic
detected" and observables "185.220.101.42, evil.example.com, 44d88612fea8a8f36de82e1278abb02f"

Unterstützte Datentypen

Typ

Beispiele

Automatisch erkannt

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

Als Domain

filename

malware.exe

Manuell

registry

HKLM\Software\Malware

Manuell

file

Binäre Datei-Uploads

Manuell

other

CVEs, benutzerdefinierte Typen

Manuell

Testen

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

Projektstruktur

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

Bereitstellung

Proxmox LXC

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

Lizenz

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