Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 46 additions & 4 deletions product/admin/mcp-server/crowdstrike.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,21 @@

<Steps>
<Step>
In the Falcon console, go to **Support and resources** > **API clients and keys** and select **Add new API client**.
In the Falcon console, go to **Support and resources** > **API clients and keys**.

{/* REVIEWER NOTE — needs a verified docs link for generating credentials */}
</Step>
<Step>
Give the client a recognizable name such as `C1`, then grant only the **API scopes** you need, such as **Read** access to Detections, Incidents, and Hosts.
Select **Add new API client**.
</Step>
<Step>
Select **Create**, then copy the **Client ID** and **Client Secret**. CrowdStrike shows the secret only once.
Give the client a recognizable name such as `C1`, then grant **Read** on the API scopes covering the tools you want. See [Choose API scopes](#choose-api-scopes) for the mapping.
</Step>
<Step>
Select **Create**.
</Step>
<Step>
Copy the **Client ID** and **Client Secret**. CrowdStrike shows the secret only once.
</Step>
<Step>
Note your Falcon cloud's API base URL, such as `https://api.crowdstrike.com` or your region-specific endpoint.
Expand All @@ -54,8 +60,44 @@
</Step>
</Steps>

You now have a client ID, client secret, and base URL to enter when you register the server in C1.

For a shared production setup, use a dedicated API client so activity is attributable to C1 rather than a person.

## Choose API scopes

Each tool reads a different Falcon API, and each API has its own scope. Grant **Read** on the scopes for the tools you want. A tool whose scope is missing returns CrowdStrike's authorization error rather than an empty result, so an unexpected 403 usually means the scope is absent from the API client.

| Tools | Falcon API scope |
|---|---|
| `list_hosts` | Hosts |
| `list_alerts` | Alerts |
| `list_incidents` | Incidents |
| `list_ioc_indicators` | IOC Manager |
| `list_device_control_policies` | Device control policies |
| `list_vulnerabilities`, `list_remediations` | Vulnerabilities (Falcon Spotlight) |
| `list_intel_actors`, `list_intel_indicators`, `list_intel_reports` | Falcon Intelligence |
| `list_zero_trust_assessments` | Zero Trust Assessment |
| `list_discover_applications` | Falcon Discover |
| `list_ioms`, `list_iom_details` | CSPM registration |

{/* REVIEWER NOTE — the tool names are exact, taken from the server's own tool list. The right-hand column needs a check against the Falcon console's own scope labels, which I could not verify without a tenant. */}

Four tools take action in CrowdStrike and need **Write** as well:

| Tools | Falcon API scope |
|---|---|
| `contain_host`, `lift_containment`, `hide_host` | Hosts (Write) |
| `create_ioc_indicator` | IOC Manager (Write) |

Leaving Write off the API client is a deliberate way to keep the connection read-only: those four tools then return CrowdStrike's authorization error, and the rest keep working.

<Note>
`list_ioms` and `list_iom_details` need the **CSPM registration** scope. CrowdStrike also offers a Cloud Security scope, and it is easy to reach for by name — but it covers a different set of endpoints (cloud groups and cloud risks) that C1 does not expose, so it will not make these two tools work. If `list_ioms` returns 403 while your other tools return data, add CSPM registration to the API client.
</Note>

Scope changes take effect the next time C1 requests a token, so you don't need to re-register the server or reconnect after editing the API client.

## How CrowdStrike credentials are shared

The API client authenticates every user as one shared Falcon identity, so CrowdStrike sees a single identity for all tool calls. C1 still attributes each call to the individual user in the [AI tool usage audit log](/product/admin/audit-ai-tool-usage). For a shared setup, use a dedicated API client so activity is attributable to C1 rather than a person.
Expand Down Expand Up @@ -87,7 +129,7 @@

Each tool starts as either **Pending review** or automatically **Approved**, depending on the option chosen when the server was set up or your tenant's default tool settings in **AI** > **MCP** > **Settings**. See [Require tool approval](/product/admin/enable-ai-access-management#require-tool-approval) and [Default tool classification](/product/admin/enable-ai-access-management#default-tool-classification).

Before anyone can call a CrowdStrike tool, it must be approved, added to a toolset, and bound to an access profile. Continue to [Govern tools and toolsets](/product/admin/tools-and-toolsets) to set this up.

Check warning on line 132 in product/admin/mcp-server/crowdstrike.mdx

View check run for this annotation

Mintlify / Mintlify Validation (conductorone) - vale-spellcheck

product/admin/mcp-server/crowdstrike.mdx#L132

Did you really mean 'toolset'?

<Note>
Tool discovery runs even if your credentials are incorrect, so seeing discovered tools doesn't confirm that authentication is working. You confirm your CrowdStrike credentials when an approved user successfully calls a CrowdStrike tool from their AI client.
Expand All @@ -96,4 +138,4 @@
## Manage your CrowdStrike credentials

- **Rotate the client secret** by resetting it on the API client in the Falcon console, then update the secret on the server's authentication settings in C1.
- **Adjust access** by editing the API scopes granted to the API client in CrowdStrike.
- **Adjust access** by editing the API scopes granted to the API client in CrowdStrike. See [Choose API scopes](#choose-api-scopes).