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 Analysatoren und führt Reaktionsmaßnahmen über Responder aus. Dieser MCP-Server stellt LLMs die vollständige Analyse- und Administrations-Pipeline von Cortex zur Verfügung.
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 Analysatoren/Responder: Definitionen durchsuchen, aktivieren, konfigurieren, deaktivieren
Automatische Erkennung von Observable-Datentypen (IP, Domain, Hash, URL, E-Mail)
Massenanalyse über alle anwendbaren Analysatoren mit Taxonomie-Aggregation
Job-Bereinigung mit Unterstützung für Trockenlä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
Related MCP server: misp-mcp
Voraussetzungen
Node.js 20 oder neuer
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 Organisations-/Benutzer-/Definitionsverwaltung |
| Nein |
| Auf |
| Nein |
| Request-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.
OpenClaw
Wenn Sie von einem Quell-Checkout aus starten, 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 übernommen 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 beim Ausführen 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 beim Ausführen 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 Sie dies 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 |
Analysator-Tools
Tool | Beschreibung |
| Alle aktivierten Analysatoren auflisten, optional gefiltert nach Datentyp |
| Details zu einem bestimmten Analysator nach ID abrufen |
| Ein Observable zur Analyse an einen bestimmten Analysator übermitteln |
| Einen Analysator nach Namen statt nach ID ausführen (Komfort-Wrapper) |
| Eine Datei (von Pfad oder Base64) zur Analyse an einen Analysator übermitteln |
Analysator-Definitions-Tools
Tool | Beschreibung |
| Alle 260+ verfügbaren Analysator-Definitionen mit Filterung durchsuchen (nach Datentyp, kostenlos/keine Konfiguration, Suche) |
| Eine Analysator-Definition in der aktuellen Organisation mit Konfiguration aktivieren |
| Einen aktivierten Analysator 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 |
| Kürzliche 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 Trockenlauf) |
Responder-Tools
Tool | Beschreibung |
| Alle aktivierten Responder auflisten, optional gefiltert nach Datentyp |
| Eine Responder-Aktion gegen eine TheHive-Entität ausführen |
Responder-Definitions-Tools
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 Analysatoren 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 Analysatoren mit Fähigkeiten |
| Alle 260+ verfügbaren Analysator-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 Analysatoren aktivieren, API-Schlüssel konfigurieren) |
| Strukturierter Alert-Triage-Workflow mit Multi-Observable-Analyse und Risikobewertung |
Beispiele
Analysatoren 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
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityAmaintenanceAn MCP server that extracts Indicators of Compromise (IoCs) from unstructured text and checks their reputation across multiple threat intelligence services. It enables real-time analysis of IPs, domains, hashes, and URLs, providing enriched context for security workflows within LLMs.519MIT
- AlicenseAqualityAmaintenanceAn MCP server that enables LLMs to interact with MISP for threat intelligence sharing, IOC lookups, and event management. It provides tools for investigating indicators, discovering correlations, and exporting intelligence in formats like STIX and Suricata.36312MIT
- FlicenseNot gradedqualityDmaintenanceA security-focused MCP server that enables automated log retrieval and threat analysis using LangGraph orchestration and RAG. It allows users to detect suspicious activity and generate structured security insights by integrating LLM reasoning with log data and runbook documentation.
- AlicenseNot gradedqualityDmaintenanceMCP server that provides condensed and normalized data from OpenCTI to LLMs, enabling lookup of observables, adversaries, and reports with enriched context.16MIT
Related MCP Connectors
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/lidless-labs/cortex-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server