Connect CrowdStrike to Claude: Manage Cloud Assets and Secure Policies
A technical guide to generating and configuring a managed CrowdStrike MCP server for Claude. Learn to expose Falcon tools securely for AI agent workflows.
If your security operations center (SOC) or IT team needs to connect CrowdStrike to Claude to hunt threats, triage cloud asset misconfigurations, or automate incident response, you need a Model Context Protocol (MCP) server. This server acts as the translation layer between Claude's natural language tool calls and the CrowdStrike Falcon REST APIs. You can either build and maintain this infrastructure yourself, or use a managed integration platform like Truto to dynamically generate a secure, authenticated MCP server URL.
If your team uses ChatGPT, check out our guide on /connect-crowdstrike-to-chatgpt-hunt-threats-and-run-response-tools/ or explore our broader architectural overview on /connect-crowdstrike-to-ai-agents-automate-incidents-and-governance/.
Giving a Large Language Model (LLM) read and write access to an enterprise endpoint detection and response (EDR) platform is a high-stakes engineering challenge. You have to map massive JSON schemas to MCP tool definitions, handle token lifecycles securely, and account for CrowdStrike's proprietary querying syntax. Every time CrowdStrike updates an endpoint, your custom integration code is at risk of breaking.
This guide breaks down exactly how to use Truto to generate a secure, managed MCP server for CrowdStrike, connect it natively to Claude Desktop, and execute complex security workflows using natural language.
The Engineering Reality of the CrowdStrike API
A custom MCP server is a self-hosted integration layer. While the open MCP standard provides a predictable way for models to discover tools over JSON-RPC, the reality of implementing it against CrowdStrike's APIs requires significant domain knowledge.
If you decide to build a custom MCP server for CrowdStrike, here are the specific integration challenges you will face:
Falcon Query Language (FQL) Complexities
CrowdStrike relies heavily on FQL for searching hosts, alerts, and vulnerabilities. FQL uses specific operators (:, :, >=, etc.) and exact field names. An LLM has no inherent knowledge of your specific environment's schema or the strict syntax rules of FQL. If you simply expose a raw search endpoint to Claude, it will hallucinate invalid FQL strings and trigger HTTP 400 errors. Your MCP server must inject context into the tool descriptions, explicitly teaching the LLM how to format FQL for endpoints like crowd_strike_hosts_query_devices_by_filter.
Asynchronous Real-Time Response (RTR) Patterns
Executing a script or command on a host via CrowdStrike is not a standard synchronous CRUD operation. The Real-Time Response (RTR) API requires a multi-step workflow: you must initialize an RTR session, execute an active-responder command, and then poll for the status using the resulting cloud_request_id. Exposing this to an LLM requires chaining multiple MCP tools and instructing the agent to wait and poll for the execution result.
Composite IDs for Alerts and Detections
Unlike typical REST APIs that use simple UUIDs in the URL path, CrowdStrike's alert management APIs often require complex payloads containing composite_ids. When patching an alert status (e.g., resolving a detection), the LLM must understand how to construct these composite identifiers exactly as they were returned in previous query responses.
Generating a Managed CrowdStrike MCP Server
Instead of building your own server to parse schemas and handle authentication, you can use Truto to dynamically generate an MCP server for any connected CrowdStrike account.
Truto creates MCP tools dynamically based on the underlying API documentation and integration configurations. A tool only appears in the MCP server if it has a documented schema, ensuring Claude receives high-quality context. You can generate the server URL via the UI or the API.
Method 1: Via the Truto UI
For teams managing a small number of environments, the UI is the fastest path:
- Log into your Truto dashboard and navigate to the Integrated Accounts page.
- Select your connected CrowdStrike instance.
- Click the MCP Servers tab.
- Click Create MCP Server.
- Select the desired configuration (e.g., restrict to read-only methods, or filter by specific tags like "hosts" or "alerts").
- Copy the generated MCP server URL (it will look like
https://api.truto.one/mcp/<token>).
Method 2: Via the Truto API
If you are provisioning environments programmatically for multiple tenants, use the API. This endpoint validates the integration, generates a cryptographically hashed token, and provisions the server.
Request:
curl -X POST https://api.truto.one/integrated-account/{integrated_account_id}/mcp \
-H "Authorization: Bearer YOUR_TRUTO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "CrowdStrike SOC Assistant",
"config": {
"methods": ["read", "write"],
"tags": ["hosts", "alerts", "cloud_security"]
},
"expires_at": "2026-12-31T23:59:59Z"
}'Response:
{
"id": "mcp-cs-789",
"name": "CrowdStrike SOC Assistant",
"config": {
"methods": ["read", "write"],
"tags": ["hosts", "alerts", "cloud_security"]
},
"expires_at": "2026-12-31T23:59:59Z",
"url": "https://api.truto.one/mcp/a1b2c3d4e5f6..."
}Connecting the MCP Server to Claude
Once you have the Truto MCP URL, connecting it to Claude requires zero additional coding. The URL contains an encoded token that identifies the specific CrowdStrike account and the permissions you configured.
Method 1: Via the Claude UI
If you are using the Claude web interface or ChatGPT with custom connectors:
- Open your settings (e.g., Settings > Integrations > Add MCP Server or Custom Connectors).
- Provide a descriptive name (e.g., "CrowdStrike Falcon").
- Paste the Truto MCP URL.
- Click Add or Save. Claude will perform a handshake, call the
tools/listendpoint, and populate the available CrowdStrike actions.
Method 2: Via Manual Config File (Claude Desktop)
For developers using the Claude Desktop application for local agent workflows, you can modify the configuration file to connect via Server-Sent Events (SSE).
Open your claude_desktop_config.json file (typically located in ~/Library/Application Support/Claude/ on macOS) and add the following:
{
"mcpServers": {
"crowdstrike_truto": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sse",
"--url",
"https://api.truto.one/mcp/a1b2c3d4e5f6..."
]
}
}
}Restart Claude Desktop. The agent will immediately parse the remote endpoint and load the tools.
Security and Access Control
Giving an AI agent access to an EDR platform requires strict guardrails. Truto's MCP servers are self-contained and enforce security at the infrastructure layer before requests ever hit CrowdStrike.
- Method Filtering: Restrict servers to specific operation types. Set
config.methodsto["read"]to allow the LLM to query hosts and alerts, but prevent it from executing containment actions or modifying policies. - Tag Filtering: Group tools by functional area. Use
config.tagsto limit the server to specific domains, ensuring an agent built for cloud posture management cannot access endpoint RTR commands. - Ephemeral Access: Use the
expires_atfield to create temporary MCP servers. Once the TTL is reached, the server is automatically cleaned up from distributed storage, instantly revoking the LLM's access. - Extra Authentication: For shared environments where the MCP URL might be visible in logs, enable
require_api_token_auth. This forces the client to pass a valid Truto API token in theAuthorizationheader, adding a second layer of identity verification on top of the URL token.
Hero Tools for CrowdStrike
Below is a curated selection of high-leverage tools exposed by the CrowdStrike MCP server. These tools handle complex schemas automatically, allowing Claude to manage assets, query policies, and triage incidents using flat JSON structures.
Search Hosts by Filter
Tool: crowd_strike_hosts_query_devices_by_filter
This tool allows the agent to search for managed assets using FQL. It returns a list of host IDs that match criteria such as hostname, platform, or IP address.
"Find all Windows hosts in CrowdStrike that have the hostname prefix 'PROD-DB' and return their IDs."
Perform Action on Host
Tool: crowd_strike_hosts_perform_action_v_2
This is a critical response tool. It allows the agent to take actions on hosts, such as lifting containment, hiding the device, or applying grouping tags.
"Apply the 'contain' action to the host with ID 1234567890abcdef. Make sure to confirm the action was successful."
Create Incident Case
Tool: crowd_strike_case_management_entities_cases_put_v_2
When an agent identifies a threat, it needs to escalate it. This tool creates a formal case in CrowdStrike Case Management, allowing the LLM to attach evidence and set severity.
"Create a new high-severity case in CrowdStrike named 'Suspicious PowerShell Execution on PROD-DB'. Assign it to the SOC team and include the host ID in the description."
Patch Alert Entities
Tool: crowd_strike_alerts_patch_entities_alerts_v_3
This tool is used to update the status of existing alerts. The agent must provide the composite IDs of the alerts to resolve them, assign them, or update their tags.
"Update the status of alert composite ID 'abc-123-def' to 'closed' and tag it as a true positive."
Execute RTR Admin Command
Tool: crowd_strike_real_time_response_admin_rtr_execute_admin_command
Executes advanced administrative commands on a host via Real-Time Response. This requires the LLM to pass a session ID and the specific command string.
"Using the RTR session ID 'session-987', execute the admin command to kill the process with PID 4432 on the target host."
Query Cloud Compliance Controls
Tool: crowd_strike_cloud_policies_query_compliance_controls
For cloud security posture management (CSPM), this tool searches for compliance controls and frameworks applied to cloud assets.
"Query all compliance controls related to AWS S3 bucket encryption and list the failing resources."
For the complete inventory of available CrowdStrike tools, including endpoint schemas and parameter descriptions, visit the CrowdStrike integration page.
Workflows in Action
AI agents excel when chaining multiple tools together to resolve complex, multi-step scenarios. Here are two practical examples of how Claude interacts with the CrowdStrike MCP server.
Workflow 1: Zero-Day Host Containment and Case Creation
When a high-fidelity alert fires from a third-party system, a SOC analyst can ask Claude to investigate and lock down the affected asset.
"A SIEM alert indicated lateral movement originating from the host with IP 10.0.5.50. Find this host in CrowdStrike, contain it immediately, and create a high-severity case logging this action."
Execution Steps:
- Search Hosts: Claude calls
crowd_strike_hosts_query_devices_by_filterpassing the FQLlocal_ip:"10.0.5.50"to retrieve the internal host ID. - Contain Host: Claude calls
crowd_strike_hosts_perform_action_v_2, passing the retrieved host ID and specifying the action name ascontain. - Log Incident: Claude calls
crowd_strike_case_management_entities_cases_put_v_2, formatting a JSON payload with a title, high severity, and a description documenting the host ID, the IP address, and the containment status.
sequenceDiagram
participant User
participant Claude as Claude Desktop
participant MCP as Truto MCP Server
participant CS as CrowdStrike API
User->>Claude: "Find host 10.0.5.50, contain it, and log a case"
Claude->>MCP: Call tools/call (crowd_strike_hosts_query_devices_by_filter)
MCP->>CS: GET /devices/queries/devices/v1
CS-->>MCP: Returns Host ID
MCP-->>Claude: Host ID (e.g., "abc-123")
Claude->>MCP: Call tools/call (crowd_strike_hosts_perform_action_v_2)
MCP->>CS: POST /devices/entities/devices-actions/v2
CS-->>MCP: Action success confirmation
MCP-->>Claude: Containment confirmed
Claude->>MCP: Call tools/call (crowd_strike_case_management_entities_cases_put_v_2)
MCP->>CS: POST /cases/entities/cases/v2
CS-->>MCP: Case ID created
MCP-->>Claude: Returns Case ID
Claude-->>User: "Host abc-123 contained. Case #456 created."Workflow 2: Cloud Misconfiguration Triage
DevOps teams need to quickly identify and evaluate cloud assets against security policies.
"Get the list of cloud assets currently flagged for compliance violations in our AWS environment, then retrieve the specific evaluation results for those assets to see which rules failed."
Execution Steps:
- Query Assets: Claude calls
cloud_security_assets_cloud_security_assets_querieswith filters targeting AWS resources with open compliance issues, returning asset IDs. - Evaluate Logic: Claude parses the asset IDs and calls
crowd_strike_cloud_policies_get_evaluation_result, passing the relevant rule logic to see the specific failure reasons. - Synthesize Report: Claude formats the raw evaluation JSON into a readable summary of misconfigured S3 buckets or IAM roles for the engineer.
Handling CrowdStrike API Rate Limits
CrowdStrike enforces strict rate limits to ensure platform stability. When integrating an LLM, the model might attempt to execute bulk FQL queries rapidly, triggering HTTP 429 Too Many Requests errors.
It is critical to understand that Truto does not retry, throttle, or apply backoff on rate limit errors. If the CrowdStrike API returns a 429, Truto immediately passes that error back to Claude.
However, Truto abstracts away vendor-specific limit headers. Truto normalizes the upstream rate limit information into standardized HTTP headers per the IETF specification:
ratelimit-limit: The total requests allowed in the current window.ratelimit-remaining: The number of requests left.ratelimit-reset: The timestamp when the limit resets.
The caller (your custom agent orchestration layer or the human operator guiding Claude) is strictly responsible for interpreting these headers and implementing appropriate retry or exponential backoff logic.
Strategic Wrap-Up
Building a custom integration between AI agents and CrowdStrike is a massive undertaking. You have to maintain fragile schema mappings, handle OAuth tokens securely, and deal with proprietary querying languages. By leveraging a managed MCP server via Truto, you abstract away the infrastructure overhead and get dynamically generated, documentation-driven tools.
Your engineering team can stop reading API documentation and start building autonomous security workflows that actually scale.
FAQ
- How do I connect CrowdStrike to Claude Desktop?
- You can connect CrowdStrike to Claude by generating an MCP server URL using an integration platform like Truto, then adding that URL to Claude Desktop via the UI (Settings > Integrations > Add MCP Server) or by updating the claude_desktop_config.json file.
- Does Truto automatically handle CrowdStrike rate limits?
- No. Truto passes upstream HTTP 429 rate limit errors directly to the caller and normalizes the rate limit information into standard IETF headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset). Your client or agent is responsible for implementing retry and backoff logic.
- Can I restrict which CrowdStrike tools Claude can access?
- Yes. When generating the MCP server, you can apply method filters (like read-only) or tag filters to limit the exposed tools. You can also enforce secondary authentication requiring the caller to pass an API token.