Connects AI agents with CrowdStrike Falcon for security analysis and automation.
The MCP server io.github.CrowdStrike/falcon-mcp connects AI agents with CrowdStrike Falcon to support security analysis and automation. It is described as an MCP server focused on integrating “crowdstrike” and “falcon” functionality in an “mcp” context.
🛠️ Key Features
Integrates AI agents with CrowdStrike Falcon
Enables security analysis and automation
Labeled as an MCP server (mcp-server)
🚀 Use Cases
Security analysis workflows using CrowdStrike Falcon
Automation tasks that depend on Falcon integration
⚡ Developer Benefits
Clear server identity: io.github.CrowdStrike/falcon-mcp
Uses tags relevant to integration: ai, crowdstrike, falcon, mcp, mcp-server
⚠️ Limitations
Provided data does not include tool names, toolCount, or API specifics beyond the general goal of Falcon integration.
falcon-mcp is a Model Context Protocol (MCP) server that connects AI agents with the CrowdStrike Falcon platform, powering intelligent security analysis in your agentic workflows. It delivers programmatic access to essential security capabilities—including detections, threat intelligence, and host management—establishing the foundation for advanced security operations and automation.
IMPORTANT
Pre-1.0 release: falcon-mcp is under active development ahead of 1.0. Tool names, parameters, and response shapes can still change between minor releases, so pin a version and check the changelog before upgrading. The project is actively maintained by CrowdStrike and supported through GitHub Issues; CrowdStrike customers can also raise questions through their usual Technical Support channels. See SUPPORT.md for details.
Search and aggregate Falcon Intelligence Recon notifications (recon alerts), monitoring rules, and exposed-data records for dark web, leaked credentials, and typosquatting, and preview prospective rule noise
Retrieve Zero Trust Assessment posture scores and sensor and OS hardening signals for hosts
See the Module Overview for required API scopes, available tools, and FQL resources.
NOTE
The Guardian module reads the /aidr API, whose route and parameter surface is not
yet uniform across Falcon deployments. Some tools return HTTP 400 or 404 where an
older surface is live. See the Guardian module docs for the details.
Quick Start
Install
Using uv (recommended)
bash
uv tool install falcon-mcp
Using pip
bash
pip install falcon-mcp
Configure
Set the required environment variables (or use a .env file — see the Configuration Guide):
See the Usage guide for all command line options, module configuration, and library usage.
Container Usage
bash
# Pull the latest image
docker pull quay.io/crowdstrike/falcon-mcp:latest
# Run with .env file (stdio transport)
docker run -i --rm --env-file /path/to/.env quay.io/crowdstrike/falcon-mcp:latest
# Run with streamable-http transport (add --api-key when the port is reachable beyond localhost)
docker run --rm -p 8000:8000 --env-file /path/to/.env \
quay.io/crowdstrike/falcon-mcp:latest \
--transport streamable-http --host 0.0.0.0 --api-key your-secret-key
CAUTION
HTTP transports have no authentication by default. Binding to a non-loopback address (--host 0.0.0.0)
exposes an unauthenticated server that anyone who can reach the port can drive with your CrowdStrike
credentials. Keep the default loopback bind for local use and set --api-key whenever you bind wider.
Managed runtimes such as AWS Bedrock AgentCore and Google Cloud Run sit behind their own network
security layer, so this does not apply to them. See the
Configuration guide.
See the Docker Deployment guide for building locally, custom ports, and advanced configurations.
Dynamic Mode
Running many modules at once inflates the context window every AI client must hold. Dynamic mode
replaces the full tool surface with three tools — falcon_list_enabled_tools to see every tool the
server has available, falcon_search_tools to find candidate tools by keyword and then fetch the parameter
schema for the one you pick, and falcon_execute_tool to run it — so agents only load the schemas
they actually need.
See the Dynamic Mode guide for
the full discover → execute workflow and trade-offs.
Restricting What a Server Can Do
--modules is all-or-nothing per module: enabling one to get its search tools also exposes every
mutating tool it carries. Three tool-level options narrow that surface.
bash
# Investigation-only server: no tool that mutates tenant state is registered
falcon-mcp --read-only
# Expose exactly two tools, nothing else
falcon-mcp --tools falcon_search_detections,falcon_search_hosts
# Keep the module, drop one tool
falcon-mcp --modules hostgroups --exclude-tools falcon_delete_host_groups
# All of detections, plus one tool from a module you did not enable
falcon-mcp --modules detections --tools falcon_search_applications
Flag
Environment Variable
Effect
--read-only
FALCON_MCP_READ_ONLY
Registers only read-only tools
--tools
FALCON_MCP_TOOLS
Allow-list of tool names, added to the enabled modules
--exclude-tools
FALCON_MCP_EXCLUDE_TOOLS
Deny-list of tool names
Tool names are the falcon_-prefixed names your client displays. An unrecognized name aborts
startup rather than being ignored, so a typo in a deny-list cannot silently leave a tool exposed.
Composing the options
--tools is additive, not a narrowing filter. It grants individual tools on top of whatever
--modules already enabled, reaching across the module boundary:
--tools X on its own registers only X — no modules are loaded by default.
--modules detections --tools X registers every detections tool plus X, even when X
belongs to a module that is not enabled. That module contributes only X, not its whole surface,
and falcon_list_enabled_modules does not list it. falcon_list_enabled_tools does list X — it
reports the tools available on the server, so it is the reliable answer to "is this capability
available here?"
To subtract, use --exclude-tools or --read-only. All four knobs compose, and they resolve in
a fixed order:
--exclude-tools removes a tool unconditionally, even if --tools names it.
--read-only removes every mutating tool unconditionally, even if --tools names it.
--tools adds the tools it names, bypassing the module gate.
--modules decides which tools are candidates by default.
Because the first two rules always win, --read-only and --exclude-tools are safe to set as a
deployment-wide floor: an additive --tools list cannot widen past them. Combining them is how you
express "search everything, change nothing, and don't even offer that one tool":
Filtering applies to dynamic mode too — a withheld tool is absent from falcon_search_tools
results and rejected by falcon_execute_tool. Because dynamic mode dispatches by name rather than
registering tools individually, that rejection spells out that the tool exists but the server's
configuration withholds it, and names the one rule responsible, so an agent reports a disabled tool
as disabled instead of telling the user the capability does not exist.
falcon_list_enabled_tools carries a filters_active field in either mode whenever a rule is in
effect. The startup log reports which rules are active and how many tools --read-only and
--exclude-tools withheld, so you can confirm what you deployed. Run with --debug to see the
withheld tools by name.
These options filter tools, not resources. A withheld tool's FQL guide resource stays available —
guides are static field documentation carrying no tenant data.
This project is licensed under the MIT License - see the LICENSE file for details.
Support
This is a community-driven, open source project. While it is not an official CrowdStrike product, it is actively maintained by CrowdStrike and supported in collaboration with the open source developer community.
For more information, please see our SUPPORT file.