The Security Detections MCP server gives your AI assistant direct access to 8,000+ detection rules, 172 threat actors, and procedure-level coverage analysis. Works with Claude Code, VS Code, Cursor, and any MCP-compatible client.
Skip the local install. Create an account, generate a token, paste one URL into your MCP client, and start querying. Always in sync with the latest detection content.
Sign in with email or GitHub, then visit /account/tokens. Click Generate, name your token (e.g., "Claude Desktop — laptop"), and copy it — it's shown exactly once.
Click the button for your client. Replace sdmcp_YOUR_TOKEN_HERE with the token you just generated (or paste it when the client prompts).
claude mcp add --transport http security-detections https://detect.michaelhaag.org/api/mcp/mcp --header "Authorization: Bearer sdmcp_YOUR_TOKEN_HERE"Claude Desktop doesn't speak remote HTTP natively yet — use mcp-remote to bridge stdio to HTTP.
{
"mcpServers": {
"security-detections": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://detect.michaelhaag.org/api/mcp/mcp",
"--header",
"Authorization: Bearer sdmcp_YOUR_TOKEN_HERE"
]
}
}
}export SDMCP_TOKEN="sdmcp_YOUR_TOKEN_HERE" && codex mcp add security-detections --url https://detect.michaelhaag.org/api/mcp/mcp --bearer-token-env-var SDMCP_TOKENPersist SDMCP_TOKEN in your shell profile so Codex can read it in future sessions.
Or edit ~/.codex/config.toml:
[mcp_servers.security-detections]
url = "https://detect.michaelhaag.org/api/mcp/mcp"
bearer_token_env_var = "SDMCP_TOKEN"curl -X POST https://detect.michaelhaag.org/api/mcp/mcp -H "Authorization: Bearer sdmcp_YOUR_TOKEN_HERE" -H "Accept: application/json, text/event-stream" -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Try these prompts in the client you just configured:
Full 81-tool experience with your own detection repos. Up and running in under 10 minutes.
Node.js 20+, npm 9+, and git. That's it.
node --version # v20+
npm --version # 9+
git --version # any recentClone the detection repos you want to index. Start with Sigma if you're unsure — it's the most portable.
mkdir -p detections && cd detections
# Sigma rules (~3,000+)
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 ..
# Splunk ESCU (~2,000+)
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 ..
# Elastic (~1,500+)
git clone --depth 1 --filter=blob:none --sparse \
https://github.com/elastic/detection-rules.git
cd detection-rules && git sparse-checkout set rules && cd ..
# KQL hunting queries (~400+)
git clone --depth 1 \
https://github.com/Bert-JanP/Hunting-Queries-Detection-Rules.git kql-bertjanp
# Sublime Security (~900+)
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 ..
# CrowdStrike CQL Hub (~139+)
git clone --depth 1 \
https://github.com/ByteRay-Labs/Query-Hub.git cql-hub
# MITRE ATT&CK STIX data (172 actors, 691 techniques, 784 software)
git clone --depth 1 \
https://github.com/mitre-attack/attack-stix-data.git
cd ..Pick your IDE and add the MCP config. Replace paths with your actual locations.
claude mcp add security-detections \
-e SIGMA_PATHS="/path/to/sigma/rules,/path/to/sigma/rules-threat-hunting" \
-e SPLUNK_PATHS="/path/to/security_content/detections" \
-e ELASTIC_PATHS="/path/to/detection-rules/rules" \
-e KQL_PATHS="/path/to/kql-bertjanp" \
-e SUBLIME_PATHS="/path/to/sublime-rules/detection-rules" \
-e CQL_HUB_PATHS="/path/to/cql-hub/queries" \
-e STORY_PATHS="/path/to/security_content/stories" \
-e ATTACK_STIX_PATH="/path/to/attack-stix-data/enterprise-attack/enterprise-attack.json" \
-- npx -y security-detections-mcp{
"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",
"ELASTIC_PATHS": "/path/to/detection-rules/rules",
"KQL_PATHS": "/path/to/kql-bertjanp",
"SUBLIME_PATHS": "/path/to/sublime-rules/detection-rules",
"CQL_HUB_PATHS": "/path/to/cql-hub/queries",
"STORY_PATHS": "/path/to/security_content/stories",
"ATTACK_STIX_PATH": "/path/to/attack-stix-data/enterprise-attack/enterprise-attack.json"
}
}
}
}{
"servers": {
"security-detections": {
"type": "stdio",
"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",
"ELASTIC_PATHS": "/path/to/detection-rules/rules",
"KQL_PATHS": "/path/to/kql-bertjanp",
"SUBLIME_PATHS": "/path/to/sublime-rules/detection-rules",
"CQL_HUB_PATHS": "/path/to/cql-hub/queries",
"STORY_PATHS": "/path/to/security_content/stories",
"ATTACK_STIX_PATH": "/path/to/attack-stix-data/enterprise-attack/enterprise-attack.json"
}
}
}
}Open your AI client and try one of these prompts:
The MCP server exposes these capabilities to your AI assistant.
+ 60 more tools for Sigma, Splunk, Elastic, KQL, Sublime, and CrowdStrike CQL specific operations
Use both. The MCP server is the power tool. The web app is for quick lookups, sharing, and when you don't have your IDE open.