← Back to directory
C

Crowdsentinel MCP Server

Community
AI-powered threat hunting & incident response MCP server for Elasticsearch/OpenSearch.
Category
Database #20 of 58
Stars
★ 204 Very popular
Transport
stdio (local process) · SSE · Streamable HTTP
Runtime
Python · Prebuilt binary
Credentials
API key / credential required
License
GPL-3.0
Last commit
59FMRS · C

CrowdSentinel MCP Server provides comprehensive AI-driven threat hunting and incident response capabilities for Elasticsearch/OpenSearch, with a rich set of tools, extensive detection rules, and multi-source integration. However, its development status, security configuration defaults, and potential sensitive data access make it better suited for research and testing environments rather than production.

Strongest · Setup experience 14/20 Weakest · Reliability 8/20

Reliability
8/20
Security and permissions
12/20
Maintenance
13/20
Documentation
12/20
Setup experience
14/20
Why each score
Reliability 8/20
The repository describes a tiered test suite (unit/integration/API/e2e/system under tests/), Makefile targets such as make test-unit and make test-integration, and testcontainers-based real Elasticsearch tests. The server manifest consistently declares the pypi package crowdsentinel-mcp-server 0.6.0 with stdio transport, matching the README's claims of 139 tools, 9 resources, and 4 transport modes. However, this static review only has the README and manifest: no actual CI workflow files, committed test code, or test logs were supplied, so execution cannot be verified. Reliability is therefore capped and deducted. The package is also large (~113 MB) with tool registration depending on optional components (Velociraptor, osquery, tshark, Chainsaw), adding uncertainty about whether the declared tool count matches real runtime behavior. Deductions: no verifiable execution evidence and thin error-path evidence. Score: 8.
Security and permissions 12/20
Credential handling appears sound on paper: the manifest supports API key, username/password, and bearer token with the secret fields correctly marked isSecret, and the README install examples contain no real tokens. High-risk write tools are hidden when DISABLE_HIGH_RISK_OPERATIONS=true (create_index, delete_index, index_document, delete_by_query, etc.), and the HTTP transports claim Origin validation (anti DNS-rebinding) plus transport-level audit logging. However, the quick-start examples default to VERIFY_CERTS=false, disabling TLS certificate verification, and destructive operations are available unless the user sets an environment variable. Since only the README and manifest were reviewed, none of these safeguards could be verified at the code level. No malware, credential theft, or covert exfiltration patterns were identified in the supplied materials, and no red-line condition was clearly triggered. Deductions for permissive defaults and unverifiable security controls. Score: 12.
Maintenance 13/20
Evidence of maintenance includes a clear license (GPL-3.0), a released version (0.6.0), a published PyPI package, detailed README and CHANGELOG references, an un-archived repository, and only 1 open issue. These indicate an active project with a defined ownership and licensing path. The static materials do not show commit history, release tags, dependency-update cadence, or issue-response behavior, so sustained governance cannot be fully verified. Score 13 reflects the verifiable license, versioning, and release channel, with deductions for unverifiable ongoing maintenance activity.
Documentation 12/20
The README is extensive: quick start, installation via pip/uv/uvx/source, per-client configuration examples for Claude Code, Claude Desktop, VS Code, Cursor, Roo Code, 5ire, and generic MCP clients, environment variable tables with production security warnings, tool categories, transport modes, CLI commands, and a doctor command for readiness troubleshooting. The documentation is layered and provides concrete examples. However, key numbers are self-reported and not statically verifiable (139 tools, 6,060 rules, 8GB FIFO, 9 resources), and there is no authoritative per-tool parameter reference or separate troubleshooting/limits section in the supplied materials. Deductions for reliance on untrusted README claims and missing cross-checkable parameter and limitation evidence. Score: 12.
Setup experience 14/20
Setup paths are clear and multi-layered: PyPI via pip/uv/uvx, source via setup.sh, with ready-to-use JSON/command examples for Claude Code, Claude Desktop, VS Code, Cursor, Roo Code, 5ire, and generic MCP clients, plus a crowdsentinel doctor command for offline readiness checks. The documented path from environment variables to a working connection is concrete and includes stdio, SSE, and HTTP variants. Deductions: no verifiable CI installation evidence was provided, and the full-featured setup requires extra system dependencies (tshark) plus optional Velociraptor/osquery integrations, so real-world full setup is heavier than the quick start implies. Static calibration caps setup at 15; final score: 14.

Static review · not runListed 2026-08-07

Read the FMRS scoring method →

Fit and risk

What it can accessReads local filesRuns commands or codeUses the networkConnects to a database

Best for

  • Security analysts conducting threat hunting in Elasticsearch or OpenSearch environments
  • Incident responders needing AI-assisted investigation workflows
  • Red teams/security testers analyzing attack simulation data
  • Researchers using cyber range environments like crowdsentinel-range

Not for

  • Production environments (explicitly warned not for production)
  • Users without security background (targets DFIR professionals)
  • Users needing Splunk integration (still on roadmap)
  • Users relying on a single data source (integrates with multiple)

Required permissions

  • Requires Elasticsearch/OpenSearch credentials (API key or username/password)
  • Can read and write Elasticsearch indices (can be restricted via DISABLE_HIGH_RISK_OPERATIONS)
  • Optional API keys for external threat intelligence services (VirusTotal, Shodan, etc.)
  • Requires local system permissions to run tools like osquery and tshark
  • Requires Velociraptor API configuration for endpoint forensics

Risks and side effects

  • High-risk operations: can create/delete indices, documents, data streams, and aliases
  • Potential sensitive data exposure: searches may return documents containing PII or sensitive security data
  • TLS verification disabled by default (VERIFY_CERTS default false), risk of man-in-the-middle attacks
  • External service dependencies: requires access to threat intelligence APIs, may incur costs or rate limits
  • Active development status: APIs may change, not suitable for production

Setup

Before you start

Runtime:Python · Prebuilt binary

ELASTICSEARCH_API_KEY optionalsecret Elasticsearch API key, recommended for production and Elastic Cloud; generate it in your cluster.
ELASTICSEARCH_PASSWORD optionalsecret Basic auth password, used with ELASTICSEARCH_USERNAME.
ELASTICSEARCH_BEARER_TOKEN optionalsecret Service/bearer token; highest auth priority, alternative to API key.
ELASTICSEARCH_CLIENT_KEY optionalsecret Client private key path for mTLS.
VIRUSTOTAL_API_KEY optionalsecret VirusTotal API key, free tier 500 lookups/day; optional.
ABUSEIPDB_API_KEY optionalsecret AbuseIPDB API key, free tier 1,000 lookups/day; optional.
THREATFOX_API_KEY optionalsecret abuse.ch ThreatFox API key, free unlimited; optional.
MISP_API_KEY optionalsecret MISP API key (40-char hex).
ANTHROPIC_API_KEY optionalsecret Anthropic auth for the CLI `analyse --mcp` agent mode; optional.
OPENAI_API_KEY optionalsecret OpenAI auth for the CLI `analyse --mcp` agent mode; optional (browser login or local models also work).
Other optional settings (12)
ELASTICSEARCH_HOSTS optional Comma-separated Elasticsearch hosts (e.g. https://localhost:9200); this is the default.
ELASTICSEARCH_CLOUD_ID optional Elastic Cloud deployment ID, an alternative to ELASTICSEARCH_HOSTS for cloud deployments.
ELASTICSEARCH_USERNAME optional Basic auth username, used with ELASTICSEARCH_PASSWORD.
VERIFY_CERTS optional TLS verification: true (production), false (skip, dev only), or a CA cert path; default false.
REQUEST_TIMEOUT optional Request timeout in seconds, e.g. 30 or 10.5.
ELASTICSEARCH_CA_CERT optional Path to a CA certificate for self-signed setups.
ELASTICSEARCH_CLIENT_CERT optional Client certificate path for mTLS.
DISABLE_HIGH_RISK_OPERATIONS optional Set to true to hide the 10 high-risk write tools for read-only access.
MCP_ALLOWED_ORIGINS optional Extra allowed Origins (comma-separated) for HTTP/SSE transports, anti DNS-rebinding.
VELOCIRAPTOR_API_CONFIG optional Path to a Velociraptor API client YAML; setting it enables the 25 endpoint forensics tools.
MISP_URL optional MISP instance URL for event export and attribute search; offline JSON export works without it.
MISP_SSL_VERIFY optional Set to false for self-signed MISP instances in dev only.

Install via pip: pip install crowdsentinel-mcp-server. Run 'crowdsentinel setup' to download detection rules and tools. Set environment variables (ELASTICSEARCH_HOSTS, etc.) and run the server via uvx. Optional extras: velociraptor and deobf. For standard MCP clients use stdio transport; for web clients use SSE or HTTP.

.mcp.json
{
  "mcpServers": {
    "crowdsentinel": {
      "command": "uvx",
      "args": [
        "crowdsentinel-mcp-server"
      ],
      "env": {
        "ELASTICSEARCH_HOSTS": "https://localhost:9200",
        "ELASTICSEARCH_API_KEY": "your_api_key",
        "VERIFY_CERTS": "false"
      }
    }
  }
}

Shown for Claude Code. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "crowdsentinel": {
      "command": "uvx",
      "args": [
        "crowdsentinel-mcp-server"
      ],
      "env": {
        "ELASTICSEARCH_HOSTS": "https://localhost:9200",
        "ELASTICSEARCH_API_KEY": "your_api_key",
        "VERIFY_CERTS": "false"
      }
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add crowdsentinel -e ELASTICSEARCH_HOSTS=https://localhost:9200 -e ELASTICSEARCH_API_KEY=your_api_key -e VERIFY_CERTS=false -- uvx crowdsentinel-mcp-server

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

After connecting, the client's tool list should show CrowdSentinel's 139 MCP tools (e.g. hunt_by_timeframe, get_host_activity_timeline); you can also run `crowdsentinel doctor` for an offline config check, or `crowdsentinel health` to confirm the Elasticsearch connection.

Troubleshooting

  1. Ensure ELASTICSEARCH_HOSTS or ELASTICSEARCH_CLOUD_ID is set
  2. Verify credentials are correct (API key or username/password)
  3. If using self-signed certificates, set VERIFY_CERTS to true and configure ELASTICSEARCH_CA_CERT
  4. Run 'crowdsentinel doctor' to check configuration readiness
  5. For system dependencies (like tshark), ensure they are installed
  6. For Velociraptor, set the VELOCIRAPTOR_API_CONFIG environment variable

Things to try

Once connected, you can ask your AI assistant things like:

  • Hunt for brute force attacks in the last hour.
  • Show me all activity on host DESKTOP-ABC123 in the last 24 hours.
  • We found C2 beaconing. What adjacent kill chain stages should we hunt next?
  • Analyse this PCAP file for C2 beaconing.

Use cases

Search Elasticsearch for threats using natural language
Execute detection rules and map MITRE ATT&CK techniques
Collect endpoint forensic artifacts using Velociraptor
Analyze PCAP files for C2 beaconing
Hunt EVTX logs with Chainsaw and Sigma rules
Correlate IoCs across SIEM and endpoint sources

Supported clients

Claude Code
Claude Desktop
VS Code
Cursor
Roo Code
5ire

Listed from the project's documentation, not tested by this site.

Overview

CrowdSentinel MCP Server is an open-source threat hunting orchestrator that connects large language models to enterprise security data via the Model Context Protocol (MCP). It provides 139 MCP tools for natural language threat hunting, detection rule execution (6,060 built-in rules), endpoint forensics (Velociraptor), host forensics (osquery), EVTX log analysis (Chainsaw), and PCAP network analysis (Wireshark). It supports multiple security frameworks (Cyber Kill Chain, Pyramid of Pain, Diamond Model, MITRE ATT&CK) and features persistent investigation state, cross-tool IoC correlation, and encoded-command deobfuscation. The server is intended for security testing, research, and educational purposes only, and is not production-ready.

Similar servers

Source revision bfca612f4672 Data synced 2026-10-19 Read the FMRS scoring method