SentinelOne Unified Alert Management
All alert tools are read-only — you can view, search, and investigate alerts but cannot modify status, assignments, or take response actions.
For full field definitions, response examples, and error details see REFERENCE.md.
Anti-triggers
- A threat the Huntress SOC found. Both products call their findings
alerts or incidents, and both speak of severity, detection, and
remediation — the vocabulary overlaps almost completely, the data does
not. This skill reads only the SentinelOne console; a Huntress finding
appears nowhere in it. Route by which sensor is on the endpoint, not by
the word the ticket used — for Huntress use
huntress-incidents.
- Acting on an endpoint — isolating a host, killing a process,
quarantining a file, or rolling back a remediation. Every SentinelOne
tool here is read-only; those actions exist only in the SentinelOne
console. On a Huntress-managed endpoint the approve/execute
remediation flow is
huntress-incidents.
- A CVE finding rather than a detection. Vulnerabilities carry the
same severity, status, notes, and history shape as alerts and are
easily mistaken for them; use
sentinelone-vulnerabilities.
- A cloud or Kubernetes posture finding. Same tool shape again, but
the XSPM misconfiguration surface — use
sentinelone-misconfigurations.
- A device-health or monitoring condition — RMM and incident
platforms call a monitor firing an alert too, and none of them is an
EDR detection. Use
atera-alerts, superops-alerts,
pagerduty-alerts, or rootly-alerts; M365 tenant alerts are
cipp-alerts.
MCP Tools
list_alerts — List alerts with filters
Parameters: severity, status, viewType, limit, cursor, sortBy, sortOrder
list_alerts severity=CRITICAL status=NEW sortBy=detectedAt sortOrder=DESC limit=50
list_alerts viewType=CLOUD limit=50
search_alerts — GraphQL filter search
Parameter: filters (array of {fieldId, filterType, values}), limit, cursor
search_alerts filters=[{"fieldId": "endpointName", "filterType": "CONTAINS", "values": ["workstation-01"]}]
search_alerts filters=[{"fieldId": "severity", "filterType": "IN", "values": ["CRITICAL", "HIGH"]}]
Filter types: EQUALS, NOT_EQUALS, CONTAINS, IN, NOT_IN. Add "isNegated": true to invert any filter.
get_alert — Full alert details
get_alert alertId=1234567890
get_alert_notes / get_alert_history
get_alert_notes alertId=1234567890
get_alert_history alertId=1234567890
Key Concepts
Severity: CRITICAL | HIGH | MEDIUM | LOW | INFO | UNKNOWN
Status: NEW | IN_PROGRESS | RESOLVED | FALSE_POSITIVE
View types: ALL (default) | CLOUD | KUBERNETES | IDENTITY | INFRASTRUCTURE_AS_CODE | ADMISSION_CONTROLLER | OFFENSIVE_SECURITY | SECRET_SCANNING
Pagination: Pass limit on the first call, then pass the returned cursor to fetch subsequent pages until no results remain.
Workflows
Triage New Alerts
list_alerts with status=NEW, sortBy=severity, sortOrder=DESC, limit=50
- If results hit the limit, page through with
cursor — do not assume 50 covers everything
- For each CRITICAL/HIGH alert:
get_alert for full details, then get_alert_notes for prior context
- If
get_alert returns not-found, the alert may have been merged or resolved — re-query list_alerts to confirm
- Build triage summary: alert name, severity, client (siteName), endpoint, detection time
Investigate a Specific Alert
get_alert with the alertId
- If not found: verify the ID via
list_alerts or search_alerts — alert IDs can change after merge operations
get_alert_notes — check for existing analyst notes before duplicating work
get_alert_history — review timeline of status changes and assignments
- Use
purple_ai to investigate the threat described in the alert
- Cross-reference with
list_inventory_items for affected asset context
Search Across Clients
search_alerts with filters=[{"fieldId": "severity", "filterType": "IN", "values": ["CRITICAL", "HIGH"]}]
- If results are large, add a time-range filter or narrow by
viewType to reduce noise
- Group by
siteName to identify which clients need attention first
Best Practices
- Triage CRITICAL/HIGH first — always sort by severity descending during triage
- Check notes before investigating — call
get_alert_notes to avoid duplicating prior analyst work
- Paginate large result sets — never assume a single page contains all matching alerts; always check for a returned cursor
- Scope by site for client work — use site/account filters or GraphQL
siteName filter when investigating a specific client
Related Skills
1---2name: sentinelone-alerts3description: SentinelOne's read-only unified alert surface: the list/search/get alert tools plus notes and history, severity levels, status values, view types, GraphQL filter syntax, and cursor-based pagination.4---56# SentinelOne Unified Alert Management78All alert tools are **read-only** — you can view, search, and investigate alerts but cannot modify status, assignments, or take response actions.910For full field definitions, response examples, and error details see [REFERENCE.md](./REFERENCE.md).1112## Anti-triggers1314- **A threat the Huntress SOC found.** Both products call their findings15 alerts or incidents, and both speak of severity, detection, and16 remediation — the vocabulary overlaps almost completely, the data does17 not. This skill reads only the SentinelOne console; a Huntress finding18 appears nowhere in it. Route by which sensor is on the endpoint, not by19 the word the ticket used — for Huntress use `huntress-incidents`.20- **Acting on an endpoint** — isolating a host, killing a process,21 quarantining a file, or rolling back a remediation. Every SentinelOne22 tool here is read-only; those actions exist only in the SentinelOne23 console. On a Huntress-managed endpoint the approve/execute24 remediation flow is `huntress-incidents`.25- **A CVE finding rather than a detection.** Vulnerabilities carry the26 same severity, status, notes, and history shape as alerts and are27 easily mistaken for them; use `sentinelone-vulnerabilities`.28- **A cloud or Kubernetes posture finding.** Same tool shape again, but29 the XSPM misconfiguration surface — use `sentinelone-misconfigurations`.30- **A device-health or monitoring condition** — RMM and incident31 platforms call a monitor firing an alert too, and none of them is an32 EDR detection. Use `atera-alerts`, `superops-alerts`,33 `pagerduty-alerts`, or `rootly-alerts`; M365 tenant alerts are34 `cipp-alerts`.3536## MCP Tools3738### list_alerts — List alerts with filters3940Parameters: `severity`, `status`, `viewType`, `limit`, `cursor`, `sortBy`, `sortOrder`4142```43list_alerts severity=CRITICAL status=NEW sortBy=detectedAt sortOrder=DESC limit=5044list_alerts viewType=CLOUD limit=5045```4647### search_alerts — GraphQL filter search4849Parameter: `filters` (array of `{fieldId, filterType, values}`), `limit`, `cursor`5051```52search_alerts filters=[{"fieldId": "endpointName", "filterType": "CONTAINS", "values": ["workstation-01"]}]53search_alerts filters=[{"fieldId": "severity", "filterType": "IN", "values": ["CRITICAL", "HIGH"]}]54```5556**Filter types:** `EQUALS`, `NOT_EQUALS`, `CONTAINS`, `IN`, `NOT_IN`. Add `"isNegated": true` to invert any filter.5758### get_alert — Full alert details5960```61get_alert alertId=123456789062```6364### get_alert_notes / get_alert_history6566```67get_alert_notes alertId=123456789068get_alert_history alertId=123456789069```7071## Key Concepts7273**Severity:** `CRITICAL` | `HIGH` | `MEDIUM` | `LOW` | `INFO` | `UNKNOWN`7475**Status:** `NEW` | `IN_PROGRESS` | `RESOLVED` | `FALSE_POSITIVE`7677**View types:** `ALL` (default) | `CLOUD` | `KUBERNETES` | `IDENTITY` | `INFRASTRUCTURE_AS_CODE` | `ADMISSION_CONTROLLER` | `OFFENSIVE_SECURITY` | `SECRET_SCANNING`7879**Pagination:** Pass `limit` on the first call, then pass the returned `cursor` to fetch subsequent pages until no results remain.8081## Workflows8283### Triage New Alerts84851. `list_alerts` with `status=NEW`, `sortBy=severity`, `sortOrder=DESC`, `limit=50`862. If results hit the limit, page through with `cursor` — do not assume 50 covers everything873. For each CRITICAL/HIGH alert: `get_alert` for full details, then `get_alert_notes` for prior context884. If `get_alert` returns not-found, the alert may have been merged or resolved — re-query `list_alerts` to confirm895. Build triage summary: alert name, severity, client (siteName), endpoint, detection time9091### Investigate a Specific Alert92931. `get_alert` with the `alertId`94 - If not found: verify the ID via `list_alerts` or `search_alerts` — alert IDs can change after merge operations952. `get_alert_notes` — check for existing analyst notes before duplicating work963. `get_alert_history` — review timeline of status changes and assignments974. Use `purple_ai` to investigate the threat described in the alert985. Cross-reference with `list_inventory_items` for affected asset context99100### Search Across Clients1011021. `search_alerts` with `filters=[{"fieldId": "severity", "filterType": "IN", "values": ["CRITICAL", "HIGH"]}]`1032. If results are large, add a time-range filter or narrow by `viewType` to reduce noise1043. Group by `siteName` to identify which clients need attention first105106## Best Practices1071081. **Triage CRITICAL/HIGH first** — always sort by severity descending during triage1092. **Check notes before investigating** — call `get_alert_notes` to avoid duplicating prior analyst work1103. **Paginate large result sets** — never assume a single page contains all matching alerts; always check for a returned cursor1114. **Scope by site for client work** — use site/account filters or GraphQL `siteName` filter when investigating a specific client112113## Related Skills114115- [Purple AI](../purple-ai/SKILL.md) — Natural language investigation of alert threats116- [Threat Hunting](../threat-hunting/SKILL.md) — PowerQuery execution for deep analysis117- [API Patterns](../api-patterns/SKILL.md) — MCP tools reference and connection info118- [Inventory](../inventory/SKILL.md) — Asset context for affected endpoints119- [Vulnerabilities](../vulnerabilities/SKILL.md) — Vulnerability context for compromised assets