cortex-mcp
cortex-mcp
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 buildKonfiguration
Variable | Erforderlich | Standard | Beschreibung |
| Ja | - | Cortex-Basis-URL (z. B. |
| Ja | - | API-Schlüssel für normale Operationen (Organisationsebene) |
| Nein | - | Superadmin-API-Schlüssel für die Verwaltung von Organisationen/Benutzern/Definitionen |
| Nein |
| Auf |
| Nein |
| 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-mcpFü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 registeredHermes 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-mcpCodex 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-mcpOder 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.jsCodex schreibt den Eintrag in ~/.codex/config.toml unter [mcp_servers.cortex]. Überprüfen mit:
codex mcp listStandalone
export CORTEX_URL=http://cortex.example.com:9001
export CORTEX_API_KEY=your-org-admin-key
npm startMCP-Tools (31)
Status
Tool | Beschreibung |
| Abrufen von Integrität, Version und Konfiguration der Cortex-Instanz |
Analysetool-Tools
Tool | Beschreibung |
| Alle aktivierten Analysetools auflisten, optional gefiltert nach Datentyp |
| Details zu einem bestimmten Analysetool nach ID abrufen |
| Ein Observable zur Analyse an ein bestimmtes Analysetool übermitteln |
| Ein Analysetool nach Namen statt nach ID ausführen (Komfort-Wrapper) |
| Eine Datei (von Pfad oder Base64) zur Analyse an ein Analysetool übermitteln |
Analysetool-Definitionstools
Tool | Beschreibung |
| Alle 260+ verfügbaren Analysetool-Definitionen mit Filterung durchsuchen (nach Datentyp, kostenlos/keine Konfiguration, Suche) |
| Eine Analysetool-Definition in der aktuellen Organisation mit Konfiguration aktivieren |
| Ein aktiviertes Analysetool deaktivieren (entfernen) |
Job-Tools
Tool | Beschreibung |
| Status und Details eines Analyse-Jobs abrufen |
| Den vollständigen Bericht eines abgeschlossenen Analyse-Jobs abrufen |
| Auf den Abschluss eines Jobs warten und den Bericht zurückgeben |
| Aktuelle Analyse-Jobs mit optionalen Filtern auflisten |
| Artefakte (extrahierte IOCs) aus einem abgeschlossenen Job abrufen |
| Einen bestimmten Job löschen |
| Jobs massenhaft nach Status oder Alter löschen (mit Testlauf) |
Responder-Tools
Tool | Beschreibung |
| Alle aktivierten Responder auflisten, optional gefiltert nach Datentyp |
| Eine Responder-Aktion gegen eine TheHive-Entität ausführen |
Responder-Definitionstools
Tool | Beschreibung |
| Alle 137+ verfügbaren Responder-Definitionen mit Filterung durchsuchen |
| Eine Responder-Definition mit Konfiguration aktivieren |
| Einen aktivierten Responder deaktivieren (entfernen) |
Massenoperationen
Tool | Beschreibung |
| ALLE anwendbaren Analysetools mit automatisch erkanntem Datentyp und aggregierten Taxonomie-Ergebnissen ausführen |
Organisationsverwaltung (Superadmin)
Tool | Beschreibung |
| Alle Organisationen auflisten |
| Organisationsdetails abrufen |
| Eine neue Organisation erstellen |
| Organisationsbeschreibung oder -status aktualisieren |
Benutzerverwaltung (Superadmin)
Tool | Beschreibung |
| Alle Benutzer über Organisationen hinweg auflisten |
| Benutzerdetails abrufen |
| Einen neuen Benutzer in einer Organisation erstellen |
| Einen neuen API-Schlüssel für einen Benutzer generieren (macht den vorherigen ungültig) |
| Den aktuellen API-Schlüssel eines Benutzers abrufen |
MCP-Ressourcen (4)
URI | Beschreibung |
| Aktivierte Analysetools mit Fähigkeiten |
| Alle 260+ verfügbaren Analysetool-Definitionen mit Konfigurationsanforderungen |
| Alle 137+ verfügbaren Responder-Definitionen mit Konfigurationsanforderungen |
| Die letzten 50 Analyse-Jobs |
MCP-Prompts (4)
Prompt | Beschreibung |
| Geführter Workflow zur Analyse eines Observables durch Cortex |
| Tiefgehender Untersuchungs-Workflow für ein verdächtiges IOC |
| Geführter Einrichtungsassistent für neue Cortex-Instanzen (kostenlose Analysetools aktivieren, API-Schlüssel konfigurieren) |
| 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 |
|
| ✅ |
|
| ✅ |
|
| ✅ |
| MD5, SHA1, SHA256, SHA512 | ✅ |
|
| ✅ |
|
| Als Domain |
|
| Manuell |
|
| Manuell |
| Binäre Datei-Uploads | Manuell |
| 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.tsProjektstruktur
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 scriptBereitstellung
Proxmox LXC
bash -c "$(wget -qLO - https://raw.githubusercontent.com/solomonneas/cortex-mcp/main/scripts/proxmox_install.sh)"Lizenz
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