
Crowdsentinel Mcp Server
io.github.thomasxmPublished by GitHub account thomasxmv0.6.0Updated Nov 3, 2026
AI threat hunting & incident response for Elasticsearch/OpenSearch with endpoint & network forensics
Overview
Local MCP server that lets an AI assistant hunt threats and run incident response across Elasticsearch/OpenSearch, endpoint and network forensics data.
- What you can do
- Search and query Elasticsearch/OpenSearch indices, documents, clusters, aliases and data streams, including EQL and ES|QL hunts
- Run threat hunts by attack pattern, kill-chain stage or timeframe, and execute or list bundled detection rules with MITRE ATT&CK mapping
- Extract and decode indicators of compromise, including encoded PowerShell and base64 payloads, and map them to kill-chain frameworks
- Analyse EVTX logs with Chainsaw and Sigma rules, PCAP traffic with Wireshark/TShark, and local hosts with osquery
- Collect live endpoint artefacts through Velociraptor and correlate findings across SIEM, endpoint and network sources
- Enrich indicators via threat-intel services and MISP, and keep…
- When to use it
- Useful for security analysts and incident responders who want an assistant to query their SIEM, triage alerts, run detection rules and pivot across endpoint and network evidence in natural language. Best suited to teams already running Elasticsearch or OpenSearch with security event data.
- Requirements
- Runs locally as a Python package (pip or uvx) on a desktop; needs an Elasticsearch or OpenSearch endpoint via ELASTICSEARCH_HOSTS or ELASTICSEARCH_CLOUD_ID plus one credential set (ELASTICSEARCH_API_KEY, ELASTICSEARCH_BEARER_TOKEN, or ELASTICSEARCH_USERNAME with ELASTICSEARCH_PASSWORD). Optional extras need tshark for PCAP analysis, a one-time setup download of Chainsaw and Sigma rules, and separate keys for threat-intel and MISP features.
Installation
In SourceWeft
- Open Crowdsentinel Mcp Server in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
CrowdSentinel MCP Server
AI-Powered Threat Hunting & Incident Response Framework
[PyPI] [PyPI Downloads] [Python] [License] [MCP] [Tools] [Rules]
MCP Official Registry · PyPI Package
Open-source threat hunting orchestrator connecting LLMs to enterprise security data via Model Context Protocol (MCP)
Quick Start · Installation · CLI Usage · Features · Architecture · Documentation · Examples
Warning This project is in active development and intended for security testing, research, and educational purposes only. It is not production-ready. Do not deploy in production environments. APIs, tool interfaces, and data formats may change without notice. Use at your own risk.
Demo
https://github.com/user-attachments/assets/0d0381f0-5b68-43b2-8630-19ec130885b2
What is CrowdSentinel?
CrowdSentinel transforms traditional SIEM querying into intelligent, framework-driven investigations using natural language. It serves as a unified security intelligence layer that connects large language models to enterprise security data sources, enabling:
- Natural Language Threat Hunting — Query Elasticsearch using plain English
- AI-Guided Investigation Workflows — Built-in prompts guide agents through proper IR methodology
- Persistent Investigation State — Memory-managed IoC tracking, forensic timelines, and cross-query correlation that survives across sessions (8GB FIFO storage)
- Cross-Tool IoC Correlation — IoCs discovered in one tool are automatically available to all others
- Multi-Source Analysis — Elasticsearch, EVTX logs (Chainsaw), PCAP files (Wireshark), live endpoint forensics (Velociraptor), local host forensics (osquery)
- Velociraptor Endpoint Forensics — 25 MCP tools for live artefact collection (processes, network, persistence, execution evidence, NTFS MFT, SRUM, remote EVTX) with automatic IoC extraction
- Encoded-Command Deobfuscation — Automatically peels base64/UTF-16LE/gzip/hex layers off encoded commands (e.g. PowerShell
-EncodedCommand) so C2 addresses hidden inside them surface as IoCs - Adaptive Schema Intelligence — Data-driven schema registry (ECS, Sysmon, Windows Security, auditd, Zeek, Packetbeat, AWS CloudTrail) adapts hunts to each index's field conventions
- DFIR Knowledge Resources — 9 MCP resources exposing investigation playbooks, Pyramid of Pain reference, and cross-correlation guidance directly to connected AI agents
- Standalone CLI — Full threat hunting from the terminal without an MCP client
Installation
Install from PyPI (recommended)
Optional extras:
Detection rules (6,060 Lucene + EQL + ES|QL) are bundled with the package — no download needed. The setup command downloads additional tools:
- Chainsaw binary for EVTX analysis
- 3,000+ Sigma rules for Chainsaw
Downloaded tools are stored in ~/.crowdsentinel/ and persist across package upgrades.
System dependency for PCAP analysis:
Run directly with uvx (no install needed)
Install from source
The setup script will:
- Install dependencies (pipx, uv, Claude Code CLI if needed)
- Bundle 6,060 detection rules and download Chainsaw binary
- Prompt for Elasticsearch credentials (never hardcoded)
- Configure the MCP server with Claude Code
- Validate your connection
With --full, every optional extra is installed too, so all 139 MCP tools have their dependencies available — the recommended mode for a production-ready server.
Installed Size
CrowdSentinel bundles 6,060 detection rules and integrates with external analysis tools. Below is the full disk space breakdown so you can plan accordingly.
Core package (via pip or uvx):
Additional tools (via crowdsentinel setup):
System dependency (via package manager):
Full installation summary:
Note: PyPI download size is only 8.9 MB (wheel) thanks to compression of the bundled detection rules.
Quick Start
1. Set environment variables
2. Connect to an MCP Client
CrowdSentinel works with any MCP-compatible AI agent. Choose your client below:
Claude Code (CLI)
Claude Desktop
Edit ~/.config/Claude/claude_desktop_config.json (Linux) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
VS Code Copilot
Create .vscode/mcp.json in your workspace:
Then enable MCP in VS Code settings: "chat.mcp.enabled": true
Cursor
Create or edit ~/.cursor/mcp.json:
Roo Code (VS Code Extension)
Create .roo/mcp.json in your workspace:
Or configure via Roo Code settings panel: Settings > MCP Servers > Add Server.
5ire
In 5ire settings (v0.15.0+), add an MCP server with:
- Command:
uvx - Arguments:
crowdsentinel-mcp-server - Environment Variables:
ELASTICSEARCH_HOSTS=https://localhost:9200ELASTICSEARCH_API_KEY=your_api_keyVERIFY_CERTS=false
Note: 5ire v0.14.0 has known MCP compatibility issues. Use v0.15.0+ for reliable operation.
Any MCP Client (Generic)
stdio transport (default — works with most clients):
SSE transport (for web-based clients):
HTTP transport (for REST API clients):
3. Or use the CLI directly
CLI Usage
CrowdSentinel provides a full CLI for threat hunting from the terminal:
Available Commands
Output Formats
All commands support --output/-o with three formats:
Agent Mode (--mcp)
The analyse --mcp flag replaces deterministic analysis with an AI agent that autonomously uses all 139 MCP tools to investigate. The agent follows the 4-phase IR methodology: hunt, analyse, correlate, report.
Authentication:
Agent flags:
Pipeline Examples
Deterministic analysis (no API key needed):
AI agent investigation (requires auth):
Key Features
Architecture
What's Included
Tool Categories (139 Tools)
Velociraptor tools register when
VELOCIRAPTOR_API_CONFIGis set; osquery tools register when a localosqueryibinary is present; the 10 high-risk write tools are hidden whenDISABLE_HIGH_RISK_OPERATIONS=true.
Security Frameworks
Detection Rules (6,060 Rules)
Platforms: Windows, Linux, macOS, Cloud (AWS/Azure/GCP), Network, Identity
Log Sources: PowerShell, Sysmon, Security Events, Process Creation, Audit logs
Encoded-Command Deobfuscation
Real intrusions hide C2 addresses and URLs inside encodings the SIEM stores verbatim — most commonly PowerShell -EncodedCommand (base64 of UTF-16LE), but also FromBase64String, base64→gzip, bare base64, and hex blobs. CrowdSentinel decodes these layers automatically during IoC extraction and via the dedicated decode_command tool, so the inner indicators surface instead of staying buried:
- Zero extra dependencies — the decoder core uses only the Python standard library (
base64/zlib/codecs/binascii) - Optional long tail — install the
deobfextra (pip install 'crowdsentinel-mcp-server[deobf]') to add chepy for XOR and exotic encodings; its absence degrades gracefully - Provenance — every decode records its recipe (e.g.
base64->utf-16le) for the IR report - Safe by design — decode-only (nothing is executed), with depth and output-size bounds so a decompression bomb cannot hang the server
Configuration
Environment Variables
Security Warning: Never use
VERIFY_CERTS="false"or plain-text passwords in production. Use API keys or service tokens with TLS certificate verification enabled. For self-signed certificates, setELASTICSEARCH_CA_CERTto your CA certificate path.
Production Configuration Examples
Elastic Cloud
Self-Hosted with Custom CA
Mutual TLS (mTLS)
Development / Testing (insecure)
This configuration is not suitable for production. Use API keys with TLS in production environments.
Transport Modes
The HTTP transports are hardened at the transport layer:
- Origin validation (anti DNS-rebinding) — browser requests are rejected unless their
Originis loopback or listed inMCP_ALLOWED_ORIGINS(comma-separated;*alone disables the check). Requests without anOriginheader — every non-browser MCP client — are unaffected. - Audit logging — every HTTP exchange is logged at the transport boundary (JSON-RPC method, tool name, body size, path), including requests the tool layer never sees, such as unknown tools or protocol errors. Logs are metadata-only, memory-bounded, and sanitised against log forgery.
Disabling Write Operations
For read-only access (recommended for production):
This hides destructive tools: create_index, delete_index, index_document, delete_document, delete_by_query, create_data_stream, delete_data_stream, put_alias, delete_alias, general_api_request
Usage Examples
Example 1: Hunt for Brute Force Attacks
Example 2: Investigate a Suspicious Host
Example 3: Kill Chain Analysis
Example 4: Network Traffic Analysis
Example 5: CLI Threat Hunt
Compatibility
For Developers
Project Structure
Design Patterns
Adding a New Tool
- Create client method in
src/clients/common/your_module.py:
- Add to SearchClient in
src/clients/common/client.py:
- Create tool wrapper in
src/tools/your_tools.py:
- Register in server in
src/server.py:
Running Tests
The test suite is a bottom-up pyramid (see tests/README.md): hermetic unit tests, then live tiers that spin up a real Elasticsearch (via testcontainers) and the real MCP server.
Live tiers are opt-in (--run-integration / --run-api / --run-e2e / --run-system), so plain pytest tests/ stays fast and hermetic.
Local Testing Environment
Default credentials (testing only):
- Elasticsearch:
elastic/test123 - OpenSearch:
admin/admin
Roadmap
See CHANGELOG.md for detailed version history.
Velociraptor Integration (Live Endpoint Forensics)
CrowdSentinel integrates with Velociraptor for live endpoint forensic artefact collection. When configured, 25 additional MCP tools and 5 cross-correlation tools become available.
Setup
The API client config is generated from the Velociraptor server:
Available Tools
Cross-Source IoC Sharing
IoCs extracted from Velociraptor artefacts are automatically captured into the active investigation alongside SIEM, Chainsaw, and Wireshark findings. Use get_shared_iocs to retrieve the combined indicator set for cross-source correlation.
DFIR Knowledge Resources
9 MCP resources provide structured investigation reference data directly to connected AI agents:
Documentation
User Guides
Feature Guides
Developer Guides
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
Licence
GNU General Public Licence v3.0 — See LICENSE for details.
Cyber Range
CrowdSentinel ships with a companion crowdsentinel-range — a fully ephemeral AWS lab that generates ground-truth-labeled attack telemetry so you can investigate real detections rather than synthetic data.
Current range (v1) — 2-host AWS lab
3 commands to go from zero to hunting:
Demo: 73,328 events triaged in ~40 seconds — 2 shellcode payloads decoded, C2 IP extracted from raw bytes, full IR report with 19 MITRE techniques.
Future range (v2) — enterprise AD environment
The next range generation targets full Active Directory kill-chain coverage: initial access → lateral movement → domain compromise, with a network security monitor layer, runtime security instrumentation, centralised vulnerability management, and deception infrastructure. Inspired by DetectionLab, Ludus, and SimuLand.
v2 target capabilities:
Design references: DetectionLab (Sysmon+WEF+Splunk convergence), Ludus (modular Proxmox/Ansible, VLAN segmentation), SimuLand (multi-domain AD forest, cloud-native), SANS FOR508 (artifact-first DFIR workflow), Falco (CO-RE eBPF probe architecture, kernel module fallback).
Acknowledgements
CrowdSentinel stands on the shoulders of outstanding open-source projects. Thank you to all of their maintainers and contributors.
Protocol & server framework
- Model Context Protocol — the protocol connecting LLMs to tools, by Anthropic
- FastMCP — the Python MCP server framework this project is built on
Analysis engines & forensic tools
- Chainsaw — EVTX log analyser by WithSecure Labs
- Velociraptor — live endpoint forensics and DFIR platform by Velocidex/Rapid7
- osquery — SQL-powered host instrumentation by the osquery Foundation
- Wireshark / TShark — network protocol analysis by the Wireshark Foundation
- Chepy — CyberChef-like decoding library powering optional long-tail deobfuscation
- sqlglot — SQL parser used to safely validate osquery queries
Detection content
- Sigma / SigmaHQ — the community detection rule standard and rule corpus
- Elastic detection-rules — Elastic's prebuilt EQL/ES|QL detection rules
- Community-contributed Sigma and custom rules
Data platforms & threat intelligence
- Elasticsearch and OpenSearch Python clients
- MISP / PyMISP — open-source threat intelligence platform and client
- stix2 — OASIS STIX 2.1 library for structured IoC export
- Shodan InternetDB, VirusTotal, AbuseIPDB, and abuse.ch ThreatFox — IoC enrichment services with free tiers
Development & testing
- testcontainers-python — real Elasticsearch containers for the live test tiers
- pytest, Ruff, Bandit — test runner, linting, and SAST
Methodology frameworks
- Cyber Kill Chain (Lockheed Martin), Pyramid of Pain (David J. Bianco), Diamond Model (Caltagirone, Pendergast & Betz), MITRE ATT&CK
Source: README.md at commit bfca612
Tools
0Version history
1- v0.6.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts