You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
An MCP (Model Context Protocol) server for Cortex by StrangeBee/TheHive Project. Cortex automates observable analysis (IPs, URLs, hashes, domains, emails, files) using analyzers and executes response actions via responders. This MCP server exposes Cortex's full analysis and administration pipeline to LLMs.
Features
31 MCP tools covering the complete Cortex API surface
4 MCP resources for browsing Cortex state
4 MCP prompts with guided workflows (setup, investigation, triage)
Full analyzer/responder lifecycle: browse definitions, enable, configure, disable
Auto-detection of observable data types (IP, domain, hash, URL, email)
Bulk analysis across all applicable analyzers with taxonomy aggregation
Job cleanup with dry-run support
User API key management (create, renew, retrieve)
Organization CRUD with status management
Dual API key support: org-level operations + superadmin administration
Prerequisites
Node.js 20 or later
A running Cortex instance (v3.x recommended)
A Cortex API key with appropriate permissions
Installation
git clone https://github.com/solomonneas/cortex-mcp.git
cd cortex-mcp
npm install
npm run build
Configuration
Variable
Required
Default
Description
CORTEX_URL
Yes
-
Cortex base URL (e.g., http://cortex.example.com:9001)
CORTEX_API_KEY
Yes
-
API key for normal operations (org admin level)
CORTEX_SUPERADMIN_KEY
No
-
Superadmin API key for org/user/definition management
Get Cortex instance health, version, and configuration
Analyzer Tools
Tool
Description
cortex_list_analyzers
List all enabled analyzers, optionally filtered by data type
cortex_get_analyzer
Get details about a specific analyzer by ID
cortex_run_analyzer
Submit an observable to a specific analyzer for analysis
cortex_run_analyzer_by_name
Run an analyzer by name instead of ID (convenience wrapper)
cortex_run_analyzer_file
Submit a file (from path or base64) to an analyzer for analysis
Analyzer Definition Tools
Tool
Description
cortex_list_analyzer_definitions
Browse all 260+ available analyzer definitions with filtering (by data type, free/no-config, search)
cortex_enable_analyzer
Enable an analyzer definition in the current org with configuration
cortex_disable_analyzer
Disable (remove) an enabled analyzer
Job Tools
Tool
Description
cortex_get_job
Get the status and details of an analysis job
cortex_get_job_report
Get the full report of a completed analysis job
cortex_wait_and_get_report
Wait for a job to complete and return the report
cortex_list_jobs
List recent analysis jobs with optional filters
cortex_get_job_artifacts
Get artifacts (extracted IOCs) from a completed job
cortex_delete_job
Delete a specific job
cortex_cleanup_jobs
Bulk delete jobs by status or age (with dry-run)
Responder Tools
Tool
Description
cortex_list_responders
List all enabled responders, optionally filtered by data type
cortex_run_responder
Execute a responder action against a TheHive entity
Responder Definition Tools
Tool
Description
cortex_list_responder_definitions
Browse all 137+ available responder definitions with filtering
cortex_enable_responder
Enable a responder definition with configuration
cortex_disable_responder
Disable (remove) an enabled responder
Bulk Operations
Tool
Description
cortex_analyze_observable
Run ALL applicable analyzers with auto-detected data type and aggregated taxonomy results
Organization Management (superadmin)
Tool
Description
cortex_list_organizations
List all organizations
cortex_get_organization
Get organization details
cortex_create_organization
Create a new organization
cortex_update_organization
Update organization description or status
User Management (superadmin)
Tool
Description
cortex_list_users
List all users across organizations
cortex_get_user
Get user details
cortex_create_user
Create a new user in an organization
cortex_renew_user_key
Generate a new API key for a user (invalidates previous)
cortex_get_user_key
Retrieve a user's current API key
MCP Resources (4)
URI
Description
cortex://analyzers
Enabled analyzers with capabilities
cortex://analyzer-definitions
All 260+ available analyzer definitions with config requirements
cortex://responder-definitions
All 137+ available responder definitions with config requirements
cortex://jobs/recent
Last 50 analysis jobs
MCP Prompts (4)
Prompt
Description
analyze-observable
Guided workflow for analyzing an observable through Cortex
investigate-ioc
Deep investigation workflow for a suspicious IOC
setup-cortex
Guided setup wizard for fresh Cortex instances (enable free analyzers, configure API keys)
triage-alert
Structured alert triage workflow with multi-observable analysis and risk assessment
Examples
Set up analyzers from scratch
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.
Auto-detect observable type
Use cortex_analyze_observable with data "185.220.101.42"
(no dataType needed - auto-detects as IP)
Clean up old failed jobs
Use cortex_cleanup_jobs with status "Failure", dryRun true to preview,
then dryRun false to delete.
Analyze a file
Use cortex_run_analyzer_file with analyzerId "Yara_3_0",
filePath "/tmp/suspicious.exe" to scan with YARA rules.
Manage API keys
Use cortex_renew_user_key with userId "analyst1" to rotate their API key.
Triage a security alert
Use the triage-alert prompt with alertDescription "Suspicious outbound traffic
detected" and observables "185.220.101.42, evil.example.com, 44d88612fea8a8f36de82e1278abb02f"