| name | security-detections-mcp |
| description | Query unified Sigma, Splunk, Elastic, KQL, Sublime, and CrowdStrike security detection rules via MCP server with MITRE ATT&CK mapping and coverage analysis |
| triggers | ["search for security detections covering technique","analyze MITRE ATT&CK coverage for ransomware","find detection gaps in our security stack","query Sigma rules for process injection","generate ATT&CK Navigator layer showing coverage","compare detection coverage across threat actors","build detections for lateral movement techniques","show me Splunk rules for credential dumping"] |
security-detections-mcp
Skill by ara.so — Security Skills collection
An MCP (Model Context Protocol) server providing LLM access to 8,200+ security detection rules across Sigma, Splunk ESCU, Elastic, KQL, Sublime, and CrowdStrike CQL formats, with MITRE ATT&CK mapping, coverage analysis, and autonomous detection engineering.
What It Does
- Unified detection search across 6 major security platforms (Sigma, Splunk, Elastic, KQL, Sublime, CrowdStrike)
- MITRE ATT&CK integration with 172 threat actors, 784 software, 4,362 actor-technique relationships
- Coverage analysis identifying gaps in detection by tactic/technique/actor
- ATT&CK Navigator layers exportable as JSON for visualization
- Autonomous detection pipeline from CTI ingestion to draft PR generation
- 81 MCP tools for detection engineering (local) or ~25 tools (hosted)
- 11 expert prompts for ransomware assessment, APT emulation, purple teaming
Installation
Local Installation (Full Power)
Prerequisites:
- Node.js 18+
- Detection rule repositories cloned locally
Quick start with npx:
npx -y security-detections-mcp
Configure in Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"security-detections": {
"command": "npx",
"args": ["-y", "security-detections-mcp"],
"env": {
"SIGMA_PATHS": "/path/to/sigma/rules,/path/to/sigma/rules-threat-hunting",
"SPLUNK_PATHS": "/path/to/security_content/detections",
"STORY_PATHS": "/path/to/security_content/stories",
"ELASTIC_PATHS": "/path/to/detection-rules/rules",
"KQL_PATHS": "/path/to/kql-rules",
"SUBLIME_PATHS": "/path/to/sublime-rules/detection-rules",
"CQL_HUB_PATHS": "/path/to/cql-hub/queries",
"ATTACK_STIX_PATH": "/path/to/enterprise-attack.json"
Configure in Cursor (.cursor/settings.json):
{
"mcp": {
"servers": {
"security-detections": {
"command": "npx",
"args": ["-y", "security-detections-mcp"],
"env": {
"SIGMA_PATHS": "/Users/you/detections/sigma/rules",
"SPLUNK_PATHS": "/Users/you/detections/security_content/detections"
}
}
}
}
}
Configure in VS Code (settings.json):
{
"mcp.servers": {
"security-detections": {
"type": "stdio",
"command": "npx",
"args": ["-y", "security-detections-mcp"],
"env": {
"SIGMA_PATHS": "/home/you/detections/sigma/rules"
}
}
}
}
Hosted Installation (Zero Setup)
Prerequisites:
Claude Desktop (requires mcp-remote):
{
"mcpServers": {
"security-detections": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://detect.michaelhaag.org/api/mcp/mcp",
"--header",
"Authorization: Bearer ${SDMCP_TOKEN}"
]
}
}
}
VS Code / Cursor:
{
"mcp.servers": {
"security-detections": {
"type": "http",
"url": "https://detect.michaelhaag.org/api/mcp/mcp",
"headers": {
"Authorization": "Bearer ${SDMCP_TOKEN}"
}
}
}
}
Getting Detection Content
Download all detection sources with sparse checkout:
mkdir -p ~/detections && cd ~/detections
git clone --depth 1 --filter=blob:none --sparse https://github.com/SigmaHQ/sigma.git
cd sigma && git sparse-checkout set rules rules-threat-hunting && cd ..
git clone --depth 1 --filter=blob:none --sparse https://github.com/splunk/security_content.git
cd security_content && git sparse-checkout set detections stories && cd ..
git clone --depth 1 --filter=blob:none --sparse https://github.com/elastic/detection-rules.git
cd detection-rules && git sparse-checkout set rules && cd ..
git clone --depth 1 https://github.com/Bert-JanP/Hunting-Queries-Detection-Rules.git kql-bertjanp
git clone --depth 1 https://github.com/jkerai1/KQL-Queries.git kql-jkerai1
git clone --depth 1 --filter=blob:none --sparse https://github.com/sublime-security/sublime-rules.git
cd sublime-rules && git sparse-checkout set detection-rules && cd ..
git clone --depth 1 https://github.com/ByteRay-Labs/Query-Hub.git cql-hub
curl -o enterprise-attack.json https://raw.githubusercontent.com/mitre/cti/master/enterprise-attack/enterprise-attack.json
Then update environment variables to point to these paths.
Core MCP Tools
Detection Search & Retrieval
{
"name": "search",
"arguments": {
"query": "process injection",
"limit": 10
}
}
{
"name": "get_by_id",
"arguments": {
"id": "sigma_abc123"
}
}
{
"name": "list_all",
"arguments": {
"limit": 50,
"offset": 0
}
}
{
"name": "list_by_source",
"arguments": {
"source_type": "sigma"
}
}
{
"name": "get_stats",
"arguments": {}
}
MITRE ATT&CK Filtering
{
"name": "list_by_mitre",
"arguments": {
"technique_id": "T1059.001"
}
}
{
"name": "list_by_mitre_tactic",
"arguments": {
"tactic": "execution"
}
}
{
"name": "list_by_cve",
"arguments": {
"cve_id": "CVE-2021-34527"
}
}
{
"name": "list_by_process_name",
"arguments": {
"process_name": "powershell.exe"
}
}
{
"name": "list_by_severity",
"arguments": {
"level": "critical"
}
}
{
"name": "list_by_data_source",
"arguments": {
"data_source": "process_creation"
}
}
Coverage Analysis
{
"name": "analyze_coverage",
"arguments": {
"source_type": "sigma"
}
}
{
"name": "identify_gaps",
"arguments": {
"threat_profile": "ransomware"
}
}
{
"name": "suggest_detections",
"arguments": {
"technique_id": "T1003.001"
}
}
{
"name": "get_coverage_summary",
"arguments": {
"source_type": "splunk_escu"
}
}
{
"name": "analyze_actor_coverage",
"arguments": {
"actor": "APT29"
}
}
{
"name": "compare_actor_coverage",
"arguments": {
"actors": ["APT29", "APT28", "Lazarus Group"]
}
}
{
"name": "analyze_procedure_coverage",
"arguments": {
:
}
}
ATT&CK Navigator Layer Generation
{
"name": "generate_navigator_layer",
"arguments": {
"name": "Current Coverage",
"description": "Detection coverage as of 2024-01",
"filter": {
"source": "sigma",
"tactic": "defense-evasion",
"min_severity": "medium"
},
"color_by": "coverage"
}
}
{
"name": "export_navigator_layer",
"arguments": {
"output_path": "./coverage-layer.json",
"filter": {
"actor": "APT29"
}
}
}
Common Patterns
Ransomware Readiness Assessment
Use the built-in prompt:
Use the ransomware-readiness-assessment prompt to evaluate our coverage
Or manually:
{
"name": "identify_gaps",
"arguments": {
"threat_profile": "ransomware"
}
}
{
"name": "list_by_mitre",
"arguments": {
"technique_id": "T1486"
}
}
{
"name": "generate_navigator_layer",
"arguments": {
"name": "Ransomware Coverage",
"filter": {
"threat_profile": "ransomware"
}
}
}
APT Threat Emulation
{
"name": "analyze_actor_coverage",
"arguments": {
"actor": "APT29"
}
}
{
"name": "get_actor_techniques",
"arguments": {
"actor": "APT29"
}
}
{
"name": "list_by_mitre",
"arguments": {
"technique_id": "T1059.001"
}
}
{
"name": "compare_actor_coverage",
"arguments": {
"actors": ["APT29", "APT28"]
}
}
Detection Gap Analysis
{
"name": "get_coverage_summary",
"arguments": {}
}
{
"name": "analyze_coverage",
"arguments": {}
}
{
"name": "identify_gaps",
"arguments": {
"threat_profile": "apt"
}
}
{
"name": "suggest_detections",
"arguments": {
"technique_id": "T1078"
}
}
Building Detection Content
{
"name": "search",
"arguments": {
"query": "lateral movement SMB",
"limit": 10
}
}
{
"name": "analyze_procedure_coverage",
"arguments": {
"technique_id": "T1021.002"
}
}
{
"name": "generate_detection_template",
"arguments": {
"technique_id": "T1021.002",
"format": "sigma"
}
}
{
"name": "list_by_mitre",
"arguments": {
"technique_id": "T1021.002"
}
}
Cross-Platform Detection Comparison
{
"name": "list_by_mitre",
"arguments": {
"technique_id": "T1003.001"
}
}
{
"name": "list_by_source",
"arguments": {
"source_type": "splunk_escu"
}
}
{
"name": "analyze_coverage",
"arguments": {
"source_type": "sigma"
}
}
{
"name": "analyze_coverage",
"arguments": {
"source_type": "splunk_escu"
}
}
Configuration Reference
Environment Variables
| Variable | Description | Example |
|---|
SIGMA_PATHS | Comma-separated Sigma rule directories | /path/to/sigma/rules,/path/to/sigma/rules-threat-hunting |
SPLUNK_PATHS | Splunk ESCU detection directories | /path/to/security_content/detections |
STORY_PATHS | Splunk analytic story directories (optional) | /path/to/security_content/stories |
ELASTIC_PATHS | Elastic detection rule directories | /path/to/detection-rules/rules |
KQL_PATHS | KQL hunting query directories (comma-separated) | /path/to/kql-bertjanp,/path/to/kql-jkerai1 |
SUBLIME_PATHS | Sublime Security rule directories | /path/to/sublime-rules/detection-rules |
CQL_HUB_PATHS | CQL Hub (CrowdStrike) query directories | /path/to/cql-hub/queries |
ATTACK_STIX_PATH | Path to enterprise-attack.json STIX bundle | /path/to/enterprise-attack.json |
Source Type Values
sigma - Sigma rules (YAML)
splunk_escu - Splunk Enterprise Security Content Update
elastic - Elastic Security detection rules
kql - Kusto Query Language hunting queries
sublime - Sublime Security detection rules
crowdstrike_cql - CrowdStrike Query Language (CQL)
Tactic Values (MITRE ATT&CK)
reconnaissance
resource-development
initial-access
execution
persistence
privilege-escalation
defense-evasion
credential-access
discovery
lateral-movement
collection
command-and-control
exfiltration
impact
Troubleshooting
MCP Server Not Indexing Rules
Problem: get_stats shows 0 detections
Solution:
- Verify paths exist:
ls -la /path/to/sigma/rules
- Check environment variables are set correctly in MCP config
- Rebuild index manually:
{
"name": "rebuild_index",
"arguments": {}
}
- Check MCP server logs in Claude Desktop:
~/Library/Logs/Claude/mcp*.log
Permission Denied Errors
Problem: Cannot read detection files
Solution:
chmod -R 755 ~/detections
Hosted MCP 401 Unauthorized
Problem: Token authentication failing
Solution:
- Verify token starts with
sdmcp_
- Check token is not expired at detect.michaelhaag.org/account/tokens
- Ensure
Authorization: Bearer header format is correct
- Free tier rate limit: 200 calls/day
Missing MITRE ATT&CK Data
Problem: Actor/technique queries return empty
Solution:
- Download STIX bundle:
curl -o ~/detections/enterprise-attack.json \
https://raw.githubusercontent.com/mitre/cti/master/enterprise-attack/enterprise-attack.json
- Set
ATTACK_STIX_PATH environment variable
- Rebuild index
Sigma Rules Not Parsing
Problem: Some Sigma rules show errors
Solution:
- Ensure you're using the official SigmaHQ repo
- Update to latest rules:
cd sigma && git pull
- Some experimental rules may have schema issues - this is expected
- Check parsing errors in MCP logs
Slow Initial Index Build
Problem: First startup takes 30+ seconds
Solution:
- Expected behavior with 8,200+ detections
- Subsequent startups use cached index (~2 seconds)
- Use hosted MCP for zero startup time
- Reduce
PATHS to only needed sources
Advanced Usage
Custom Detection Repositories
Add your private detections:
{
"env": {
"SIGMA_PATHS": "/path/to/sigma/rules,/path/to/my-custom-sigma",
"SPLUNK_PATHS": "/path/to/security_content/detections,/path/to/internal-splunk"
}
}
Autonomous Detection Pipeline
Enable autonomous CTI → detection generation:
{
"name": "configure_autonomous",
"arguments": {
"enabled": true,
"cti_sources": ["misp", "otx"],
"auto_pr": false
}
}
{
"name": "run_autonomous_analysis",
"arguments": {
"threat_actor": "APT29"
}
}
See Autonomous docs for full pipeline details.
Exporting for SIEM
{
"name": "export_detections",
"arguments": {
"technique_id": "T1055",
"format": "sigma",
"output_path": "./exports/process_injection.yml"
}
}
Expert Prompts
Built-in workflows accessible by name:
ransomware-readiness-assessment - Full kill-chain coverage analysis
apt-threat-emulation - Actor-specific detection mapping
purple-team-exercise - Combined offensive/defensive planning
executive-briefing - High-level coverage summary
detection-sprint-planning - Engineering backlog prioritization
insider-threat-detection - Privilege abuse coverage
cloud-security-assessment - Cloud-specific technique coverage
supply-chain-security - Third-party risk detection
data-exfiltration-defense - Exfiltration technique coverage
initial-access-hardening - Entry point detection review
credential-theft-protection - Credential access coverage
Usage:
Use the ransomware-readiness-assessment prompt
Resources