Connect CrowdStrike to ChatGPT: Hunt Threats and Run Response Tools
Learn how to connect CrowdStrike to ChatGPT using Truto's managed MCP server. Automate threat hunting, FQL queries, and Real-Time Response (RTR) actions.
If you need to connect CrowdStrike to ChatGPT to automate threat hunting, triage alerts, or execute Real-Time Response (RTR) commands, you need a Model Context Protocol (MCP) server. This server acts as the translation layer between ChatGPT's native tool-calling capabilities and CrowdStrike's complex REST APIs.
If your team uses Claude, check out our guide on connecting CrowdStrike to Claude or explore our broader architectural overview on connecting CrowdStrike to AI Agents.
Giving a Large Language Model (LLM) read and write access to a mission-critical endpoint detection and response (EDR) platform is a massive engineering challenge. You have to handle Falcon Query Language (FQL) mapping, stateful session management for Real-Time Response scripts, and incredibly strict RBAC scopes. 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.
This guide breaks down exactly how to use Truto to generate a secure MCP server for CrowdStrike, connect it natively to ChatGPT, and execute complex SOC workflows using natural language.
The Engineering Reality of the CrowdStrike API
While the open MCP standard provides a predictable way for models to discover tools, implementing it against CrowdStrike's highly specialized API is exceptionally painful. If you decide to build a custom CrowdStrike MCP server, you own the entire API lifecycle. Here are the specific integration challenges that break standard CRUD assumptions when working with the Falcon platform:
The Falcon Query Language (FQL) Barrier
CrowdStrike relies heavily on FQL for searching hosts, alerts, and incidents. An endpoint like GET /alerts/queries/alerts/v1 does not accept standard REST query parameters like ?status=new. Instead, it requires URL-encoded FQL strings like ?filter=status:'new'+severity:'High'. If your MCP server doesn't explicitly instruct the LLM on how to format FQL strings via the JSON Schema descriptions, ChatGPT will hallucinate standard REST parameters, resulting in HTTP 400 Bad Request errors. Mapping FQL syntax rules into prompt-friendly tool schemas is tedious.
Stateful Real-Time Response (RTR) Sessions
Executing a script on a compromised host via CrowdStrike is not a single API call. RTR is highly stateful. To run a command, your AI agent must:
- Call
batch_init_sessionsto wake the host and establish a session. - Call
execute_admin_commandwith the active session ID. - Poll
check_admin_command_statusuntil the execution completes. - Call
delete_sessionto clean up.
A custom MCP server must either wrap this entire state machine into a single monolithic tool (which is brittle and times out), or expose the raw primitives and rely on the LLM to successfully navigate the state machine across multiple sequential tool calls.
Complex Composite IDs
Unlike SaaS APIs that use simple UUIDs, CrowdStrike often relies on composite IDs for routing requests (especially in alerts and detections). An alert ID might contain the customer ID (CID), the device ID (AID), and a localized timestamp string. If an LLM parses or modifies these strings, subsequent API calls will fail. You must strictly instruct the LLM to pass composite IDs exactly as they were returned.
Step 1: Generate a CrowdStrike MCP Server
Instead of hardcoding tool definitions and dealing with FQL schema mapping, you can use Truto to dynamically generate a CrowdStrike MCP server. The server derives its tool definitions directly from CrowdStrike's API specifications, exposing only the endpoints that have verified documentation.
You can generate the MCP server in two ways: via the Truto dashboard or programmatically via the API.
Method 1: Via the Truto UI
- Log into your Truto account and navigate to Integrated Accounts.
- Select your connected CrowdStrike account.
- Click the MCP Servers tab.
- Click Create MCP Server.
- Select your desired configuration (e.g., name, allowed methods like
read, and specific tags to limit scope). - Copy the generated MCP server URL (e.g.,
https://api.truto.one/mcp/a1b2c3d4...). Treat this URL as a sensitive credential.
Method 2: Via the Truto API
If you are provisioning AI agents programmatically, you can generate the MCP server via a single API call. This scopes the server to a specific CrowdStrike tenant and applies granular access filters.
curl -X POST https://api.truto.one/integrated-account/$INTEGRATED_ACCOUNT_ID/mcp \
-H "Authorization: Bearer $TRUTO_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "CrowdStrike SOC Assistant",
"config": {
"methods": ["read", "write", "custom"],
"tags": ["alerts", "hosts", "incident_management", "rtr"]
},
"expires_at": "2026-12-31T23:59:59Z"
}'The API validates that tools exist for your requested filters, generates a secure cryptographic token, and returns the MCP server URL.
Step 2: Connect the MCP Server to ChatGPT
Once you have the Truto MCP URL, you can connect it to ChatGPT. This allows the model to immediately discover the available CrowdStrike tools and their required FQL parameter schemas.
Method A: Via the ChatGPT UI
If you are using ChatGPT Pro, Plus, Business, Enterprise, or Education accounts with Developer Mode enabled:
- In ChatGPT, navigate to Settings -> Apps -> Advanced settings.
- Ensure Developer mode is toggled on.
- Under MCP servers / Custom connectors, click Add new server.
- Name: "CrowdStrike SecOps"
- Server URL: Paste the Truto MCP URL.
- Click Save.
ChatGPT will immediately ping the server, run the initialize and tools/list JSON-RPC handshake, and display the connected CrowdStrike tools in your workspace.
Method B: Via Manual Config File (Claude Desktop / Local Agents)
If you are testing locally or using an SSE-compatible framework, you can connect the server via a configuration file. Because Truto MCP servers speak JSON-RPC over HTTP POST, you use the standard SSE transport wrapper.
Create or update your MCP configuration file (e.g., mcp-config.json):
{
"mcpServers": {
"crowdstrike-truto": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sse",
"--url",
"https://api.truto.one/mcp/a1b2c3d4e5f6..."
]
}
}
}CrowdStrike Hero Tools for ChatGPT
Truto automatically generates hundreds of tools for CrowdStrike. Below are the highest-leverage "hero" tools your agent will use to automate security operations.
Search Alerts via FQL
Tool: crowd_strike_alerts_post_combined_alerts_v_1
This is the primary entry point for incident triage. It allows ChatGPT to search for active alerts using Falcon Query Language. The LLM constructs the FQL string based on the user's natural language request (e.g., mapping "critical alerts from today" to severity:'Critical'+created_timestamp:>'2026-10-01T00:00:00Z').
"Find all high-severity alerts related to PowerShell execution that occurred in the last 24 hours. Summarize the aggregate threat patterns."
Identify and Query Hosts
Tool: crowd_strike_hosts_combined_devices_by_filter
Before taking action on a host, the agent must resolve the hostname or IP address to an Agent ID (AID). This tool executes an FQL search against the host inventory to retrieve system details, OS version, and network configuration.
"I need the CrowdStrike Agent ID (AID) and current IP address for the machine with hostname DESKTOP-ENG-042."
Execute Real-Time Response Commands
Tool: crowd_strike_real_time_response_admin_rtr_execute_admin_command
This tool allows the agent to run administrative commands (like runscript, put, or kill) directly on a host. It requires a valid session_id obtained via the batch_init_sessions tool.
"Execute the 'isolate-host' script on Agent ID 123456789. The active RTR session ID is session-987. Wait for the command to finish and report the status."
Threat Intelligence Lookups
Tool: crowd_strike_intel_query_intel_indicator_entities
ChatGPT can investigate suspicious hashes, IPs, or domains by checking them against CrowdStrike's global threat intelligence database to retrieve context, actor attribution, and malware family metadata.
"Check this SHA256 hash against CrowdStrike Threat Intel. If it's known malware, tell me which APT group usually distributes it and list the associated MITRE techniques."
Create Incident Management Cases
Tool: crowd_strike_case_management_entities_cases_put_v_2
When a threat is confirmed, the agent can programmatically open a case in Falcon Case Management, assigning it to a specific SOC group and attaching the relevant alert evidence.
"Create a new High severity case named 'Suspicious PowerShell Activity on ENG-042'. Assign it to the Tier 2 Escalation group and attach alert ID ABC-123 as evidence."
Manage Network Containment
Tool: network_containment_update_containment_allowlist_rules
If a host is isolated, the agent can modify network containment allowlists to ensure critical IT management tools (like VPN or patching servers) can still communicate with the quarantined machine.
"Update the network containment allowlist to permit outbound traffic on port 443 to our IT management IP range 192.168.50.0/24."
To view the complete inventory of available API operations and their exact JSON Schema definitions, refer to the CrowdStrike integration page.
Workflows in Action
When you connect CrowdStrike to ChatGPT via MCP, the model handles the sequence of API calls required to complete complex objectives. Here is how specific SOC personas leverage the integration in the real world.
1. The Autonomous Threat Hunter
When a SOC analyst needs to quickly investigate a spike in alerts, they can prompt ChatGPT to handle the FQL querying and data synthesis.
"Search for all New alerts related to 'credential dumping' in the last 12 hours. Extract the hostnames involved, query their system details, and give me a summary of the affected OS versions."
Tool Execution Flow:
crowd_strike_alerts_post_combined_alerts_v_1(Executes an FQL search forstatus:'new'+tactic:'Credential Access').crowd_strike_alerts_post_entities_alerts_v_2(Fetches the full alert details for the returned IDs).crowd_strike_hosts_get_device_details_v_2(Looks up the AIDs found in the alerts to get OS and network details).
The analyst receives a clean summary of the credential dumping alerts, categorized by operating system, without writing a single line of FQL.
2. The Automated Incident Responder
If a confirmed threat requires immediate containment, ChatGPT can navigate the complex RTR state machine to isolate the host and extract forensic evidence.
"Host WEB-PROD-01 is compromised. Find its Agent ID, start an RTR session, run the 'collect-syslogs' script, and then create a high-severity case with the results."
sequenceDiagram
participant ChatGPT as ChatGPT
participant MCP as Truto MCP Server
participant CS as CrowdStrike API
ChatGPT->>MCP: Call hosts_combined_devices_by_filter (Find WEB-PROD-01)
MCP->>CS: GET /devices/queries/devices-scroll/v1
CS-->>ChatGPT: Return AID
ChatGPT->>MCP: Call rtr_init_session (AID)
MCP->>CS: POST /real-time-response/entities/sessions/v1
CS-->>ChatGPT: Return Session ID
ChatGPT->>MCP: Call rtr_execute_admin_command (runscript collect-syslogs)
MCP->>CS: POST /real-time-response/entities/admin-command/v1
CS-->>ChatGPT: Return Cloud Request ID
ChatGPT->>MCP: Call cases_put_v_2 (Create Case)
MCP->>CS: POST /case-management/entities/cases/v2
CS-->>ChatGPT: Return Case IDThe LLM handles the sequential dependencies: extracting the AID to initialize the session, extracting the Session ID to run the command, and extracting the Cloud Request ID to check the status.
Security and Access Control
Giving an AI agent access to CrowdStrike requires strict governance. Truto MCP servers enforce boundaries at the infrastructure layer, ensuring the LLM cannot exceed its granted permissions.
- Method Filtering: You can restrict an MCP server to strictly read-only operations by passing
methods: ["read"]during server creation. This prevents ChatGPT from executing RTR commands or modifying policies, while still allowing it to hunt threats and analyze alerts. - Tag Filtering: Limit the server to specific resource tags. For example,
tags: ["alerts", "intel"]ensures the agent only sees tools related to threat intelligence and alert querying, hiding host management entirely. - Time-to-Live (TTL): Temporary contractors or incident response teams can be given short-lived access by setting the
expires_atfield. Once the timestamp passes, the MCP server is automatically destroyed. - Secondary Authentication: By setting
require_api_token_auth: true, you force the MCP client to pass a valid Truto API token in theAuthorizationheader. This ensures that even if the MCP URL leaks, unauthorized users cannot execute CrowdStrike tools.
Before orchestrating high-volume threat hunting loops, it is critical to understand how API limits are handled. Truto does not retry, throttle, or apply backoff on rate limit errors. When the upstream CrowdStrike API returns an HTTP 429 Too Many Requests, Truto passes that error directly to the caller. Truto normalizes the upstream rate limit information into standardized IETF headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset). The caller (your AI agent framework or ChatGPT client) is entirely responsible for reading these headers and implementing its own retry and backoff logic.
Moving from Dashboards to Agentic SOCs
Connecting CrowdStrike to ChatGPT via MCP transforms how security teams interact with telemetry. Instead of clicking through dashboards and manually constructing complex FQL strings, analysts can use natural language to traverse the entire Falcon platform — from initial alert discovery to active host containment.
By leveraging Truto's dynamically generated MCP servers, you eliminate the need to write and maintain custom schema parsers, OAuth token refresh workers, and JSON-RPC routing logic. You get secure, fully typed AI tools that stay perfectly in sync with CrowdStrike's API surface.
FAQ
- How does ChatGPT authenticate with the CrowdStrike API?
- ChatGPT authenticates using a secure, auto-generated MCP server URL provided by Truto. Truto acts as the OAuth and token management layer, translating ChatGPT's JSON-RPC tool calls into authenticated CrowdStrike REST API requests.
- Can I restrict ChatGPT from taking destructive actions in CrowdStrike?
- Yes. When creating the Truto MCP server, you can filter tools using the `methods` array (e.g., allow only `read` operations) or by `tags` to restrict access to specific resources like alerts or threat intel, keeping Real-Time Response (RTR) out of scope.
- How does Truto handle CrowdStrike API rate limits?
- Truto passes HTTP 429 rate limit errors directly to the caller and normalizes upstream rate limit info into standardized IETF headers (`ratelimit-limit`, `ratelimit-remaining`, `ratelimit-reset`). Truto does not automatically retry, throttle, or apply backoff; your AI agent or client must handle the retry logic.
- Does ChatGPT need to know Falcon Query Language (FQL)?
- ChatGPT is generally capable of writing basic FQL strings based on its training data. Truto's auto-generated tool schemas include descriptions that prompt the LLM to format query parameters as FQL when required by the specific CrowdStrike endpoint.