Intelthreadlinqs MCP README

The full upstream README, mirrored for reference. Install config, tool schemas, adoption signals and our own overview live on the Intelthreadlinqs MCP listing page.

Security Detections MCP

Unified Detection Engineering Platform
7,283+ detections across Sigma, Splunk ESCU, Elastic & KQL — powered by MCP

Quick Start • Workbench • 106 Tools • 22 Workflows • Agents • Config

Version 3.0.0 Node >= 18 7,283+ detections 106 tools 22 workflows MIT License

Built on Security Detections MCP by MHaggis  •  Threat Intelligence by Threadlinqs


Dashboard

What is this?

Security Detections MCP is an open-source platform that unifies 7,283+ detection rules from four major sources into a single queryable interface using the Model Context Protocol (MCP). It combines:

  • An MCP Server with 74 tools for searching, analyzing, and engineering detections
  • A Threat Intelligence MCP Server (Threadlinqs Intel) with 32 tools for real-time threat feeds, C2 tracking, MITRE mapping, and DNS enrichment
  • A Web Dashboard (Detection Workbench) for visual exploration, workflow execution, and AI-powered ad-hoc analysis
  • An Autonomous Agent Pipeline (LangGraph) for end-to-end detection generation and validation

Detection Sources

SourceRulesFormatDescription
Sigma3,200+YAMLCommunity-driven, platform-agnostic detection rules
Splunk ESCU1,800+YAML/SPLSplunk's Enterprise Security Content Update detections
Elastic1,400+TOML/EQLElastic Security detection rules
KQL880+KQLMicrosoft Sentinel / Defender analytics rules

Quick Start

Prerequisites

  • Node.js >= 18.0.0
  • npm >= 8.0.0
  • Git (for cloning detection repos)

1. Clone and build the MCP server

bash
git clone https://github.com/MHaggis/Security-Detections-MCP.git
cd Security-Detections-MCP
npm install
npm run build

2. Clone detection rule repositories

bash
mkdir -p detections && cd detections

# Sigma rules
git clone https://github.com/SigmaHQ/sigma.git

# Splunk ESCU
git clone https://github.com/splunk/security_content.git

# Elastic detection rules
git clone https://github.com/elastic/detection-rules.git

# KQL rules
git clone https://github.com/bert-jan/kql.git kql-bertjanp
git clone https://github.com/jkerai1/SentinelAnalyticRules.git kql-jkerai1

cd ..

3. Start the workbench

bash
cd workbench
npm install
npm run dev

Open http://localhost:3000 in your browser.

4. Configure API keys

Navigate to Settings in the workbench sidebar and configure:

  • LLM Provider — Choose Anthropic (Claude) or OpenAI (GPT-4) and enter your API key
  • Threadlinqs Intel API Key — Get yours at intel.threadlinqs.com for real-time threat intelligence

Without an LLM API key, ad-hoc queries and llm_prompt workflow steps won't function. Without a Threadlinqs key, threat intelligence workflows will skip intel steps but detection tools will work normally.


Architecture

Code
┌─────────────────────────────────────────────────────────────────┐
│                    Detection Workbench (Next.js)                │
│  Dashboard │ Tools │ Workflows │ Ad-Hoc │ Threats │ Coverage    │
├──────────────────────┬──────────────────────────────────────────┤
│    MCP Bridge        │         LLM Client                      │
│  (StdioTransport)    │   (Anthropic / OpenAI)                  │
├──────────┬───────────┼──────────────────────────────────────────┤
│          │           │                                          │
│  ┌───────▼────────┐  │  ┌─────────────────────┐                │
│  │ security-      │  │  │ threadlinqs-intel    │                │
│  │ detections     │  │  │ MCP Server (v3.1.1)  │                │
│  │ MCP Server     │  │  │                      │                │
│  │                │  │  │ 32 tools:            │                │
│  │ 74 tools:      │  │  │ • Threat feeds       │                │
│  │ • Search       │  │  │ • C2 tracking        │                │
│  │ • MITRE map    │  │  │ • MITRE mapping      │                │
│  │ • Knowledge    │  │  │ • CVE/CWE lookup     │                │
│  │ • Engineering  │  │  │ • IOC search         │                │
│  │ • Autonomous   │  │  │ • Simulations        │                │
│  └───────┬────────┘  │  └──────────┬──────────┘                │
│          │           │             │                            │
│  ┌───────▼───────────▼─────────────▼──────────┐                │
│  │              SQLite Cache                   │                │
│  │         7,283+ indexed detections           │                │
│  └───────────────┬────────────────────────────┘                │
│                  │                                              │
│  ┌───────────────▼────────────────────────────┐                │
│  │         Detection Rule Repositories         │                │
│  │   Sigma │ Splunk ESCU │ Elastic │ KQL       │                │
│  └─────────────────────────────────────────────┘                │
└─────────────────────────────────────────────────────────────────┘

Detection Workbench

The workbench is a full-featured web dashboard built with Next.js 15, React 19, and Tailwind CSS v4. It features a terminal-inspired hacker aesthetic with JetBrains Mono font, colored status indicators, and // section headers.

Dashboard

The command center with real-time stats, quick-launch workflows, recent activity, and server status at a glance.

Dashboard

MetricValue
Total Tools106
Indexed Detections7,283+
Pre-built Workflows22
MCP Servers2

Tool Explorer

Browse, search, and execute all 106 tools across both MCP servers. Blue indicators for security-detections, purple for threadlinqs-intel.

Tool Explorer

Click any tool to inspect its schema, parameters, and test it directly from the browser.

Tool Detail

Filter by server to see the 32 Threadlinqs Intel tools — threat feeds, C2 tracking, simulations, and more.

Intel Tools

Workflow Library

22 pre-built detection engineering workflows spanning threat hunting, coverage analysis, CVE assessment, and intelligence operations.

Workflows

Visual Workflow Builder

Drag-and-drop canvas for designing custom detection pipelines. Connect tool calls, transforms, LLM analysis steps, conditionals, loops, and parallel branches.

Workflow Builder

Workflow Execution

Execute workflows against live MCP servers with real-time step-by-step progress tracking. Each step shows its type (tool_call, transform, llm_prompt), target server, and execution status.

Workflow Execution

Results include LLM-generated analysis with executive summaries, threat inventories, MITRE coverage matrices, and prioritized recommendations.

Execution Results

Ad-Hoc Terminal

Natural language interface powered by your configured LLM. Ask questions about your detections, threats, and coverage — the system automatically selects and calls the right MCP tools, then synthesizes the results.

Ad-Hoc Terminal

Example queries:

  • "What ransomware detections do we have?"
  • "Show coverage gaps for credential access"
  • "Compare Sigma vs Splunk detection counts"
  • "Pull the latest threats from Threadlinqs and contrast them against my detections"

Ad-Hoc Results

All Pages

PagePathDescription
Dashboard/Stats, quick-launch, recent activity, server status
Ad-Hoc Terminal/adhocNatural language queries with automatic tool orchestration
Tool Explorer/toolsBrowse and execute all 106 MCP tools
Workflow Library/workflowsView and run 22 pre-built workflows
Workflow Builder/workflows/builderVisual drag-and-drop pipeline designer
Threats/threatsReal-time threat intelligence feed
Coverage/coverageMITRE ATT&CK coverage analysis
History/historyExecution history and past results
Settings/configLLM provider, API keys, MCP server status

MCP Tools

security-detections (74 tools)

Core Detection Tools

ToolParamsDescription
searchquery, limit, source_typeFull-text search across all detection fields
get_by_ididGet detection by unique identifier
get_raw_yamlidGet original YAML/TOML source
list_alllimit, offsetList all detections with pagination
list_by_sourcesource, limit, offsetFilter by source (sigma, splunk_escu, elastic, kql)
list_by_mitretechnique_id, limitFilter by MITRE ATT&CK technique
list_by_logsourcecategory, product, service, limit, offsetFilter by log source fields
list_by_severityseverity, limit, offsetFilter by severity level
list_by_cvecve_id, limitFind detections related to a CVE
list_by_analytic_storystory, limitFilter by Splunk analytic story
list_by_process_nameprocess, limit, offsetFilter by process name
list_by_detection_typetype, limit, offsetFilter by detection type
list_by_data_sourcedata_source, limit, offsetFilter by data source
list_by_mitre_tactictactic, limit, offsetFilter by MITRE tactic
list_by_kql_categorycategory, limit, offsetFilter KQL by category
list_by_kql_tagtag, limit, offsetFilter KQL by tag
list_by_kql_datasourcedatasource, limit, offsetFilter KQL by data source
list_by_name_patternpattern, limit, offsetWildcard search on detection name

Analytics & Coverage

ToolDescription
get_statsPlatform-wide detection statistics
get_technique_idsAll MITRE technique IDs with detection counts
get_technique_countCount detections for a specific technique
analyze_coverageAnalyze MITRE coverage with gap identification
identify_gapsFind techniques with missing or thin coverage
suggest_detectionsGet recommendations for new detections to build
get_detection_listGenerate filterable detection inventory
compare_sourcesCompare coverage across Sigma, Splunk, Elastic, KQL
count_by_sourceCount detections per source type
smart_compareIntelligent cross-source comparison
get_coverage_summaryExecutive-level coverage summary
get_top_gapsHighest-priority detection gaps

Analytic Stories

ToolDescription
search_storiesFull-text search across analytic stories
get_storyGet detailed story information
list_storiesList all analytic stories
list_stories_by_categoryFilter stories by category

Knowledge Graph (Tribal Knowledge)

ToolDescription
create_entityCreate knowledge entities (threat actors, techniques, etc.)
create_relationCreate relationships between entities with reasoning
add_observationAdd facts with confidence scoring
delete_entityRemove entity and associated data
delete_observationDelete specific observation
search_knowledgeFull-text search across all knowledge
read_graphRead entire graph or filtered subgraph
open_entityFull entity details with relations and observations
log_decisionRecord significant decisions with reasoning
add_learningStore reusable patterns and insights
get_relevant_decisionsFind past decisions relevant to current context
get_learningsGet applicable learnings for current task

Engineering Intelligence

ToolDescription
get_query_patternsCommon query patterns for a MITRE technique
get_field_referenceAvailable fields for a Splunk data model
get_macro_referenceCommon Splunk macros and usage patterns
find_similar_detectionsFind detections similar to what you want to create
suggest_detection_templateGenerate detection template from technique + patterns

Dynamic Tables

ToolDescription
create_tableCreate custom runtime tables
insert_rowInsert data into dynamic table
query_tableQuery with filtering, sorting, pagination
list_tablesList all tables (including pre-built analysis tables)
drop_tableRemove table and data
describe_tableGet schema and statistics

Pre-built tables: gap_analyses, source_comparisons, threat_actor_profiles, detection_recommendations

Autonomous Analysis

ToolDescription
auto_analyze_coverageAutomatic coverage analysis across threat profiles
auto_gap_reportComprehensive gap report with prioritized recommendations
auto_compare_sourcesDetailed cross-source comparison with reasoning
llm_enhanced_analysisLLM-enhanced analysis via MCP sampling
check_sampling_statusCheck if MCP sampling is available

Cache & Templates

ToolDescription
save_queryCache query results with optional TTL
get_saved_queryRetrieve cached results
list_saved_queriesList all saved queries
rebuild_indexForce re-index all detections
save_templateSave reusable query templates with {{placeholders}}
run_templateExecute template with parameter substitution
list_templatesList all templates with usage stats
get_templateGet template details and schema
delete_templateRemove a template

threadlinqs-intel (32 tools) — intelthreadlinqs-mcp@3.1.1

Threat Intelligence

ToolDescription
search_threatsSearch threat intelligence database by keyword, CVE, MITRE technique, or actor
get_threatGet full threat report with TTPs, IOCs, detections, and attribution
get_recent_threatsGet most recently published threats, ordered by creation date
list_threat_categoriesList all threat categories with counts
get_threat_transcriptsMulti-agent intelligence analysis transcripts for a threat

Detections & Coverage

ToolDescription
get_detectionsGet detection rules, filter by threat ID or type (SPL, KQL, Sigma)
export_detectionExport detection in raw SIEM format
get_mitre_coverageFull MITRE ATT&CK framework coverage map
get_mitre_techniqueDetailed info for a specific MITRE ATT&CK technique

IOC Intelligence & DNS Enrichment

ToolDescription
search_iocsSearch IOCs — IPs, domains, hashes, URLs, behavioral indicators
enrich_iocsTrigger DNS enrichment for IOCs (single, per-threat, or bulk)
get_ioc_dnsGet passive DNS enrichment data for a specific IOC (IP or domain)
get_enrichment_graphDNS enrichment infrastructure graph — nodes and edges
get_enrichment_overviewDNS enrichment overview — totals, discovered domains, cross-threat links

C2 Tracking

ToolDescription
list_c2_beaconsWild C2 beacons — command-and-control infrastructure intel
get_c2_statsC2 framework distribution, geographic spread, watermarks
get_c2_operatorsC2 operator cluster analysis — behavioral fingerprints
get_c2_cross_correlationsCross-intelligence correlations — IP, tag, MITRE matches
get_c2_watermarksCobalt Strike watermark clusters
get_c2_timelineMonthly C2 framework version distribution
get_c2_configsFull C2 beacon configurations — sleep, jitter, user agents

Correlations & Lookups

ToolDescription
get_correlations_overviewAggregated intelligence from 7 correlation engines
get_correlation_engineDetailed data from a specific correlation engine
get_cve_detailsCVE lookup with severity, CVSS, and description
get_cwe_detailsCWE weakness lookup with description and mitigations

Simulations & Debriefs

ToolDescription
list_simulationsList attack simulation scenarios
get_threat_simulationsGet simulation commands for a specific threat
list_debriefsList daily intelligence debriefs
get_debriefGet specific daily debrief by date

Platform

ToolDescription
get_platform_statsPlatform statistics — threats, detections, IOCs, coverage
get_roadmapPlatform roadmap — planned features and ideas
get_changelogRecent updates, features, and fixes

Workflow Engine

The workflow engine supports 6 step types that can be chained into multi-step detection engineering pipelines:

Step TypeDescriptionExample
tool_callExecute an MCP tool on a specified serversearch on security-detections
transformExtract or reshape data between steps$steps.threats[0].id
llm_promptSend a prompt to the configured LLM for analysisCoverage gap analysis
conditionalBranch execution based on a condition$steps.count > 0
loopIterate over an array, executing steps per itemLoop over techniques
parallelExecute multiple steps concurrentlyQuery multiple sources

Binding System

Steps can reference outputs from previous steps using $-expressions:

Code
$input.cve_id              # Workflow input parameter
$steps.threats             # Output from step with id "threats"
$steps.threats[0].id       # First item's id field
$steps.detail.mitre_attack # Nested field access

Pre-built Workflows (22)

Threat Intelligence

WorkflowTagsDescription
Threat Coverage Checkthreats, coverage, gapsGet recent threats, extract MITRE techniques, identify detection gaps
CVE Impact Assessmentcve, threats, assessmentAssess CVE impact by finding related threats and detections
Daily Threat Debriefdaily, debrief, threatsGenerate daily threat intelligence summary with coverage report
New Threat Triagetriage, threat, detectionsTriage specific threat with detection check and recommendations
Threat Actor Profilethreat-actor, profile, techniquesBuild complete threat actor profile with TTPs and coverage
IOC Enrichmentioc, enrichment, threatsEnrich IOCs with threat context, technique mapping, coverage check
Weekly Security Reportweekly, report, summaryComprehensive weekly report with stats and correlations

Coverage Analysis

WorkflowTagsDescription
Detection Gap Analysisgaps, coverage, mitreCompare MITRE coverage between threat intel and detections
Coverage Syncsync, coverage, mitreParallel sync of MITRE coverage across intel and detections
Detection Source Comparisoncomparison, sourcesCompare counts and coverage across Sigma, Splunk, Elastic, KQL
Detection Quality Reportquality, optimizationFind thin coverage, over-covered areas, rebalancing suggestions

Threat Hunting

WorkflowTagsDescription
C2 Framework Huntingc2, huntingIdentify C2 frameworks and check detection coverage
Lateral Movement Huntlateral-movement, huntingMap lateral movement techniques, build hunting plan
Credential Theft Auditcredentials, auditAudit credential dumping, brute force, kerberoasting detections
Exfiltration Watchlistexfiltration, dlpMap exfiltration techniques, C2 channels, DLP blind spots

Posture Assessment

WorkflowTagsDescription
Ransomware Readinessransomware, readinessEvaluate detection posture against ransomware TTPs
Initial Access Postureinitial-access, phishingAssess phishing, drive-by, supply chain, valid account coverage
Privilege Escalation Reviewprivesc, escalationDeep dive into UAC bypass, token manipulation, process injection
PowerShell Threat Matrixpowershell, lolbasPowerShell attack analysis: obfuscation, AMSI bypass, LOLBins
Cloud Security Coveragecloud, aws, azure, gcpCloud-specific attack coverage across AWS, Azure, GCP
Defense Evasion Deep Diveevasion, defenseExhaustive analysis of the largest MITRE tactic
Threat Simulation Readinesssimulation, purple-teamCheck if detection stack catches simulated TTPs

Autonomous Pipeline

The agents/ directory contains a LangGraph-based autonomous pipeline for end-to-end detection generation and validation:

Code
CTI Analyst ──► Coverage Analyzer ──► Detection Engineer ──► Atomic Executor
                                                                    │
                                                            Splunk Validator
                                                                    │
                                                              Data Dumper
                                                                    │
                                                              PR Stager

Agent Nodes

AgentRole
CTI AnalystAnalyzes threat intelligence and extracts TTPs
Coverage AnalyzerMaps existing detection coverage against threats
Detection EngineerGenerates new detection rules for gaps
Atomic ExecutorCreates Atomic Red Team test cases
Splunk ValidatorValidates SPL syntax and logic
SIEM ValidatorCross-platform SIEM validation
FP AnalystAssesses false positive risk
QA ReviewerQuality assurance review
VerifierEnd-to-end verification
Data DumperExports results to structured formats
PR StagerStages detection PRs for review
Attack Range BuilderProvisions test environments

Setup

bash
cd agents
cp .env.example .env
# Edit .env with your ANTHROPIC_API_KEY and SIEM_PLATFORM
npm install
npm run build

Configuration

MCP Server Configuration

The MCP servers are configured in .cursor/mcp.json:

config.json
{
  "mcpServers": {
    "security-detections": {
      "command": "node",
      "args": ["./dist/index.js"],
      "env": {
        "SIGMA_PATHS": "./detections/sigma/rules,./detections/sigma/rules-threat-hunting",
        "SPLUNK_PATHS": "./detections/security_content/detections",
        "ELASTIC_PATHS": "./detections/detection-rules/rules",
        "KQL_PATHS": "./detections/kql-bertjanp,./detections/kql-jkerai1",
        "STORY_PATHS": "./detections/security_content/stories"
      }
    },
    "threadlinqs-intel": {
      "command": "npx",
      "args": ["-y", "intelthreadlinqs-mcp@3.1.1"],
      "env": {
        "THREADLINQS_API_KEY": ""
      }
    }
  }
}

LLM Configuration

The workbench supports two LLM providers configured in the Settings page:

ProviderModelsAPI Key Env Var
Anthropicclaude-sonnet-4-20250514, claude-haiku-4-20250414, claude-opus-4-20250514ANTHROPIC_API_KEY
OpenAIgpt-4o, gpt-4o-mini, gpt-4-turboOPENAI_API_KEY

API keys can be set in three ways (in priority order):

  1. Settings page in the workbench UI
  2. Environment variables (ANTHROPIC_API_KEY, OPENAI_API_KEY, THREADLINQS_API_KEY)
  3. .env.local file in the workbench/ directory

Workbench Engine Settings

SettingDefaultDescription
max_prompt_size12,000 charsMaximum prompt length sent to LLM
per_binding_limit3,000 charsMax chars per step binding in prompts
llm_timeout180sLLM request timeout
error_policycontinuecontinue or stop on step failure
max_tokens4,096Maximum LLM response tokens

Using with AI Assistants

Claude Code (CLI)

Add the MCP servers to your Claude Code configuration:

bash
# Add the security-detections MCP server
claude mcp add security-detections \
  -e SIGMA_PATHS="/path/to/detections/sigma/rules,/path/to/detections/sigma/rules-threat-hunting" \
  -e SPLUNK_PATHS="/path/to/detections/security_content/detections" \
  -e ELASTIC_PATHS="/path/to/detections/detection-rules/rules" \
  -e KQL_PATHS="/path/to/detections/kql-bertjanp,/path/to/detections/kql-jkerai1" \
  -e STORY_PATHS="/path/to/detections/security_content/stories" \
  -- node /path/to/Security-Detections-MCP/dist/index.js

# Add the threadlinqs-intel MCP server
claude mcp add threadlinqs-intel \
  -e THREADLINQS_API_KEY="your-threadlinqs-api-key" \
  -- npx -y intelthreadlinqs-mcp@3.1.1

Or add them directly to ~/.claude.json (global) or .claude/settings.json (project-level):

config.json
{
  "mcpServers": {
    "security-detections": {
      "command": "node",
      "args": ["/path/to/Security-Detections-MCP/dist/index.js"],
      "env": {
        "SIGMA_PATHS": "/path/to/detections/sigma/rules,/path/to/detections/sigma/rules-threat-hunting",
        "SPLUNK_PATHS": "/path/to/detections/security_content/detections",
        "ELASTIC_PATHS": "/path/to/detections/detection-rules/rules",
        "KQL_PATHS": "/path/to/detections/kql-bertjanp,/path/to/detections/kql-jkerai1",
        "STORY_PATHS": "/path/to/detections/security_content/stories"
      }
    },
    "threadlinqs-intel": {
      "command": "npx",
      "args": ["-y", "intelthreadlinqs-mcp@3.1.1"],
      "env": {
        "THREADLINQS_API_KEY": "your-threadlinqs-api-key"
      }
    }
  }
}

Claude Desktop / Cursor / Windsurf

Add the servers to your MCP configuration file (.cursor/mcp.json, claude_desktop_config.json, etc.):

config.json
{
  "mcpServers": {
    "security-detections": {
      "command": "node",
      "args": ["/path/to/Security-Detections-MCP/dist/index.js"],
      "env": {
        "SIGMA_PATHS": "/path/to/detections/sigma/rules",
        "SPLUNK_PATHS": "/path/to/detections/security_content/detections",
        "ELASTIC_PATHS": "/path/to/detections/detection-rules/rules",
        "KQL_PATHS": "/path/to/detections/kql-bertjanp,/path/to/detections/kql-jkerai1"
      }
    },
    "threadlinqs-intel": {
      "command": "npx",
      "args": ["-y", "intelthreadlinqs-mcp@3.1.1"],
      "env": {
        "THREADLINQS_API_KEY": "your-threadlinqs-api-key"
      }
    }
  }
}

Example Prompts

Code
"Search for all detections related to T1059.001 (PowerShell)"

"Compare Sigma vs Splunk ESCU coverage for credential access techniques"

"Find detection gaps in our lateral movement coverage"

"What detections do we have for ransomware encryption behaviors?"

"Create a knowledge entity for APT29 with all known techniques"

"Generate a gap report for the top 10 most critical MITRE techniques"

API Reference

The workbench exposes a REST API for programmatic access:

MethodEndpointDescription
GET/api/mcp/serversList MCP servers and status (auto-connects on first call)
POST/api/mcp/serversReconnect a server ({action: "reconnect", server: "name"})
GET/api/mcp/toolsList all available tools
POST/api/mcp/{server}/{tool}Execute a tool
GET/api/workflowsList all workflows
POST/api/workflowsCreate a workflow
GET/api/workflows/{id}Get workflow details
PUT/api/workflows/{id}Update a workflow
POST/api/workflows/{id}/executeExecute a workflow
GET/api/workflows/{id}/streamStream execution events (SSE)
GET/api/executionsList execution history
DELETE/api/executionsClear execution history
POST/api/adhocExecute ad-hoc query (SSE stream)
GET/api/settingsGet settings (keys masked)
POST/api/settingsUpdate settings
GET/api/settings?test=trueTest LLM connection

Project Structure

Code
Security-Detections-MCP/
├── src/                          # MCP server source
│   ├── index.ts                  # Server entry point
│   ├── db/                       # SQLite database layer
│   ├── handlers/                 # MCP protocol handlers
│   ├── resources/                # MCP resources
│   ├── tools/                    # 74 MCP tools
│   │   ├── detections/           # Core detection query tools
│   │   ├── stories/              # Analytic story tools
│   │   ├── knowledge/            # Knowledge graph (12 tools)
│   │   ├── engineering/          # Detection engineering intelligence
│   │   ├── autonomous/           # Autonomous analysis tools
│   │   ├── dynamic/              # Dynamic table tools
│   │   ├── cache/                # Query caching tools
│   │   ├── meta/                 # Template tools
│   │   └── registry.ts           # Plugin-style tool registry
│   ├── types/                    # TypeScript type definitions
│   └── utils/                    # Shared utilities
│
├── workbench/                    # Detection Workbench (Next.js 15)
│   ├── app/                      # App Router pages & API routes
│   │   ├── api/                  # REST API endpoints
│   │   ├── adhoc/                # Ad-hoc terminal page
│   │   ├── tools/                # Tool explorer page
│   │   ├── workflows/            # Workflow library + builder
│   │   ├── threats/              # Threat intelligence page
│   │   ├── coverage/             # Coverage analysis page
│   │   ├── history/              # Execution history page
│   │   └── config/               # Settings page
│   ├── components/               # React components
│   │   ├── layout/               # Sidebar, header
│   │   ├── tools/                # Tool list, tool form
│   │   ├── shared/               # Loading, markdown renderer
│   │   └── workflow-builder/     # Visual workflow builder
│   ├── lib/                      # Core libraries
│   │   ├── mcp-pool.ts           # MCP server process pool
│   │   ├── mcp-config.ts         # MCP configuration loader
│   │   ├── llm-client.ts         # LLM abstraction (Anthropic/OpenAI)
│   │   ├── workflow-engine.ts    # Workflow execution engine
│   │   ├── workflow-presets.ts   # 22 pre-built workflows
│   │   └── transforms.ts        # $-binding expression resolver
│   └── types/                    # Workbench type definitions
│
├── agents/                       # Autonomous LangGraph pipeline
│   ├── nodes/                    # 12 agent node implementations
│   ├── graphs/                   # Orchestration graph definitions
│   ├── state/                    # LangGraph state management
│   ├── tools/                    # Specialized agent tools
│   └── tests/                    # Agent test suite
│
├── detections/                   # Detection rule repositories (git cloned)
│   ├── sigma/                    # SigmaHQ rules
│   ├── security_content/         # Splunk ESCU
│   ├── detection-rules/          # Elastic rules
│   ├── kql-bertjanp/             # KQL rules (bert-jan)
│   └── kql-jkerai1/              # KQL rules (jkerai1)
│
├── .cursor/
│   ├── mcp.json                  # MCP server configuration
│   ├── rules/                    # 6 Cursor AI rules
│   └── agents/                   # 15 Cursor agent definitions
│
├── docs/                         # Documentation & screenshots
└── package.json                  # Root package (v3.0.0)

Tech Stack

LayerTechnology
MCP ServerNode.js, TypeScript, @modelcontextprotocol/sdk, better-sqlite3
WorkbenchNext.js 15, React 19, Tailwind CSS v4, Zustand, React Flow
LLM IntegrationAnthropic Claude API, OpenAI API (configurable)
Threat IntelThreadlinqs Intel MCP (intelthreadlinqs-mcp@3.1.1)
Agent PipelineLangGraph, TypeScript
DatabaseSQLite with FTS5 full-text search
Detection FormatsSigma YAML, Splunk YAML/SPL, Elastic TOML/EQL, KQL

Development

Build the MCP server

Terminal
npm run build          # Compile TypeScript
npm run dev            # Watch mode
npm run lint           # Type check (strict)

Run the workbench

bash
cd workbench
npm run dev            # Development server (hot reload)
npm run build          # Production build
npm run start          # Production server

Run tests

Terminal
npm test               # Full test suite
npm run test:platform  # Cross-platform tests
npm run test:ci        # CI integration tests
npm run test:engineering  # Engineering tools tests

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-detection)
  3. Commit your changes (git commit -m 'Add amazing detection workflow')
  4. Push to the branch (git push origin feature/amazing-detection)
  5. Open a Pull Request

Acknowledgments


Built with MCP • Open Source • Detection Engineering