CrowdSentinels-AI-MCP
An AI-powered threat hunting and incident response MCP server for Elasticsearch/OpenSearch. It enables natural language threat hunting, AI-guided investigation workflows, persistent investigation state, cross-tool IoC correlation, and multi-source analysis including Velociraptor endpoint forensics and encoded-command deobfuscation.
Package and access
Local package with source-attributed installation metadata. Koskamo does not execute packages during review.
Checks and signals
Each line is separate evidence, not a trust score.
- Popularity 204 GitHub stars
What you can do with it
- Query Elasticsearch using plain English for natural language threat hunting
- Guide agents through proper IR methodology with built-in prompts
- Collect live artefacts from endpoints using Velociraptor
- Deobfuscate encoded commands to surface hidden C2 addresses
Source and maintenance
- Last repository push
- Latest release
- v0.6.0
- Maintenance checked
Packages and installation
Source-provided package data. Koskamo has not executed or live-probed this package.
crowdsentinel-mcp-server 0.6.0
{
"version": "0.6.0",
"transport": "stdio",
"identifier": "crowdsentinel-mcp-server",
"registryType": "pypi",
"environmentVariables": [
{
"name": "ELASTICSEARCH_HOSTS",
"format": "string",
"default": "https://localhost:9200",
"description": "Comma-separated Elasticsearch hosts. Supports HTTP/HTTPS, local/remote/cloud (e.g., http://localhost:9200, https://es.prod.example.com:9200)"
},
{
"name": "ELASTICSEARCH_CLOUD_ID",
"format": "string",
"description": "Elastic Cloud deployment ID (alternative to ELASTICSEARCH_HOSTS for cloud deployments)"
},
{
"name": "ELASTICSEARCH_API_KEY",
"format": "string",
"description": "API key for authentication (recommended for production and Elastic Cloud)"
},
{
"name": "ELASTICSEARCH_USERNAME",
"format": "string",
"description": "Username for basic authentication (alternative to API key)"
},
{
"name": "ELASTICSEARCH_PASSWORD",
"format": "string",
"description": "Password for basic authentication (used with ELASTICSEARCH_USERNAME)"
},
{
"name": "ELASTICSEARCH_BEARER_TOKEN",
"format": "string",
"description": "Bearer/service token for authentication (alternative to API key)"
},
{
"name": "VERIFY_CERTS",
"format": "string",
"default": "false",
"description": "TLS certificate verification: true (verify CA — production), false (skip — dev/test), or /path/to/ca.crt (custom CA)"
},
{
"name": "REQUEST_TIMEOUT",
"format": "string",
"description": "Request timeout in seconds (e.g., 60 or 10.5)"
}
]
}Tools
Reported by the attributed source; not independently observed by Koskamo.
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · repository · passed · metadata changed · updated
- · backfill · recorded · Pre-expansion baseline; unobserved rich metadata remains unknown
Connect from your client
Each snippet configures the same source-provided package; replace placeholders before use.
Cursor
{
"mcpServers": {
"crowdsentinels-ai-mcp": {
"command": "uvx",
"args": [
"crowdsentinel-mcp-server==0.6.0"
],
"env": {
"ELASTICSEARCH_HOSTS": "<YOUR_ELASTICSEARCH_HOSTS>",
"ELASTICSEARCH_CLOUD_ID": "<YOUR_ELASTICSEARCH_CLOUD_ID>",
"ELASTICSEARCH_API_KEY": "<YOUR_ELASTICSEARCH_API_KEY>",
"ELASTICSEARCH_USERNAME": "<YOUR_ELASTICSEARCH_USERNAME>",
"ELASTICSEARCH_PASSWORD": "<YOUR_ELASTICSEARCH_PASSWORD>",
"ELASTICSEARCH_BEARER_TOKEN": "<YOUR_ELASTICSEARCH_BEARER_TOKEN>",
"VERIFY_CERTS": "<YOUR_VERIFY_CERTS>",
"REQUEST_TIMEOUT": "<YOUR_REQUEST_TIMEOUT>"
}
}
}
}Cline
{
"mcpServers": {
"crowdsentinels-ai-mcp": {
"command": "uvx",
"args": [
"crowdsentinel-mcp-server==0.6.0"
],
"env": {
"ELASTICSEARCH_HOSTS": "<YOUR_ELASTICSEARCH_HOSTS>",
"ELASTICSEARCH_CLOUD_ID": "<YOUR_ELASTICSEARCH_CLOUD_ID>",
"ELASTICSEARCH_API_KEY": "<YOUR_ELASTICSEARCH_API_KEY>",
"ELASTICSEARCH_USERNAME": "<YOUR_ELASTICSEARCH_USERNAME>",
"ELASTICSEARCH_PASSWORD": "<YOUR_ELASTICSEARCH_PASSWORD>",
"ELASTICSEARCH_BEARER_TOKEN": "<YOUR_ELASTICSEARCH_BEARER_TOKEN>",
"VERIFY_CERTS": "<YOUR_VERIFY_CERTS>",
"REQUEST_TIMEOUT": "<YOUR_REQUEST_TIMEOUT>"
}
}
}
}VS Code
{
"servers": {
"crowdsentinels-ai-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"crowdsentinel-mcp-server==0.6.0"
],
"env": {
"ELASTICSEARCH_HOSTS": "<YOUR_ELASTICSEARCH_HOSTS>",
"ELASTICSEARCH_CLOUD_ID": "<YOUR_ELASTICSEARCH_CLOUD_ID>",
"ELASTICSEARCH_API_KEY": "<YOUR_ELASTICSEARCH_API_KEY>",
"ELASTICSEARCH_USERNAME": "<YOUR_ELASTICSEARCH_USERNAME>",
"ELASTICSEARCH_PASSWORD": "<YOUR_ELASTICSEARCH_PASSWORD>",
"ELASTICSEARCH_BEARER_TOKEN": "<YOUR_ELASTICSEARCH_BEARER_TOKEN>",
"VERIFY_CERTS": "<YOUR_VERIFY_CERTS>",
"REQUEST_TIMEOUT": "<YOUR_REQUEST_TIMEOUT>"
}
}
}
}Claude Desktop
{
"mcpServers": {
"crowdsentinels-ai-mcp": {
"command": "uvx",
"args": [
"crowdsentinel-mcp-server==0.6.0"
],
"env": {
"ELASTICSEARCH_HOSTS": "<YOUR_ELASTICSEARCH_HOSTS>",
"ELASTICSEARCH_CLOUD_ID": "<YOUR_ELASTICSEARCH_CLOUD_ID>",
"ELASTICSEARCH_API_KEY": "<YOUR_ELASTICSEARCH_API_KEY>",
"ELASTICSEARCH_USERNAME": "<YOUR_ELASTICSEARCH_USERNAME>",
"ELASTICSEARCH_PASSWORD": "<YOUR_ELASTICSEARCH_PASSWORD>",
"ELASTICSEARCH_BEARER_TOKEN": "<YOUR_ELASTICSEARCH_BEARER_TOKEN>",
"VERIFY_CERTS": "<YOUR_VERIFY_CERTS>",
"REQUEST_TIMEOUT": "<YOUR_REQUEST_TIMEOUT>"
}
}
}
}Let your agent find its tools
Find servers like CrowdSentinels-AI-MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.