Skip to main content
Glama
merabytes

sentinelone-mcp

by merabytes

sentinelone-mcp

FastMCP server for SentinelOne: session login, XDR alerts, Purple AI, and SOC investigation tools.

Credentials live in Azure Key Vault only. config.json holds Azure identity + KV secret names, not values.

Setup

python -m venv .venv
source .venv/bin/activate
pip install -e .
playwright install chromium
cp config.example.json config.json   # edit with your vault + secret names

Populate KV secrets (see config.example.json for logical keys). Required:

  • S1-LOGIN-EMAIL, S1-LOGIN-PASSWORD, S1-LOGIN-TOTP (if MFA)

  • S1-LOGIN-URL, S1-API-URL (your SentinelOne console/API base URLs)

  • SENTINELONE-API-KEY, SENTINELONE-XDR-TOKEN

  • Optional: S1-XDR-REGION (default eu1), S1-SITE-ID

Session cookies (SENTINELONE-SESSION-COOKIES*) are written by refresh_login.

Related MCP server: Response MCP Server

Run

python main.py                    # FastMCP stdio (default)
python main.py --mode login       # refresh Playwright session → KV
python -m sentinelone_mcp         # same as default MCP mode

Cursor MCP config

{
  "mcpServers": {
    "sentinelone": {
      "command": "python",
      "args": ["/path/to/sentinelone-sync/main.py"],
      "cwd": "/path/to/sentinelone-sync"
    }
  }
}

Override config path: SENTINELONE_CONFIG=/path/to/config.json

Available Tools

14 tools
get_alertsGet AlertsB

Fetch Cloud Detection alerts from SentinelOne Management API. Optional filters: site_ids (comma-separated), created_after (ISO8601).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
tenantNo
site_idsNo
created_afterNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. The verb 'Fetch' reasonably conveys a read-only operation, and the source API is named, which adds context. However, pagination behavior around the limit parameter, the scoping meaning of tenant=null, and any auth prerequisites are never disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero filler, and the purpose is front-loaded in the first sentence. The second sentence earns its place by adding format details that the schema does not provide. This is appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Because an output schema exists, return values need no explanation, and this is a simple optional-filter read tool. However, in a 14-tool sibling family with no usage guidance, and with two parameters (limit, tenant) whose semantics are unexplained, the definition is adequate but has clear gaps an agent must guess at.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it partially does: 'comma-separated' for site_ids and 'ISO8601' for created_after are real format semantics beyond the plain 'string' type in the schema. But limit (default 20, any maximum?) and tenant (what does null mean?) are left entirely unexplained, so the compensation is incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Fetch Cloud Detection alerts from SentinelOne Management API.' The resource name 'Cloud Detection alerts' implies differentiation from siblings like get_threats and get_cloud_detection_rules, though the description never makes that distinction explicit. It is clear and specific, but sibling differentiation is implicit rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus its 13 siblings. 'From SentinelOne Management API' provides provenance context but no conditions, exclusions, or routing advice, such as when to prefer get_threats or process_pending_alerts. The agent is left to infer selection entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cloud_detection_rulesGet Cloud Detection RulesA

List SentinelOne STAR / cloud-detection rules including name, description, status, severity, and S1QL body (the custom rule contents).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
tenantNo
name_containsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. 'List' implies a read-only operation and the field list clarifies what is returned, but the description does not disclose pagination behavior, auth requirements, tenant scoping, or explicitly confirm non-destructiveness. Some transparency is present, but notable behavioral gaps remain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. It immediately identifies the action, resource, and key output fields, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values are covered elsewhere, and the tool is a simple list operation with optional parameters. However, with no annotations and zero parameter coverage in the description, an agent is left guessing about tenant and name_contains semantics. It is minimally adequate for tool selection but not fully complete for confident invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description does not explain any of the three parameters: limit, tenant, or name_contains. The fields mentioned in the description are output fields, not input parameters, so it adds no meaning beyond the bare schema names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List') and a concrete resource ('SentinelOne STAR / cloud-detection rules'), and it enumerates the returned fields. This clearly differentiates the tool from siblings like get_alerts and get_threats by naming the exact resource type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it is for listing cloud-detection rules, not alerts or threats. It does not explicitly name alternatives or exclusions, but the resource scope is specific enough to imply correct usage among the sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_storyline_eventsGet Storyline EventsB

Fetch Deep Visibility events for a storyline (Management API). Use event_filter for S1QL: ObjectType = "URL" for URLs, event.type = "Process Creation" for processes.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
tenantNo
to_dateNo
from_dateNo
storylineYes
event_filterNo
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only describes the high-level fetch action and filter syntax; it does not disclose pagination, result limits, date/time semantics, authentication requirements, or any other behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler: the first states the operation and scope, the second provides actionable filter examples. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter tool with no annotations, the description is under-specified. It does not explain date range behavior, tenant override, limit, timeout, or how to obtain a storyline ID; the output schema reduces the need to describe return values but does not fill these operational gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only adds meaning for event_filter through S1QL examples. The other six parameters (limit, tenant, to_date, from_date, timeout_seconds) are left unexplained, so the description does not compensate for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('Fetch Deep Visibility events for a storyline') and adds the Management API context. This clearly identifies the tool's purpose, though it does not explicitly contrast it with siblings like run_dv_query or xdr_query.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives practical usage guidance by telling the agent to use event_filter with S1QL and provides concrete examples for URLs and processes. However, it never states when to prefer this tool over alternative query tools; the selection logic is only implied by 'for a storyline.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_threat_contextGet Threat ContextB

Get timeline of a threat — reveals the custom rule name that triggered it. ALWAYS call before verdict. If Custom Rule, the threat name is a label not evidence.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenantNo
threat_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the behavioral disclosure burden. It adds meaningful semantic context—threat names are labels, not evidence, for custom rules—which helps the agent interpret results. Yet it does not disclose other behavioral traits such as read-only nature, required permissions, or any limitations of the timeline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact: two sentences, with the core purpose front-loaded and the operational imperative clearly stated. Every clause adds value—the timeline purpose, the custom rule revelation, the before-verdict mandate, and the semantic warning about labels.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description nails the most critical contextual point—call before verdict—and interprets custom rule results. But it omits parameter semantics and doesn't clarify how this relates to sibling timeline/data tools. The presence of an output schema reduces the need to explain return structure, but gaps around usage context remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain either parameter (threat_id, tenant). It mentions 'threat' generically but never tells the agent that threat_id is required, what format it should take, or how the optional tenant parameter affects the call. The description wholly fails to compensate for the schema's lack of parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and resource ('timeline of a threat') and adds a distinct detail: it reveals the custom rule name that triggered the threat. This is clear enough to identify the tool's function, though it does not explicitly differentiate itself from siblings like get_storyline_events or get_threats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage context with 'ALWAYS call before verdict', telling the agent when this tool must be invoked. It also provides interpretational guidance for Custom Rules. However, it does not state when not to use it or name alternative tools, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_threatsGet ThreatsC

Fetch recent SentinelOne threats. Returns threatName, storyline, user, computer, status, engines, maliciousProcessArguments, originatorProcess, initiatedByDescription.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
tenantNo
sort_orderNodesc
incident_statusNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It adds value by enumerating the returned fields, and 'Fetch' implies a read-only operation. However, it does not clarify sorting behavior, pagination, rate limits, or any operational caveats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence that immediately names the action and resource, followed by a concise, useful list of returned fields. There is no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is incomplete for a tool with four undocumented parameters, no annotations, and multiple closely related sibling tools. It covers return fields but omits parameter meanings and selection guidance, leaving important gaps for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it does not explain any of the four parameters: limit, tenant, sort_order, or incident_status. The agent is left with only raw parameter names and types, which is insufficient for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: 'Fetch recent SentinelOne threats.' It also lists the returned fields, which further clarifies the tool's purpose. However, it does not differentiate this tool from the sibling tools get_unresolved_threats, get_threat_context, or get_alerts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when a recent list of threats is needed, but provides no explicit when/when-not guidance or alternatives. Given many threat-related sibling tools exist, an agent cannot determine when to call get_threats versus get_unresolved_threats or get_threat_context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_unresolved_threatsGet Unresolved ThreatsA

Fetch unresolved threats created in the last N hours. Entry point for incident triage — resolved threats are excluded.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
tenantNo
hours_backNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It does disclose the key filtering behavior—resolved threats are excluded—and the recency window, which is useful. But it does not mention ordering, pagination, tenant scope behavior, or any operational side effects beyond the basic fetch semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences with no wasted words. The core function is front-loaded, and the secondary sentence adds useful context about triage and the resolved-threat exclusion.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple and has an output schema, but the description does not fully compensate for the schema's lack of parameter descriptions. An agent still needs to infer the meaning and acceptable values for tenant and limit, and there is no guidance on how this relates to get_threats or process_pending_alerts.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, so the description must compensate, but it only indirectly explains hours_back via 'last N hours'. It adds no meaning for limit or tenant, which are left undocumented and potentially ambiguous for an agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Fetch') with a clear resource ('unresolved threats') and a time scope ('created in the last N hours'). It also distinguishes itself from sibling tools by stating that resolved threats are excluded and framing it as the entry point for incident triage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly positions the tool for incident triage and states that resolved threats are excluded, giving the agent context on when it is appropriate. However, it does not explicitly name alternative tools like get_threats for broader threat queries, so it stops short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tenantsList TenantsA

List configured SentinelOne tenants from config.json.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the behavioral disclosure burden. It does disclose that the tool reads from config.json, which signals a local, read-only operation. However, it does not mention behavior such as error handling when config.json is missing, whether the list is sorted, or whether any network call is involved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-formed sentence with no filler. The core action and resource are front-loaded, and the source location is provided compactly at the end. Every word contributes to understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, zero-parameter list tool with an output schema, the description is nearly complete. It clearly identifies what is listed and where the data comes from. Minor missing context includes prerequisites and potential failure cases, but these are not critical for such a straightforward operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the input schema is already complete and there is no parameter semantics burden on the description. Per the baseline for zero-parameter tools, a score of 4 is appropriate; the description does not need to add parameter detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List'), a resource ('configured SentinelOne tenants'), and the data source ('config.json'). It is immediately clear what the tool does and it is distinguishable from all sibling tools, none of which perform tenant listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool's use case: retrieving the set of tenants already configured in config.json, likely before performing tenant-scoped operations. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention prerequisites such as config.json needing to exist or be populated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mark_threat_resolvedMark Threat ResolvedA

Mark one or more threats as resolved with analyst verdict. verdict: false_positive | true_positive | suspicious | undefined.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoResolved via SentinelOne MCP
tenantNo
threat_idsYes
analyst_verdictNofalse_positive

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the safety burden; it clearly discloses that this is a state-changing operation (marks threats resolved) and lists acceptable verdict values. However, it does not mention reversibility, permissions, or whether this irreversibly resolves the threat in SentinelOne.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence that states the operation and the required verdict vocabulary with no filler. Every element earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema exists, so return-value documentation is not necessary, and the core invocation path (threat_ids + analyst_verdict) is covered. The definition is still thin for a mutation tool lacking annotations: it omits usage prerequisites, side-effect caveats, and tenant targeting behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate; it does add meaning for analyst_verdict by enumerating the four accepted values and implies that threat_ids can cover multiple threats. It does not explain note or tenant semantics, though those names are fairly self-explanatory alongside their defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Mark'), a clear resource ('threats'), and the resulting state ('as resolved'), immediately distinguishing it from read-oriented siblings like get_threats and get_unresolved_threats. The verdict values reinforce what the tool accomplishes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'with analyst verdict' implies this should be used after an analyst has reached a conclusion, but the description gives no explicit when-to-use or when-not-to-use guidance and does not name alternatives such as process_pending_alerts. Usage context is therefore only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

process_pending_alertsProcess Pending AlertsA

Process pending XDR alerts from Elasticsearch and create them via GraphQL. Requires prior refresh_login for XDR visibility cookies.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It reveals that the tool creates GraphQL entries and depends on prior authentication, but it does not explain what happens to the original Elasticsearch records, whether the operation is idempotent, or what side effects the creation may have.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences deliver the core action, data source, destination, and a required prerequisite with no filler. The most important operational constraint is placed up front.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and an output schema, the description is reasonably complete, but it lacks details about post-processing effects, idempotency, and failure behavior. Since there are no annotations, these gaps are left entirely to the agent's inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, so there are no parameter semantics to document. The description appropriately focuses on prerequisites and processing behavior instead.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: process pending XDR alerts from Elasticsearch and create them via GraphQL. It identifies a specific resource and destination, but does not explicitly contrast itself with sibling tools like get_alerts or refresh_login.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear prerequisite by stating that refresh_login must be called first for XDR visibility cookies. However, it does not explain when to use this tool versus alternatives such as get_alerts or mark_threat_resolved, leaving the decision partly implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

purple_ai_queryPurple Ai QueryB

Ask SentinelOne Purple AI a natural-language query. Uses Playwright headful; reuses browser session across calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
tenantNo
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses useful behavioral traits: it uses Playwright in headful mode and reuses the browser session across calls. However, with no annotations provided, it does not address authentication requirements, potential side effects, rate limits, or what happens when the session is stale, leaving significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler. It front-loads the core purpose and then adds the most relevant implementation detail about browser session reuse, making every sentence informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is too sparse for a stateful, browser-automated tool with a long default timeout and optional tenant parameter. It omits usage context, session prerequisites, and relationship to sibling tools like purple_ai_reset, even though an output schema may cover return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning to the 'query' parameter by calling it a natural-language query, but it does not explain 'tenant' or 'timeout_seconds'. With 0% schema description coverage, the description only partially compensates for the missing parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: asking SentinelOne Purple AI a natural-language query. It identifies the resource and the nature of the input, which distinguishes it from structured query tools like run_dv_query, though it does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus siblings such as purple_ai_reset or refresh_login. The description implies it is for natural-language questions to Purple AI, but does not state prerequisites, exclusions, or how it relates to session management.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

purple_ai_resetPurple Ai ResetA

Reset cached Purple AI browser session (forces re-login on next query).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It clearly states the side effect: the cached session is reset and the next query requires re-login. It could add more about whether any in-flight query is affected, but the core destructive behavior is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. It states the action, the target, and the resulting behavior, earning its place entirely.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter reset tool with an output schema present, the description is complete. It tells the agent what will be reset and what the observable consequence will be on the next query, which is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, so there are no parameter semantics to explain. The baseline of 4 applies because no parameter documentation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Reset') with a clear resource ('cached Purple AI browser session') and states the consequence ('forces re-login on next query'). This distinguishes it from siblings like refresh_login and purple_ai_query by describing the actual invalidation behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used when a cached Purple AI session needs to be invalidated, but it does not explicitly say when to prefer this over alternatives such as refresh_login. No exclusions or comparison with sibling tools are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

refresh_loginRefresh LoginA

Refresh SentinelOne session cookies for one or all tenants. Stores cookies in each tenant's Azure Key Vault.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenantNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must disclose side effects. It explicitly states that cookies are stored in each tenant's Azure Key Vault, which clearly signals a state-changing operation. However, it does not mention permissions, overwrite behavior, failure consequences, or whether existing sessions are invalidated, leaving only partial transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no wasted words. The core action is front-loaded in the first sentence, and the side effect is neatly added in the second. It is appropriately sized for a single-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple tool with one optional parameter and an output schema, so return values are already covered. The description covers the purpose, scope, and storage side effect. It lacks explicit prerequisites and the meaning of null for 'all tenants', but overall it provides enough context to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides no parameter descriptions (0% coverage), but the tool description clarifies that the 'tenant' argument selects one or all tenants. This adds meaningful semantics beyond the raw nullable string schema, though it does not explicitly state that null means 'all tenants'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action: refreshing SentinelOne session cookies, and the resource scope: one or all tenants. It also names the storage side effect in Azure Key Vault, distinguishing it from the sibling query and threat tools. The verb and resource are precise, leaving no ambiguity about the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance is provided. The description does not mention conditions that warrant calling this tool, prerequisites, or how it differs from sibling tools. The only clue is the tool name and generic purpose, which is insufficient for an agent to decide between this and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_dv_queryRun Dv QueryB

Run a raw Deep Visibility S1QL query (init → poll → events). Example: storyline = "ABC123" AND event.type = "Process Creation".

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
tenantNo
to_dateNo
from_dateNo
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It reveals that the tool works as a stateful sequence ('init → poll → events'), which is a meaningful behavioral trait beyond the schema. It does not mention side effects, permissions, or error behavior, but the lifecycle disclosure adds real value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: one clear verb-and-resource sentence followed by a useful example. There is no filler, and every sentence contributes to understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even though an output schema exists for return values, the description remains incomplete for a 6-parameter tool: it omits parameter semantics, date/time handling, tenant behavior, timeout implications, and any guidance on when to choose this raw-query tool over siblings. An agent would likely need to inspect system conventions or make unsafe assumptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only illuminates the 'query' parameter through an S1QL example, leaving limit, tenant, from_date, to_date, and timeout_seconds unexplained in both schema and description. The agent would have to guess formats and defaults for most parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Run a raw Deep Visibility S1QL query') and adds a lifecycle hint ('init → poll → events') plus an example query. It is scoped to Deep Visibility/S1QL, which helps distinguish it from higher-level tools, though it does not explicitly name or contrast sibling tools like xdr_query.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is given about when to use this tool versus alternatives such as xdr_query, get_storyline_events, or purple_ai_query. The word 'raw' implies direct querying is the use case, but the description leaves the selection criteria implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xdr_queryXdr QueryC

Query SentinelOne XDR Data Lake (SentinelDataLakeHelper.query). event_type: PROCESS_CREATION, DNS, NETWORK_CONNECT, FILE_CREATION, LOGIN, REGISTRY_MODIFIED, COMMAND_SCRIPT, URL, CROSS_PROCESS, etc. Filter kwargs: endpoint, os, site_id, src_process, src_user, image, cmdline, domain, url, dst_ip, dst_port, storyline_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
osNo
urlNo
extraNo
hoursNo
imageNo
domainNo
dst_ipNo
tenantNo
cmdlineNo
site_idNo
dst_portNo
endpointNo
src_userNo
event_typeYes
src_processNo
storyline_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It names the underlying helper and lists event types and filters, but it does not disclose return behavior, default time windows, pagination, rate limits, permissions, or side effects. This is a significant gap for a data-query tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose, followed by useful enumerations of event types and filter kwargs. Every section contributes information, though the long flat list could be slightly better organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 16 parameters, no schema descriptions, and no annotations, the description is not complete enough for reliable invocation. It omits important context such as the meaning of each filter, the default time range, how the extra parameter behaves, and any operational caveats. The existence of an output schema helps but does not fill these gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does enumerate many filter kwargs and gives examples for event_type, which adds value over the bare schema. However, it omits several parameters such as hours, tenant, and extra, and provides no semantic explanation for the listed filters beyond their names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool queries the SentinelOne XDR Data Lake and specifies a specific verb and resource. It lists concrete event types and filter kwargs, making the tool's function unmistakable. It does not explicitly contrast itself with siblings like run_dv_query, so it stops short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives such as run_dv_query, get_alerts, or get_storyline_events. The described event types imply when it might be appropriate, but there are no explicit conditions, exclusions, or comparisons to siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 14 tool updatesv0.1.0
    • First observedget_alerts
    • First observedget_cloud_detection_rules
    • First observedget_storyline_events
    • First observedget_threat_context
    • First observedget_threats
    • First observedget_unresolved_threats
    • First observedlist_tenants
    • First observedmark_threat_resolved
    • First observedprocess_pending_alerts
    • First observedpurple_ai_query
    • First observedpurple_ai_reset
    • First observedrefresh_login
    • First observedrun_dv_query
    • First observedxdr_query

TDQS

B3.4/5.0

Scored across 14 tools

Disambiguation3/5

Core resources (tenants, rules, Purple AI) are distinct, but several tools overlap in intent: get_threats vs get_unresolved_threats are near-duplicates, and get_storyline_events, run_dv_query, and xdr_query all offer event querying with only backend/scope differences. Descriptions help, but an agent could easily pick the wrong one without careful reading.

Naming Consistency4/5

Most tools follow a readable snake_case verb_noun pattern like get_threats, list_tenants, and mark_threat_resolved. There are minor deviations: run_dv_query and xdr_query both represent query actions but use different forms, and purple_ai_query/reset are not strictly verb-first. Overall the pattern is consistent enough to be predictable.

Tool Count4/5

14 tools is reasonable for a security operations server covering threats, alerts, Deep Visibility/XDR queries, tenants, and Purple AI. The count is slightly high because some event-query tools could be consolidated, but each tool still represents a plausible capability.

Completeness4/5

The set covers the main incident triage flow well: list unresolved threats, get threat context, query related events, and mark resolved. Minor gaps exist around cloud-detection rule management and alert status updates, but core investigative and response workflows are present.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Enables MCP clients to interact with SentinelOne's cybersecurity platform for security analysis, threat investigation, and asset management through natural language queries. Provides read-only access to alerts, vulnerabilities, misconfigurations, and inventory data.
    33
    98
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables agentic SecOps by executing Microsoft Defender XDR response actions (device isolation, antivirus scans, forensic collection, incident management) through natural language with orchestrators like GitHub Copilot.
    21
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to securely access encrypted secrets (SSH keys, API tokens, passwords) with real-time user approval via Passkey, and supports SSH remote execution through the MCP protocol.
    -