Skip to main content
Glama
WYRE-AI

RoboShadow MCP Server

by WYRE-AI

RoboShadow MCP Server

MCP server for RoboShadow's Rubicon Platform Data API - endpoint security (antivirus, Windows Defender, firewall), asset/hardware inventory, applications, users, vulnerabilities, and remediation status, for AI assistants and the WYRE Conduit gateway.

Scope: every documented operation is read-only (deliberate, not a filtered subset)

RoboShadow's Rubicon Platform Data API (https://cdn.development.roboshadow.com/publicapi/openapi.yaml, fetched directly) defines 40 GET paths across 15 tags (Antivirus, Applications, Defender, Devices, Disks, Firewall, Hardware, Identity, MFA, Remediation, Services, Updates, Users, Vulnerabilities, Vulnerability Scanner) and exactly one non-GET operation in the entire spec: POST /identity/bearertoken. That single POST is the vendor's own documented credential-refresh mechanism (OpenAPI tag: Authentication) - it exchanges a Refresh Token for a short-lived Bearer Token and mutates no organisation data. There is no create/update/delete/remediation-trigger endpoint anywhere in the published spec to exclude - unlike this session's other connectors, this one has no write surface to carve away from.

This connector implements all 40 GET operations, one tool each, and calls POST /identity/bearertoken internally (never as an exposed tool) purely to keep its own access token fresh. See Authentication below for why that call exists and why it isn't a tool.

Related MCP server: OpenCTI MCP Server

Authentication

RoboShadow's Rubicon Platform Data API authenticates with a Bearer token (components.securitySchemes.BearerAuth, bearerFormat: JWT in the vendor's own spec). Generate credentials at your RoboShadow portal under Reports -> API Token, which shows three values together: an Organisation ID, a Bearer Token, and a Refresh Token.

The Bearer Token itself is short-lived - RoboShadow's own BearerTokenResponse schema documents expiresIn in seconds (~1 hour in the vendor's example). A token pasted into a long-running connector would go stale within the hour, so this connector stores the Refresh Token instead and exchanges it for a fresh Bearer Token internally (POST /identity/bearertoken) before every data call, caching the result in-process until shortly before it expires. The Organisation ID is not stored as a credential - pass it as the organisationId argument to any tool (discover it with roboshadow_list_organisations if you don't already have it), since a Refresh Token can resolve to more than one organisation on an MSP/reseller account.

Two separate claims here, at deliberately different confidence levels - the two-tier split established across this batch of connectors:

  • Structurally verified (checked directly, stated with full confidence): this connector's own code makes zero mutating calls against RoboShadow's data API. Every function in client.ts that reads organisation data calls one of the 40 dedicated GET operations in the published spec; the only non-GET call anywhere in src/ is the bearer-token exchange itself, and it is never exposed as an MCP tool.

  • Vendor-documented, not independently verified (hedged deliberately): RoboShadow's own OpenAPI spec defines no write/mutate endpoint for organisation data anywhere - there is no scoped, read-only variant of the Bearer/Refresh Token to request instead, because the full token grants exactly the same access the vendor's own spec grants: reads only. Whether some other, undocumented part of the RoboShadow platform (outside this Organisation-Endpoints spec) accepts write calls under the same token has not been tested by WYRE - only that this spec, and this connector, expose none.

In gateway mode the refresh token arrives per-request via the X-RoboShadow-Refresh-Token header; in local/stdio mode it's read once from ROBOSHADOW_REFRESH_TOKEN.

Configuration

Env var

Description

ROBOSHADOW_REFRESH_TOKEN

RoboShadow Refresh Token (Reports -> API Token in the portal).

MCP_TRANSPORT

stdio (default) or http.

AUTH_MODE

env (default, reads the var above) or gateway (credential arrives per-request via the X-RoboShadow-Refresh-Token header, injected by the Conduit gateway).

CONDUIT_S2S_SECRET

When set, the HTTP transport requires a valid X-Gateway-S2S header (Conduit sidecar auth) on every /mcp request.

LOG_LEVEL

debug | info (default) | warn | error.

Tools

40 read-only tools, one per GET operation in the Rubicon Platform Data API's published spec. Every tool that reads organisation-scoped data takes organisationId - discover it with roboshadow_list_organisations.

Identity

  • roboshadow_list_organisations - list every organisation visible to this refresh token.

  • roboshadow_list_organisation_users - list an organisation's users (display name, email, permission level). PII - admin-gated.

MFA

  • roboshadow_get_mfa_report - paged MFA status report (registered methods, MFA status, Global Administrator flag) for a Microsoft-identity-linked organisation. PII/identity data - admin-gated.

Vulnerability Scanner

  • roboshadow_list_scan_status - status of every external vulnerability scan (VScanner), filterable by schedule/status.

  • roboshadow_get_scan_summary - detailed summary of one scan (IP + web vulnerability totals).

  • roboshadow_get_scan_ips_overview - per-target CVE/port breakdown for one scan.

Applications

  • roboshadow_list_application_groups - applications grouped across the organisation, with install/device/version counts.

  • roboshadow_get_application_group - detail for one application group.

  • roboshadow_get_device_applications - applications installed on one device.

Devices

  • roboshadow_list_devices - every device in the organisation, with hardware/OS identity, network address, health scores, and CVE/update counts. PII (IP/MAC address, logged-on user, serial number) - admin-gated.

  • roboshadow_get_device - detail for one device. PII - admin-gated.

  • roboshadow_get_device_user_profiles - Windows user profiles on one device (includes SID). PII - admin-gated.

  • roboshadow_get_device_users - local/AD users on one device (email, employee ID, admin flag). PII - admin-gated.

Antivirus / Defender

  • roboshadow_get_device_antivirus - antivirus/endpoint-protection state for one device.

  • roboshadow_get_antivirus_report_by_device - antivirus status for every device.

  • roboshadow_get_ransomware_report - ransomware-protection status for every device.

  • roboshadow_get_antivirus_summary - organisation-wide antivirus summary.

  • roboshadow_get_antivirus_threats - detected antivirus threats across the organisation.

  • roboshadow_get_windows_defender_report - Windows Defender configuration status for every device.

Firewall

  • roboshadow_get_firewall_report - Windows firewall status (per profile) for every device.

Disks

  • roboshadow_get_device_disks - disks on one device.

  • roboshadow_get_disk_shares - network shares exposed on one disk.

  • roboshadow_get_disk_report - disk usage across the organisation, grouped by disk.

  • roboshadow_get_disk_report_by_device - disk information grouped by device.

  • roboshadow_get_disk_summary - organisation-wide disk-usage summary (low-space devices, unencrypted drives, shares, USB disks).

Hardware

  • roboshadow_get_hardware_report_by_device - hardware inventory grouped by device.

  • roboshadow_get_hardware_summary - organisation-wide hardware summary.

Services

  • roboshadow_get_device_services - Windows services on one device, including unquoted-service-path vulnerability flag.

Updates

  • roboshadow_get_device_updates - missing Windows updates for one device.

  • roboshadow_get_updates_report_by_device - paginated missing-updates report grouped by device.

  • roboshadow_get_updates_summary - organisation-wide update summary and top devices needing attention.

Vulnerabilities

  • roboshadow_get_device_vulnerability_summary - per-application CVE detail and severity rollup for one device.

  • roboshadow_get_vulnerable_applications - applications with known vulnerabilities across the organisation.

  • roboshadow_get_cpe_vulnerabilities - CPE vulnerability findings across the organisation.

  • roboshadow_get_cve_vulnerabilities - CVEs affecting the organisation (CVSS/EPSS, known-exploited flag).

  • roboshadow_get_cve_fixes - available fixes/patches for one CVE.

  • roboshadow_get_vulnerable_devices - devices with known vulnerabilities.

  • roboshadow_get_vulnerabilities_summary - organisation-wide vulnerability summary and top-5 critical apps/CVEs/devices.

Remediation

  • roboshadow_get_remediation_report - vulnerability-remediation attempts across the organisation (action, target, outcome).

  • roboshadow_get_remediation_attempt_cves - CVEs addressed by one remediation attempt.

Sensitivity

RoboShadow is an endpoint-security and vulnerability-management platform - even as plain reads, most of this connector's 40 tools surface data that is PII (device users' SIDs, employee IDs, and email addresses; a device's logged-on user, IP/MAC address, and serial number), identity/MFA posture, or security-assessment data (vulnerabilities, threats, remediation outcomes, external scan results). Per this session's convention for vendors of this class (the same posture as Cork, CyberQP, Cisco Duo, and Slide in this same wave), every tool in this connector is isAdmin: true in the Conduit wiring, regardless of verb - this is a deliberate, vendor-wide design decision documented once in vendor-config.ts's roboshadow entry, not a per-tool sensitive-read escalation.

Development

npm install
npm run build
npm test
npm run lint   # tsc --noEmit

Docker

docker build -t roboshadow-mcp .
docker run -p 8080:8080 -e ROBOSHADOW_REFRESH_TOKEN=... roboshadow-mcp

License

Apache-2.0

Available Tools

40 tools
roboshadow_get_antivirus_report_by_deviceB

List antivirus/firewall/protection status for every device in the organisation.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (1-indexed). Default 1.
itemsPerPageNoNumber of items per page (1-100). Default 10.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. It conveys that the operation is a read-only list and defines the data scope, but it does not mention pagination behavior, potential for partial/incomplete results, output format, or any other operational traits.

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?

A single front-loaded sentence contains the core action and scope with no filler. It is appropriately concise, though mentioning 'firewall/protection' alongside 'antivirus' makes it slightly broader than the tool name suggests.

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?

With no output schema and a large sibling group, the definition is thin: it does not clarify how this report relates to get_device_antivirus, get_firewall_report, or get_antivirus_summary, nor does it describe the paginated response behavior needed to retrieve all devices. The minimal params are covered, but the surrounding context is insufficient.

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 100%, with clear descriptions for organisationId, page, and itemsPerPage, so the baseline is 3. The description itself adds no parameter-level detail, but the schema already carries the necessary semantics.

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 ('List'), names the resource ('antivirus/firewall/protection status'), and scopes it to every device in the organisation. It is clear, though it does not explicitly distinguish itself from related siblings such as roboshadow_get_device_antivirus or roboshadow_get_antivirus_summary.

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 'for every device in the organisation' implies this is the org-wide antivirus/security status report, which gives some usage context. However, no alternative tools are named and no when-to-use/when-not-to-use guidance is provided, leaving the agent to infer routing among the large sibling set.

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

roboshadow_get_antivirus_summaryA

Get an organisation-wide antivirus summary: active-threat count, devices missing antivirus/on-access/real-time protection, third-party vs. Windows Defender coverage, and open-firewall count.

ParametersJSON Schema
NameRequiredDescriptionDefault
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden. It leads with the read verb 'Get,' specifies the aggregation scope, and lists the exact report contents, making it clear this is a read-only summary rather than a mutating operation. It does not mention pagination or freshness, but these are unlikely to be material for this simple one-parameter report.

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-structured sentence that front-loads the purpose and then presents concrete output categories without filler. Each element earns its place, and no wording is wasted.

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 one-parameter report tool with no output schema, the description supplies the essential invocation and output context: what the report covers, the organisation-wide scope, and how to obtain the organisation ID via roboshadow_list_organisations. It could be stronger with explicit sibling differentiation, but an agent can still call it correctly.

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?

The only parameter, organisationId, is fully documented in the schema with a type and a discovery hint, so schema description coverage is 100%. The description adds nothing about parameters, and the baseline of 3 applies because the schema carries the load adequately.

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 names a specific verb and resource: 'Get an organisation-wide antivirus summary,' and enumerates the report's contents (active-threat count, protection gaps, Defender vs third-party coverage, firewall count). It is clear and precise, but it does not explicitly contrast itself with the many per-device siblings like roboshadow_get_antivirus_report_by_device.

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 given about when to choose this tool over the many antivirus/firewall siblings in the suite. There is no mention of alternatives, exclusions, or situations where a per-device report would be more appropriate; the 'organisation-wide' scope is only an implicit hint.

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

roboshadow_get_antivirus_threatsB

List detected antivirus threats across the organisation, with severity and detection/remediation timing.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (1-indexed). Default 1.
itemsPerPageNoNumber of items per page (1-100). Default 10.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full burden of behavioral disclosure. It states that the tool lists threats and includes severity/timing, but does not disclose whether it returns resolved or unresolved threats, whether permissions are required, or what the response format looks like. The read-only nature is implicit, not explicit, and no safety profile is communicated.

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 sentence with no filler. It front-loads the action and scope, and every word contributes to the meaning. This is an example of appropriate conciseness.

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 simple list tool with 3 parameters and full schema coverage, the description is adequate but not complete. It does not clarify the meaning of 'detected' (e.g., active vs. resolved threats), nor does it mention pagination behavior (though defaults are in the schema). With no output schema, a note about the response structure would improve completeness, but the tool's simplicity keeps this from being a major gap.

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 100%, so the schema already documents page, itemsPerPage, and organisationId. The description adds no parameter-specific detail beyond what the schema provides, such as the relationship between severity and pagination or any format constraints. It meets the baseline but does not elevate it.

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 verb (list), the resource (detected antivirus threats), and the scope (across the organisation), along with useful details (severity and detection/remediation timing). It distinguishes from device-specific tools by mentioning 'across the organisation', but does not explicitly name sibling tools or state what it is not.

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 given on when to use this tool versus alternatives such as roboshadow_get_antivirus_summary or roboshadow_get_device_antivirus. The description implies an organisation-level listing, but does not state exclusions or provide a decision rule. An agent is left to infer the appropriate context.

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

roboshadow_get_application_groupB

Get detailed information for one application group by its hashed group ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
group_idYesHashed application group ID.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the behavioral disclosure burden. 'Get detailed information' signals a read-only lookup, but the description says nothing about auth requirements, invalid-ID behavior, rate limits, or whether any state is modified. With zero annotation coverage, this is too thin.

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?

One short sentence with no filler: the action is front-loaded ('Get detailed information') and the key identifying input ('hashed group ID') appears immediately. Every word 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 tool itself is simple and the schema fully documents both parameters, so the description is minimally usable. However, with no output schema and no annotation safety profile, it does not describe the return shape and it omits how to obtain a group_id (e.g., via roboshadow_list_application_groups), leaving clear gaps.

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 100%: both group_id and organisationId are already documented in the schema, and the organisationId description even names roboshadow_list_organisations for discovery. The tool description merely restates 'hashed group ID' and adds no format, constraint, or relationship details beyond the schema, so the high-coverage baseline of 3 applies.

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 gives a specific verb ('Get'), resource ('application group'), and scope ('one ... by its hashed group ID'), so an agent immediately knows this is a single-item lookup. It implicitly differentiates from roboshadow_list_application_groups by saying 'one', but it does not explicitly name that sibling or contrast its behavior.

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 statement of when to use this tool instead of roboshadow_list_application_groups or the other get_* siblings, and no prerequisite workflow such as 'obtain the hashed ID from list_application_groups first.' The phrase 'by its hashed group ID' only implies a prerequisite without giving actionable guidance.

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

roboshadow_get_cpe_vulnerabilitiesB

List CPE (Common Platform Enumeration) vulnerability findings across the organisation.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (1-indexed). Default 1.
itemsPerPageNoNumber of items per page (1-100). Default 10.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

B3.3/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 burden. 'List' conveys a non-mutating, organisation-wide query, and pagination is implied by the schema, but the description does not disclose what a finding contains, result ordering, limits, or response shape.

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?

A single compact sentence with no filler. The resource is front-loaded and the acronym is expanded, making the description easy 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?

The description is adequate for a simple paginated list-tool with fully documented parameters, but it does not describe the returned findings or explain how CPE vulnerability findings differ from the many closely related sibling tools. Since there is no output schema, some return-shape context would improve completeness.

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 100%, so the parameters are already well documented in the schema. The description adds only marginal meaning with 'across the organisation', clarifying that the query is scoped at the organisation level.

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 names a specific verb ('List') and a specific resource ('CPE vulnerability findings'), and expands the CPE acronym. It is broadly distinguishable from siblings, though it does not explicitly contrast with closely related tools like roboshadow_get_cve_vulnerabilities.

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 gives no guidance on when to use this tool over alternatives such as roboshadow_get_cve_vulnerabilities, roboshadow_get_vulnerable_applications, or roboshadow_get_vulnerabilities_summary. There are no usage conditions, exclusions, or selection criteria.

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

roboshadow_get_cve_fixesB

List available fixes/patches for one CVE.

ParametersJSON Schema
NameRequiredDescriptionDefault
cveIdYesCVE identifier (e.g. CVE-2024-1234).
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

B3.1/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden of behavioral disclosure. It only says 'List', which implies a read operation, but it does not state output characteristics, authentication needs, or any side effects. The description adds no behavioral context beyond the bare purpose.

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 sentence with no redundant words. It is appropriately front-loaded and every word contributes to the core meaning.

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 simple two-parameter list tool, the description is minimally viable: it names the resource and the schema covers parameters. However, with no annotations and no output schema, it would benefit from clarifying what a 'fix/patch' entry looks like and when to call this over similar CVE-related tools.

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 100%, so the schema already documents both parameters. The description's phrase 'for one CVE' aligns with cveId but adds no additional semantic detail beyond what the schema already provides.

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 ('List') and resource ('available fixes/patches for one CVE'), making the tool's purpose clear. However, it does not explicitly differentiate this tool from siblings like roboshadow_get_cve_vulnerabilities or roboshadow_get_remediation_report, so it only partially distinguishes itself.

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 gives no guidance on when to use this tool versus alternatives, and provides no prerequisites or exclusions. Siblings such as roboshadow_get_remediation_attempt_cves and roboshadow_get_cve_vulnerabilities overlap in domain, so the agent is left to guess which tool fits the task.

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

roboshadow_get_cve_vulnerabilitiesA

List CVEs affecting the organisation, each with CVSS/EPSS score, known-exploited-in-the-wild flag, and affected-OS/app/device counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoFilter results to the last N days.
pageNoPage number for pagination (1-indexed). Default 1.
itemsPerPageNoNumber of items per page (1-100). Default 10.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A3.6/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 burden. It reveals useful output behavior and the organisation-level scope, and 'List' implies read-only, but it does not mention permissions, side effects, sorting, or limitations. Sufficient for a simple list operation but not richly transparent.

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?

A single, front-loaded sentence states the main purpose first and packs all relevant output detail into one compact clause. There is no filler or repetition.

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 tool with no output schema and no annotations, the description covers the return shape and scope well. Combined with fully described parameters, the agent has enough to call it correctly, though explicit guidance on how it relates to the numerous sibling vulnerability tools would improve completeness.

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 100%, so every parameter is already documented. The description does not need to repeat parameter details and adds value only by describing what the returned CVEs include, not by enhancing parameter semantics.

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 names a specific verb and resource ('List CVEs affecting the organisation') and enumerates meaningful returned attributes (CVSS/EPSS score, known-exploited flag, affected-OS/app/device counts). This clearly differentiates it from sibling tools like get_cve_fixes or get_vulnerabilities_summary.

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 gives no guidance on when to use this tool instead of alternatives such as get_cve_fixes, get_vulnerable_devices, or get_cpe_vulnerabilities. It does not state exclusions, prerequisites, or typical scenarios, leaving the agent to infer usage from the tool name alone.

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

roboshadow_get_deviceA

Get detailed information about a single device. PII-bearing - admin-gated.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesUnique identifier for the device.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden. It discloses that the tool returns PII and requires admin privileges, which is meaningful auth and sensitivity context beyond the tool name. It doesn't detail the response shape, but the read-only nature is clear from 'Get'.

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 clauses with no filler. The core action is front-loaded, and the access warning is compactly appended.

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 simple two-parameter read with full schema coverage, this is mostly adequate. However, there is no output schema and the description doesn't hint at what fields the 'detailed information' includes, which leaves some ambiguity among the many get_device_* siblings.

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 coverage is 100%, so both parameters are already fully documented. The description adds no parameter-level detail beyond what the schema provides, so the baseline of 3 applies.

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: 'Get detailed information about a single device.' This clearly differentiates it from list_devices and the device-specific report siblings, though 'detailed information' remains broad and doesn't enumerate what base device details are included.

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 provides access context ('PII-bearing - admin-gated') that tells an agent the tool is restricted to admins, but it doesn't name alternatives or state when this tool should be preferred over sibling get_device_* tools. Usage is implied rather than explicitly guided.

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

roboshadow_get_device_antivirusA

Get antivirus/endpoint-protection state for one device: engine name, real-time/tamper-protection status, and any active threats.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesUnique identifier for the device.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral transparency burden. It communicates a read-only get operation and names the output categories, which is helpful. It does not describe the response structure, empty-threat handling, permissions, or other 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 with no filler. It efficiently states the action, scope, and key output fields in under 20 words.

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?

Given there is no output schema and a large set of sibling tools, the description should do more to disambiguate similar tools and outline the return shape. It explains the domain data returned but not how the result is structured or why this tool should be preferred over closely related siblings.

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 100%, with both parameters already clearly documented. The description reinforces the per-device scope but adds no parameter-specific meaning beyond what the schema already provides.

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 opens with a clear action and resource: 'Get antivirus/endpoint-protection state for one device' and enumerates specific returned contents (engine name, real-time/tamper-protection status, active threats). It clearly identifies the tool's scope, though it does not explicitly differentiate it from overlapping siblings like roboshadow_get_antivirus_report_by_device or roboshadow_get_antivirus_threats.

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 'for one device' implies the tool is appropriate when a single device's antivirus state is needed, and the required parameters reinforce that. However, it gives no explicit guidance about when not to use this tool or which sibling to prefer for org-wide summaries or threat-level reports.

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

roboshadow_get_device_applicationsA

List applications installed on one device, with vendor, version, and last-seen time.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (1-indexed). Default 1.
searchNoSearch term for filtering results.
deviceIdYesUnique identifier for the device.
itemsPerPageNoNumber of items per page (1-100). Default 10.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A3.5/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 of behavioral disclosure. It states the core read action but does not mention pagination behavior, response shape, or any access/scope implications, even though the schema includes pagination parameters.

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 clear sentence that front-loads the verb and resource, with no filler or redundancy. Every word contributes to understanding what the tool does.

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 plus fully documented schema covers the basic use case, but with no output schema and no annotations, it omits useful context such as pagination behavior and result structure. It is minimally adequate for a simple list call but not fully complete.

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 100%, so the parameters are already well-documented. The description adds no additional parameter-level meaning, only mentions result fields rather than input semantics, which keeps it at the baseline.

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 ('List') and resource ('applications installed on one device'), and names the returned fields (vendor, version, last-seen time). This clearly differentiates it from sibling tools like roboshadow_list_devices or roboshadow_get_vulnerable_applications.

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 'on one device' implies a per-device use case, which gives some context for when to use it. However, it does not explicitly state when to prefer this tool over alternatives or mention prerequisites beyond what the schema already requires.

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

roboshadow_get_device_disksB

List disks (drive letter, size, free space, used %) on one device.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesUnique identifier for the device.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

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 carries the full burden. It discloses that the tool is a read-only listing operation and even names the output fields, which is useful. However, it does not mention any edge behavior such as whether removable/network drives are included, whether sorting or pagination applies, or whether any special permissions are required.

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?

A single, compact sentence that front-loads the verb and resource, then packs the return fields into a parenthetical. Every word earns its place with no fluff or repetition.

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 two-parameter read-only list with complete schema documentation, the description is nearly sufficient. The only notable gap is not clarifying how this tool relates to the several other disk-focused siblings, which could cause an agent to pick the wrong one.

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 100%: both deviceId and organisationId are already documented in the schema, including a hint to discover organisationId via roboshadow_list_organisations. The description adds no parameter-level meaning, so the baseline of 3 is appropriate.

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 ('List') and resource ('disks'), and the parenthetical enumerates exactly what is returned (drive letter, size, free space, used %). The scope 'on one device' clearly differentiates from org-wide disk summaries, though it does not explicitly distinguish this tool from sibling per-device disk tools like roboshadow_get_disk_report_by_device.

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 given for when to use this tool over alternatives. The description states only the action, with no mention of exclusions, prerequisites, or the circumstances that would make roboshadow_get_disk_report_by_device or roboshadow_get_disk_summary more appropriate.

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

roboshadow_get_device_servicesA

List Windows services on one device, including start mode, running state, and whether the service has an unquoted-path vulnerability.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (1-indexed). Default 1.
searchNoSearch term for filtering results.
deviceIdYesUnique identifier for the device.
itemsPerPageNoNumber of items per page (1-100). Default 10.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A3.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 full burden of behavioral disclosure. It clearly signals a read-only listing operation and describes the output content, but it does not mention pagination, filtering behavior, response shape, or any operational caveats. This is adequate but not rich.

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-structured sentence that front-loads the action and resource, then lists the relevant data fields. Every part earns its place with no redundancy or filler.

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 simple per-device list tool, the description conveys the core purpose and output scope. However, it lacks guidance on when to choose it over related device report tools and does not mention result pagination or response expectations, leaving some contextual gaps given there is no output schema.

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 100%, so the schema already documents all five parameters. The description adds context about what the returned data covers but does not add meaning to the parameters beyond the schema, so the baseline 3 applies.

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 and resource: 'List Windows services on one device.' It also names concrete included fields (start mode, running state, unquoted-path vulnerability), which clearly distinguishes it from sibling device-focused tools like roboshadow_get_device_applications or roboshadow_get_device_antivirus.

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 phrase 'on one device' gives clear context that this is a per-device service listing tool, which helps an agent select it for per-device service queries. However, it does not explicitly name alternatives or state when not to use this tool, so it stops short of a full 5.

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

roboshadow_get_device_updatesA

List missing Windows updates for one device, with category, KB/package ID, and reboot requirement.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (1-indexed). Default 1.
otherNoFilter to other updates.
driverNoFilter to driver updates.
rollupNoFilter to rollup updates.
criticalNoFilter to critical updates.
deviceIdYesUnique identifier for the device.
securityNoFilter to security updates.
itemsPerPageNoNumber of items per page (1-100). Default 10.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description takes on the burden of explaining behavior. It discloses that the result is a list of missing updates and names return fields, but it does not mention permissions, pagination behavior, or how the optional category filters affect results. This is adequate for a simple read tool but not rich.

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 one sentence with no filler: it states the verb, scope, and return content efficiently. Every word 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 tool has nine parameters and no output schema or annotations, yet the description covers only core output fields and scope. The parameter schema fills in filters and pagination, but the description does not address alternatives or expected response shape, leaving moderate gaps.

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 100%, so the input schema already documents all nine parameters, including the organisationId discovery hint. The description adds no parameter-level meaning beyond stating the output fields, so the baseline 3 applies.

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 names a specific verb ('List'), resource ('missing Windows updates'), scope ('for one device'), and output details ('category, KB/package ID, and reboot requirement'). It is clear, but it does not differentiate from the sibling roboshadow_get_updates_report_by_device, so it stops short of full 5.

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 a per-device use case with 'for one device' and lists missing updates, which gives some context. However, it does not explicitly say when to use this tool versus roboshadow_get_updates_report_by_device or roboshadow_get_updates_summary, nor does it provide any exclusions.

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

roboshadow_get_device_user_profilesA

List Windows user profiles present on one device, including profile SID and disk path. PII-bearing - admin-gated.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesUnique identifier for the device.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A3.8/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 full burden of behavioral disclosure. It explicitly warns that the data is PII-bearing and admin-gated, which are valuable operational and security traits. The verb 'List' also implies a read-only operation, though it does not mention pagination, rate limits, or failure modes. The added admin/PII context goes beyond a simple tautological statement and is genuinely useful.

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 short sentences. The first states the action, scope, and key output fields; the second adds operational warnings. There is no filler, redundant phrasing, or repetition of schema content. Every element contributes to the agent's understanding of what the tool does and what constraints apply.

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 two-parameter list tool with no output schema, the description sufficiently covers the return contents (SID, disk path) and the key context (single device, PII, admin-gated). It could be more complete by explicitly naming the sibling roboshadow_get_device_users as the alternative for non-Windows or device-level user listings, but the essential context is present.

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 100%: both deviceId and organisationId already have clear descriptions in the input schema. The tool description adds no extra parameter-level detail or examples, so the baseline of 3 applies. The schema already does the heavy lifting, and the description does not need to compensate.

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 ('List'), a clear resource ('Windows user profiles'), and a scoping qualifier ('on one device'), while also naming the output fields (profile SID and disk path). It distinguishes itself from the sibling roboshadow_get_device_users by specifying 'Windows user profiles' rather than just users on a device.

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 indicates the tool targets a single device, which implies when to use it, but it provides no explicit guidance on when to use this tool versus alternatives like roboshadow_get_device_users or roboshadow_list_devices. There are no exclusions or 'use this instead' statements, leaving the agent to infer selection criteria from the tool name and description alone.

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

roboshadow_get_device_usersA

List local/Active-Directory user accounts on one device, including email address, employee ID, and admin flag. PII-bearing - admin-gated.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesUnique identifier for the device.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A4/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 full burden. It adds valuable behavioral context: 'PII-bearing' signals sensitive data handling, and 'admin-gated' indicates a privilege requirement. These go beyond the schema and help the agent anticipate access constraints. It does not cover failure modes or pagination, but the core behavioral traits are 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 two sentences, front-loading the core purpose and immediately adding the important caveat about PII and admin access. Every word earns its place, with no fluff or redundant details.

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 list tool, the description covers the essential behavioral and data aspects: it lists what the output includes (email, employee ID, admin flag) and the access requirement. It lacks explicit return formatting or error handling, but given the small device-scoped output and the parameter schema, it is sufficiently complete for an agent to invoke it correctly.

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 coverage is 100% and both parameters already have clear descriptions. The tool description adds minimal parameter-specific detail beyond restating the device scope ('on one device'), which is also evident from the parameter name and schema. The baseline of 3 is appropriate since the schema does the heavy lifting.

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 verb 'List' and the resource 'local/Active-Directory user accounts on one device', along with specific fields (email, employee ID, admin flag). It implicitly differentiates from organisation-level listing (e.g., roboshadow_list_organisation_users) by emphasizing 'on one device', making the tool's scope unambiguous.

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 usage (when you need user accounts for a specific device) but does not explicitly mention alternatives or exclusions. There is no guidance on when to choose this over a sibling like roboshadow_get_device_user_profiles or roboshadow_list_organisation_users, leaving the decision to inference.

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

roboshadow_get_device_vulnerability_summaryA

Get the vulnerability summary for one device: per-application CVE lists (with CVSS scores and available WinGet upgrades) and an overall severity rollup.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesUnique identifier for the device.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A3.8/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. It does disclose what the response contains: per-application CVE lists, CVSS scores, available WinGet upgrades, and a severity rollup. It does not mention read-only behavior, output format, pagination, or what happens when no vulnerabilities exist, but as a 'Get' operation the mutational implications are minimal.

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-structured sentence that front-loads the core resource and scope, then uses a colon to list the concrete output components. Every element earns its place, with no filler or redundant restatement of the tool name.

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?

Given there is no output schema and no annotations, the description provides enough conceptual detail about the return value for an agent to know what it will receive. It identifies the required scope (one device), the key content areas (CVE lists, CVSS scores, WinGet upgrades, severity rollup), and the parameters are fully documented in the schema. It could be more explicit about response shape or empty results, but it is sufficiently complete for selection and invocation.

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 100%, and the schema already documents both parameters well, including how to discover organisationId via roboshadow_list_organisations. The description itself adds no additional parameter-level meaning beyond tying the output to one device, which matches the baseline for high schema coverage.

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 names a specific verb ('Get') and a specific resource ('vulnerability summary for one device'), then elaborates on the content: per-application CVE lists with CVSS scores, WinGet upgrades, and an overall severity rollup. This clearly differentiates it from sibling tools like roboshadow_get_vulnerable_applications or roboshadow_get_vulnerabilities_summary, which are not scoped to a single device in the same way.

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 intended use is implied by the phrase 'for one device' and by the resource name, so an agent can infer this is the right tool when it needs a device-scoped vulnerability summary. However, there is no explicit statement of when to use this tool versus alternatives, nor any exclusion conditions or named sibling routes.

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

roboshadow_get_disk_reportA

List disk usage across the organisation, grouped by disk (percentage used, encryption status, share count).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (1-indexed). Default 1.
itemsPerPageNoNumber of items per page (1-100). Default 10.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the behavioral burden. It is transparent about the output shape (percentage used, encryption status, share count) and 'List' implies a non-mutating read operation. It does not cover data freshness or pagination behavior, but those are lower-risk for this kind of listing tool.

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?

A single sentence with no filler: it front-loads the verb and resource, states scope, and packs the key output fields. Every word contributes useful information.

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, org-level list tool with complete schema coverage, the description provides enough to call it correctly: scope, grouping, and output fields. It could have named device-scoped alternatives or described the response format more explicitly, but those are secondary gaps for this complexity level.

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?

All three parameters already have detailed schema descriptions, so the baseline is 3. The description adds only organisational scope context and does not need to compensate for any schema gaps, but it also adds no parameter-specific 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 uses a specific verb ('List') and a well-defined resource ('disk usage across the organisation'), then enumerates the grouping fields. The org-wide scope clearly distinguishes it from device-scoped siblings like roboshadow_get_disk_report_by_device.

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 intended use case by specifying 'across the organisation', which suggests an org-level report rather than a per-device one. However, it never explicitly names alternatives or gives when-not-to-use guidance, so the agent must infer the distinction from sibling names.

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

roboshadow_get_disk_report_by_deviceA

List disk information grouped by device (total disk/share counts, whether any drive is unencrypted).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (1-indexed). Default 1.
itemsPerPageNoNumber of items per page (1-100). Default 10.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It conveys a read-only report operation and adds useful content details (counts and unencrypted status), but it does not mention output format, ordering, pagination behavior, or any caveats about how 'unencrypted' is determined.

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 communicates the core action, grouping, and key output details with no redundant wording.

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 report-like tool with no output schema and no annotations, the description gives a reasonable high-level view of the return content but lacks context about how it differs from sibling disk report tools and any limitations or prerequisites beyond the required organisationId.

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 100%, so the input schema already documents all three parameters, including the meaning of organisationId and pagination defaults. The description adds no extra parameter semantics, so the baseline score of 3 is appropriate.

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 and resource: 'List disk information grouped by device' followed by concrete content examples ('total disk/share counts, whether any drive is unencrypted'). This clearly distinguishes it from generic disk tools and aligns with the 'by_device' suffix in the name.

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 given on when to choose this tool over closely related siblings such as roboshadow_get_disk_report, roboshadow_get_disk_summary, or roboshadow_get_device_disks. The description only explains what the tool does, not when to use it versus alternatives.

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

roboshadow_get_disk_sharesA

List network shares exposed on one disk of one device. Includes share path and access details.

ParametersJSON Schema
NameRequiredDescriptionDefault
diskIdYesDisk identifier.
deviceIdYesUnique identifier for the device.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

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 must carry the behavioral burden. It clearly indicates a read-only listing operation and discloses the kind of output ('share path and access details'), but provides no additional behavioral context such as output format, potential failure modes, or whether any special permissions are required.

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 redundant wording. It front-loads the primary action and scope, then adds the most relevant output information without wasting space.

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 list operation with three well-documented required parameters, the description covers what the tool returns ('share path and access details') and the precise scope. Although there is no output schema, the description supplies enough information for an agent to select and invoke the tool correctly; only richer output-shape detail is absent.

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 100%, so the parameters are already well-documented in the input schema. The description does not need to explain individual parameters, and while it adds contextual scope ('one disk of one device') but no parameter-specific semantics beyond that, the schema coverage baseline of 3 applies.

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 ('List') and resource ('network shares'), and narrows the scope precisely to one disk of one device. It also states what is included in the result ('share path and access details'), making the tool's purpose clear and distinct from broader disk/report siblings.

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 'on one disk of one device' gives useful context for when this tool is appropriate, especially among many disk-related sibling tools. However, it does not explicitly state when not to use it or mention any alternative tool, leaving usage guidance implied rather than explicit.

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

roboshadow_get_disk_summaryA

Get an organisation-wide disk-usage summary: low-disk-space devices, unencrypted laptops/servers/workstations, shared-folder and USB-disk counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden of behavioral disclosure. It indicates a read operation ('Get') and lists the return contents, which is helpful. However, it does not disclose any error handling, authentication requirements, rate limits, or whether the response is paginated. For a simple summary tool this is acceptable, but it leaves some behavioral aspects uncovered.

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-structured sentence that front-loads the resource and scope ('organisation-wide disk-usage summary') and then lists the key components. No extraneous words, and it conveys all necessary information efficiently.

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 tool with one parameter and no output schema, the description is fairly complete: it states what the summary contains and its scope. It does not mention potential error scenarios or the exact response format, but these are not critical for a simple read-only summary. The description covers the essential context an agent needs to decide when to call it and what to expect.

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?

The schema already fully describes the single parameter (organisationId) with a description including how to discover it. The tool description adds no additional meaning about the parameter beyond what the schema provides. With 100% schema coverage, a baseline of 3 is appropriate.

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 tool retrieves an organisation-wide disk-usage summary and enumerates the specific data points it includes (low-disk-space devices, unencrypted devices, shared-folder and USB-disk counts). The verb 'Get' plus the resource scope and explicit contents make it distinct from sibling tools like roboshadow_get_disk_report_by_device or roboshadow_get_disk_shares.

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 usage for a high-level organisation-wide overview by saying 'organisation-wide', but it does not explicitly state when to use this tool versus alternatives such as roboshadow_get_disk_report for per-device details. No alternative tools are named or exclusions given, so the guidance is implicit rather than explicit.

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

roboshadow_get_firewall_reportA

List Windows firewall status (enabled/disabled per profile: domain, private, public) for every device in the organisation.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (1-indexed). Default 1.
itemsPerPageNoNumber of items per page (1-100). Default 10.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

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 carries the burden of explaining behavior. It correctly conveys that the tool lists firewall statuses, but it does not mention pagination behavior, response shape, or that 'every device' may be delivered across pages despite the page/itemsPerPage parameters.

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, information-dense sentence with no filler or repetition. It front-loads the action, states the exact resource, specifies the per-profile statuses, and defines the organisational scope.

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 low-complexity report tool with fully documented parameters, the description covers the essential return content (firewall status per profile) and overall scope. The main gap is not stating that results are paginated and what fields identify each device, but this is a minor omission given the schema already documents pagination.

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 100%, with page, itemsPerPage, and organisationId each already documented in the input schema. The description adds no meaningful parameter-level information beyond what the schema provides, so the baseline score of 3 is appropriate.

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 ('List') with a clear resource ('Windows firewall status') and precise granularity (enabled/disabled per domain, private, public profile) at an organisation-wide scope. This clearly differentiates it from the many by-device report siblings.

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 phrase 'for every device in the organisation' clearly establishes the intended use case: an org-wide firewall status report rather than a single-device lookup. It does not explicitly name alternatives or exclusions, but the scope is clear enough for an agent to select it appropriately.

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

roboshadow_get_hardware_report_by_deviceA

List hardware inventory grouped by device: processor, memory, serial number, system manufacturer/model, and end-of-life OS flag.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (1-indexed). Default 1.
itemsPerPageNoNumber of items per page (1-100). Default 10.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A3.6/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 burden of behavioral disclosure. It clearly states what the tool returns (a list of fields per device) and implies a read-only operation, but it does not disclose side effects, response format beyond field names, pagination behavior, or potential limits. The listing of fields is useful but not comprehensive.

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, focused sentence with no filler. The core action and resource are front-loaded, and the field list is concise. Every word earns its place.

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 list tool with one required parameter and clear schema documentation for pagination, the description is mostly complete. It identifies what data is returned and the grouping. It could explicitly state the return format (e.g., an array of devices) or mention pagination, but the schema already covers pagination parameters, so the omission is acceptable. The absence of an output schema slightly reduces completeness but is not a major gap.

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?

The input schema has 100% coverage for all three parameters, each with a descriptive explanation. The description adds no additional parameter-level meaning beyond what the schema already provides. Since schema coverage is complete, the baseline of 3 is appropriate.

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 resource ('hardware inventory') grouped by device, and enumerates the exact fields returned (processor, memory, serial number, system manufacturer/model, end-of-life OS flag). This clearly distinguishes it from siblings like get_hardware_summary or get_disk_report_by_device.

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 gives no guidance on when to use this tool versus the many sibling report tools (e.g., hardware summary, disk report by device). It doesn't state any exclusions, prerequisites beyond the schema, or contextual cues for selection. An agent must infer usage from the name and description alone.

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

roboshadow_get_hardware_summaryA

Get an organisation-wide hardware summary: total machines, servers, workstations, and machines running an end-of-life OS.

ParametersJSON Schema
NameRequiredDescriptionDefault
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose the behavioral outcome: returning counts of machines, servers, workstations, and EOL OS systems. It describes a read-only summary operation and the categories returned, which is sufficient context for this simple tool.

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?

One tightly worded sentence that front-loads the action and resource, then lists the output categories. Every word earns its place with no redundancy or filler.

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 one-parameter read-only summary tool with no output schema, the description provides enough context about what the agent will get back. It could mention that results are returned as counts, but the phrasing 'total machines, servers...' already implies this well enough.

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?

The schema already documents the only parameter with 100% coverage, including how to discover the organisationId. The description adds no further parameter guidance, but none is needed given the high schema coverage and single simple parameter.

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 ('Get') and resource ('organisation-wide hardware summary'), and enumerates the exact categories returned: total machines, servers, workstations, and end-of-life OS machines. This clearly distinguishes it from device-specific siblings like roboshadow_get_hardware_report_by_device.

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 phrase 'organisation-wide' signals this is the summary-level tool rather than per-device or per-scan tools, giving implicit context for when to select it. It does not explicitly name alternatives or exclusions, but the scope is clear enough for a straightforward summary query.

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

roboshadow_get_mfa_reportA

Get a paged multi-factor-authentication report for a Microsoft-identity-linked organisation: each user's registered MFA methods, MFA status, and whether they hold the Global Administrator role. Results page in blocks of 5000 users - pass skipPages to page through until hasMoreData is false. PII-bearing identity data - admin-gated.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipPagesNoZero-based page number to skip to (page size is 5000). Default 0.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It discloses pagination semantics (5,000-user pages, hasMoreData as the stop condition), the admin-gating requirement, and that the data is PII-bearing. It also names the report contents, which is strong transparency for a report-retrieval tool.

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?

Three sentences, front-loaded with purpose, then pagination, then access and sensitivity. Every sentence contributes useful information without redundancy or fluff.

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?

Given only two parameters (one required), full schema coverage, and no output schema, the description sufficiently covers the tool's domain, output fields, pagination, and admin requirement. An agent can both select and invoke it correctly without external documentation.

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?

Schema coverage is 100%, so the baseline is 3. The description adds value by explaining how skipPages drives pagination ('pass skipPages to page through until hasMoreData is false') and reiterating the 5,000-user page size, while the schema already tells users to discover organisationId via roboshadow_list_organisations.

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 opens with a specific verb ('Get') and a distinct resource ('multi-factor-authentication report'), and lists the exact report contents (MFA methods, MFA status, Global Administrator role). The resource is clearly differentiated from the many sibling report tools, none of which target MFA reports.

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 provides clear invocation context: the tool is for Microsoft-identity-linked organisations, is admin-gated, and is paged via skipPages until hasMoreData is false. It does not explicitly name alternatives or when-not-to-use cases, but the MFA-report scope is unique among siblings, so the absence of exclusions is acceptable.

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

roboshadow_get_ransomware_reportB

List ransomware-protection status for every device in the organisation.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (1-indexed). Default 1.
itemsPerPageNoNumber of items per page (1-100). Default 10.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

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 behavioral disclosure burden. 'List' implies a read-only operation and 'every device' clarifies scope, but the description does not address output format, pagination behavior, permissions, or whether the report is limited in any way.

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 or repetition. It states the action, the resource, and the scope immediately, which makes 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?

The schema covers all inputs, including how to discover organisationId, and the description conveys the core output concept: ransomware-protection status per device. However, there is no output schema and the description does not explain what values or fields the status report will contain, leaving the response shape somewhat underspecified.

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 100%, so each parameter already has a clear meaning: organisationId is the org UUID discoverable via list_organisations, and page/itemsPerPage handle pagination. The description adds no parameter-level detail beyond the schema, so baseline 3 is appropriate.

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: 'List ransomware-protection status for every device in the organisation.' This clearly communicates what the tool does and scopes it to all devices. It does not explicitly differentiate itself from sibling report tools, but no sibling has the same ransomware focus.

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 gives no guidance on when to use this tool versus alternatives such as roboshadow_get_antivirus_report_by_device or roboshadow_get_firewall_report. There is no mention of exclusions, prerequisites, or scenarios where another report would be more appropriate.

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

roboshadow_get_remediation_attempt_cvesB

List the CVEs addressed by one remediation attempt.

ParametersJSON Schema
NameRequiredDescriptionDefault
attemptIdYesHashed remediation attempt identifier.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

B3.2/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 says 'List' which implies a read operation, but it doesn't disclose whether the attemptId is required to be from a specific remediation report, whether the list is paginated, or what happens if the attemptId is invalid. For a read tool with no annotations, this is a minimal disclosure.

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 a single concise sentence that front-loads the action and resource. It earns its place, though it could add a bit more context without becoming verbose.

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 simple list tool with two well-documented parameters and no output schema, the description is mostly adequate. However, with no annotations and no output schema, it would benefit from stating whether the result is a list of CVE IDs or full details, and whether any filtering or pagination applies. The lack of output schema means the description should clarify return value shape, which it doesn't.

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 100%, so the schema already documents both parameters. The description adds no extra meaning beyond the schema, but the schema itself is clear: attemptId is a hashed identifier and organisationId is a UUID discoverable via a sibling tool. Baseline 3 is appropriate.

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 ('List') and resource ('CVEs addressed by one remediation attempt'), which clearly distinguishes it from sibling tools like roboshadow_get_cve_vulnerabilities or roboshadow_get_remediation_report. It doesn't explicitly name a sibling, but the resource and scope are clear enough.

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 usage: call it when you need the CVEs tied to a specific remediation attempt. It doesn't explicitly state when not to use it or name alternatives, but the context of remediation attempt is clear. The organisationId parameter description references roboshadow_list_organisations for discovery, which provides some usage guidance.

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

roboshadow_get_remediation_reportB

List detailed vulnerability-remediation attempts across the organisation: action taken, category, target device, and success/failure outcome.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoFilter results to the last N days.
pageNoPage number for pagination (1-indexed). Default 1.
searchNoSearch term for filtering results.
itemsPerPageNoNumber of items per page (1-100). Default 10.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations supplied, the description carries the burden of behavioral disclosure. It does convey that this is a listing operation and previews returned fields, but it does not mention pagination behavior, response shape, or whether this is read-only beyond the word 'list'.

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?

A single sentence with no filler; the main resource, scope, and key output fields are front-loaded. Every part 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 schema covers all parameters and required ids, and the description previews the output fields. However, without an output schema and with no mention of how this relates to the sibling remediation CVEs tool, an agent may be unsure whether this returns the report itself or a pageable attempt list and how to drill into attempt-level CVEs.

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 coverage is 100%, so the baseline is 3. The description adds context about the organisation-wide scope and return fields, but it does not add meaningfully to any individual parameter beyond what the schema already explains.

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 names a specific resource (vulnerability-remediation attempts) and verb (list), and states the result includes action taken, category, target device, and success/failure. It is clear on its own, but it does not explicitly distinguish itself from the closely named sibling `roboshadow_get_remediation_attempt_cves`.

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 given for when to choose this report over related remediation/CVE sibling tools. The phrase 'across the organisation' implies scope, but there are no explicit exclusions or alternative tool routing.

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

roboshadow_get_scan_ips_overviewA

Get a per-target breakdown of one external vulnerability scan: CVE counts by severity, open-port counts, and component scan statuses for each scanned IP.

ParametersJSON Schema
NameRequiredDescriptionDefault
scanIdYesUnique identifier for the vulnerability scan.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A3.8/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 burden. It clearly discloses the operation is a read (get) and describes the output shape (per-IP breakdown with CVE counts, port counts, component statuses). However, it does not disclose pagination, filtering, or whether the scan must be external-only, which is implied by 'external vulnerability scan' but not enforced or explained.

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?

A single, well-structured sentence that front-loads the resource and scope, then lists the exact data elements returned. No wasted words.

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 read-only tool with two fully documented parameters and no output schema, the description is nearly complete. It clearly states what the response contains. The only minor gap is not explicitly stating when to use this versus the scan summary or vulnerabilities summary siblings, but the per-IP breakdown wording makes the distinction reasonably clear.

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 100%, so the schema already documents both parameters. The description adds the context that scanId refers to an external vulnerability scan and that organisationId is a UUID, but it does not add meaning beyond the schema's own descriptions. Baseline 3 is appropriate.

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 ('Get'), a specific resource ('per-target breakdown of one external vulnerability scan'), and the exact contents (CVE counts by severity, open-port counts, component scan statuses per IP). This clearly distinguishes it from sibling tools like roboshadow_get_scan_summary or roboshadow_get_vulnerabilities_summary.

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 usage context: it is for a single external vulnerability scan and returns per-IP detail. However, it does not explicitly state when to choose this over alternatives like roboshadow_get_scan_summary or roboshadow_get_vulnerabilities_summary, nor does it mention any exclusions or prerequisites beyond the required parameters.

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

roboshadow_get_scan_summaryA

Get a detailed summary of one external vulnerability scan: scan details, IP vulnerability totals, and web vulnerability findings.

ParametersJSON Schema
NameRequiredDescriptionDefault
scanIdYesUnique identifier for the vulnerability scan.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A3.8/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 disclosure burden. It communicates the output content ('scan details, IP vulnerability totals, and web vulnerability findings') and 'Get' implies a read operation, but it does not describe error behavior, freshness, or other side-effect information.

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 one sentence that front-loads the verb and resource, then uses a concise colon-separated list of output categories. There is no filler, repetition of the tool name, or unnecessary detail.

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 two-required-param read operation with no output schema, and the description plus schema provide enough information to identify and invoke the tool. It names the major return sections, although it does not enumerate individual fields or provide alternative usage guidance.

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 100%: both scanId and organisationId are already described in the input schema. The description adds no parameter-specific meaning, so it earns the baseline score of 3.

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 ('Get') and precise resource ('detailed summary of one external vulnerability scan'). It further lists the three output categories, which distinguishes it from siblings like roboshadow_get_scan_ips_overview.

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 usage: if you need a detailed summary of a specific external scan, call this tool. However, it does not explicitly state when to use this tool over alternatives like roboshadow_get_scan_ips_overview, so the agent must infer the routing.

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

roboshadow_get_updates_report_by_deviceA

List a paginated missing-updates report grouped by device across the organisation, filterable by update category, workstation/server, and reboot-required status.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoFilter results to the last N days.
pageNoPage number for pagination (1-indexed). Default 1.
otherNoFilter to other updates.
driverNoFilter to driver updates.
rollupNoFilter to rollup updates.
searchNoSearch term for filtering results.
sortByNoField name to sort by.
serversNoFilter to server devices.
criticalNoFilter to critical updates.
securityNoFilter to security updates.
sortDescNoSort in descending order. Default false.
itemsPerPageNoNumber of items per page (1-100). Default 10.
workstationsNoFilter to workstation devices.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.
isRebootRequiredNoFilter to devices requiring reboot.

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It mentions pagination and filtering but does not explicitly state that this is a read-only operation, nor does it disclose any side effects, authorization requirements, rate limits, or error behavior. The 'List' verb implies read-only, but it is not explicit.

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?

A single, well-structured sentence that front-loads the core action and scope. No filler or redundant information; every clause adds value.

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 has 15 parameters, but the description only summarizes the filters and mentions pagination. It does not describe the return format or error behavior (no output schema), nor does it explain the interplay between pagination parameters or the required organisationId beyond what the schema already provides. For a tool with this complexity, a bit more context on expected output and usage pattern would help, but the schema covers the parameters adequately.

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?

The schema description coverage is 100%, so each parameter is already documented. The description adds a high-level summary of the filter categories (update category, workstation/server, reboot-required), but does not provide additional semantic detail beyond what the schema already offers. Baseline 3 is appropriate.

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 precise resource ('missing-updates report grouped by device'), scope ('across the organisation'), and key filters (update category, workstation/server, reboot-required). It clearly differentiates from sibling tools like roboshadow_get_updates_summary (summary) and roboshadow_get_device_updates (per device) by specifying the grouping and pagination.

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 usage for organization-wide missing-updates reports grouped by device, but does not explicitly state when to choose this tool over alternatives such as roboshadow_get_device_updates or roboshadow_get_updates_summary. No exclusion criteria or alternative routing is provided.

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

roboshadow_get_updates_summaryA

Get organisation-wide update summary statistics (devices needing critical/security/driver/rollup updates, reboot-pending count) plus the top devices requiring attention.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoFilter results to the last N days.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A3.8/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 does reveal the return scope ('organisation-wide', 'top devices requiring attention') and implies a read-only operation through 'Get'. It does not mention authorization, rate limits, or output limitations beyond 'top', but the disclosed scope and content are reasonable for a simple read tool.

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 sentence with the essential action and resource front-loaded. The parenthetical adds valuable specific detail, and the trailing clause about top devices earns its place. There is no redundancy or filler.

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?

Given a simple two-parameter tool with no output schema, the description conveys the key facts: it returns summary counts for several update categories and a list of top devices. It could be slightly more explicit about the exact shape of the return value, but it is sufficient for an agent to understand what to expect.

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 100%, with both 'organisationId' and 'days' already documented in the input schema. The description adds no extra parameter meaning beyond the schema, so the baseline score of 3 is appropriate.

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 ('Get') and resource ('organisation-wide update summary statistics'), then enumerates the exact statistic types (critical/security/driver/rollup updates, reboot-pending count, top devices). This clearly distinguishes it from per-device siblings like roboshadow_get_updates_report_by_device or roboshadow_get_device_updates.

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 'organisation-wide' implies this is for a high-level overview rather than per-device detail, but the description gives no explicit 'when to use vs alternatives' statement or pointer to sibling tools. It is clear context but without exclusions or alternative routing, so it earns the 'implied usage' middle score.

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

roboshadow_get_vulnerabilities_summaryA

Get an organisation-wide vulnerability summary: devices by severity, top-5 most critical apps/CVEs/devices, and the single most critical server/workstation.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoFilter results to the last N days.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A3.8/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. 'Get' implies a read-only operation and the description clarifies the aggregate scope, but it does not disclose whether the result is cached, how freshness works, what 'critical' means, or any permission or rate-limit considerations.

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 focused sentence that front-loads the main purpose and then lists the concrete output components. There is no redundancy or filler, and the structure makes it easy for an agent to parse what the tool returns.

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?

The tool is a read-only summary with only two parameters, one required, and no output schema. The description names the key result areas, which is sufficient for an agent to decide whether to call it and roughly what to expect. Minor gaps remain around severity meaning and result shape, but the tool's low complexity keeps these from being major.

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 100%, so the schema already documents both parameters. The description adds the organisational scope but does not enrich the semantics of `days` or `organisationId` beyond what the schema states, such as validation or default behavior.

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 ('Get') and resource ('organisation-wide vulnerability summary'), and enumerates the exact contents: devices by severity, top-5 critical apps/CVEs/devices, and the most critical server/workstation. This clearly distinguishes it from the per-device sibling roboshadow_get_device_vulnerability_summary and from other report tools.

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 states that this is an organisation-wide summary, which gives some context for when to use it. However, it does not explicitly say when not to use it or name alternatives such as roboshadow_get_vulnerable_applications, roboshadow_get_cve_vulnerabilities, or roboshadow_get_device_vulnerability_summary.

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

roboshadow_get_vulnerable_applicationsB

List applications with known vulnerabilities across the organisation, with per-severity CVE counts and available upgrades.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoFilter results to the last N days.
pageNoPage number for pagination (1-indexed). Default 1.
itemsPerPageNoNumber of items per page (1-100). Default 10.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

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 carries the full burden of behavioral disclosure. It states the tool lists applications and provides CVE counts and upgrade info, but does not mention pagination behavior (though schema covers it), whether results are read-only, or any side effects. It is a list operation so likely safe, but this is not explicitly stated.

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 that front-loads the primary purpose and key output details (per-severity CVE counts, upgrades). There is no wasted wording, and the structure is clear and efficient.

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 list tool with a fully documented schema and no output schema, the description covers the essential purpose and outputs. It does not describe return format or pagination defaults, but the schema already covers pagination and the description hints at the output structure. It is sufficiently complete for an agent to invoke correctly.

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 100%, so all four parameters (days, page, itemsPerPage, organisationId) are already documented. The description adds no additional meaning about parameter usage, format, or relationships. Per the baseline rule, with high coverage a score of 3 is appropriate.

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 lists applications with known vulnerabilities, per-severity CVE counts, and available upgrades. The verb 'List' and resource 'applications' are specific, distinguishing it from sibling tools like roboshadow_get_vulnerable_devices or roboshadow_get_cve_vulnerabilities, though it doesn't explicitly call out those 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 alternatives. It does not mention that this is for applications rather than devices, or that a summary is available via roboshadow_get_vulnerabilities_summary. The description implies a straightforward listing use case but offers no explicit context or exclusions.

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

roboshadow_get_vulnerable_devicesA

List devices with known vulnerabilities, each with per-severity CVE counts and an overall CVSS score.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoFilter results to the last N days.
pageNoPage number for pagination (1-indexed). Default 1.
itemsPerPageNoNumber of items per page (1-100). Default 10.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description must carry the behavioral burden. It clearly signals a read-only listing operation and discloses what each returned item contains (per-severity CVE counts and an overall CVSS score). It does not discuss pagination or ordering, but the input schema already documents pagination parameters and no side-effect profile is needed for a list operation.

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?

One tightly written sentence with no filler. The verb and object are front-loaded, followed by the meaningful output details. Every word adds information.

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 simple list tool it conveys the core purpose and output shape, but there is no output schema and no annotations, so more context would help—particularly how this endpoint relates to the many vulnerability siblings and what the response envelope looks like. Still, an agent could invoke it correctly using the documented organisationId.

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 100%, so the parameters are already well documented. The description adds no parameter-level meaning beyond the schema; the baseline of 3 applies.

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 begins with a specific action and resource: 'List devices with known vulnerabilities'. It also names the returned data (per-severity CVE counts, overall CVSS score), which separates it from siblings focused on applications, CVEs, or summaries.

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 intended use is implied by the action—use it when you need a device-level vulnerability list with CVSS/CVE counts. However, it gives no explicit guidance about when to prefer this tool over overlapping siblings like roboshadow_get_device_vulnerability_summary or roboshadow_get_vulnerabilities_summary, so the agent is left to infer selection.

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

roboshadow_get_windows_defender_reportB

List Windows Defender configuration status (real-time protection, tamper protection, service state) for every device.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (1-indexed). Default 1.
itemsPerPageNoNumber of items per page (1-100). Default 10.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

B3.4/5.0
Behavior3/5

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

There are no annotations, so the description carries the behavioral disclosure burden. 'List' implies a read-only operation and 'for every device' signals broad scope, but the description does not explicitly state safety properties, pagination behavior, or potential response size. This is adequate but not rich.

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?

A single front-loaded sentence with no filler. The verb, resource, and key fields are all included, and the parenthetical detail adds value without bloating the description.

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 list tool with three fully documented parameters, the description gives enough detail about what is returned and at what scope. It lacks usage differentiation and explicit safety wording, but the core information needed to invoke the tool correctly is present.

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 100%, so the parameters are already well documented. The description adds no additional parameter-level meaning beyond what the schema provides, which is sufficient for a baseline score.

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 ('List') and a clear resource ('Windows Defender configuration status'), and further specifies the fields returned (real-time protection, tamper protection, service state). It does not explicitly distinguish this from sibling report tools, but the named fields make the purpose clear.

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 on when to use this tool versus sibling tools like roboshadow_get_antivirus_report_by_device or roboshadow_get_firewall_report. The description states what it does but not the conditions or context that should lead an agent to select it.

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

roboshadow_list_application_groupsA

List applications grouped across the organisation (by application identity, not per-install), each with install/device counts, distinct version counts, and a best-matching WinGet package if one exists.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (1-indexed). Default 1.
searchNoSearch term for filtering results.
sortByNoField name to sort by.
sortDescNoSort in descending order. Default false.
itemsPerPageNoNumber of items per page (1-100). Default 10.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden. It discloses meaningful behavior beyond a generic list: grouping by application identity rather than install, aggregated install/device counts, distinct version counts, and conditional best-matching WinGet package resolution. It does not discuss pagination or error behavior, but those are largely inferable for a read-only list operation.

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 dense, front-loaded sentence with no filler. It places the resource and scope first, then packs the key output details and the 'not per-install' distinction into the same sentence without redundancy.

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 read-only list tool with standard pagination parameters and no output schema, the description explains what each returned item contains and how items are grouped. It falls slightly short of specifying the response envelope or pagination metadata, but the schema already documents parameter behavior and the core purpose is fully covered.

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 100%, and each parameter already has a clear description, including how to discover organisationId. The tool description adds no parameter-specific semantics, so the baseline score of 3 is appropriate.

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 and resource: 'List applications grouped across the organisation', and immediately clarifies the aggregation scope with 'by application identity, not per-install'. It also names the distinguishing output fields (install/device counts, version counts, WinGet package), so an agent can tell it apart from per-device and per-group siblings.

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?

'Across the organisation' and 'not per-install' give a clear context for when to use this tool: an org-wide, application-identity-level listing. It implies that per-install detail is out of scope, but it does not explicitly name an alternative like roboshadow_get_device_applications or roboshadow_get_application_group for those cases.

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

roboshadow_list_devicesA

List every device in a RoboShadow organisation, with hardware/OS identity, network address, health scores, and pending-update/CVE counts. PII-bearing (IP/MAC address, logged-on user, serial number) - admin-gated.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (1-indexed). Default 1.
searchNoSearch term for filtering results.
sortByNoField name to sort by.
sortDescNoSort in descending order. Default false.
itemsPerPageNoNumber of items per page (1-100). Default 10.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A4.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 full burden, and it does so well. It discloses that the data is PII-bearing (IP/MAC, logged-on user, serial number) and admin-gated – critical behavioral traits for access control and data handling. It does not describe the response envelope or pagination behavior, but those are partially represented in the schema.

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, each earning its place: the first states the action and output fields, the second states the data-sensitivity and access-control caveat. Information is front-loaded and there is no fluff.

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?

The description covers the tool's functional output and the critical access caveat, and the schema fully documents all parameters. Given there is no output schema, it could have described the response format (e.g., paginated list envelope), but the listed fields and implicit list structure give an agent enough context to call the tool correctly.

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?

The input schema has 100% description coverage, so the baseline is 3. The description does not add meaning beyond the schema; 'every device in a RoboShadow organisation' loosely reinforces the required organisationId but provides no extra parameter-level 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 opens with a specific verb and resource: 'List every device in a RoboShadow organisation' – the scope is unambiguous. It then enumerates the output fields (hardware/OS identity, network address, health scores, pending-update/CVE counts), which clearly distinguishes it from singular get_device and other device-focused siblings.

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 provides clear context: this is the tool to use when you need the full device inventory of an organisation, contrasted implicitly by 'every device' against singular alternatives. It does not explicitly name an alternative or state when not to use it, but the context is clear enough that an agent can select it appropriately.

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

roboshadow_list_organisationsA

List every RoboShadow organisation visible to this connector's refresh token, with each organisation's ID, name, and the caller's permission level. Start here to discover the organisationId every other tool needs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/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 full burden of behavioral disclosure. It truthfully reveals that results are scoped by the refresh token's visibility and includes the caller's permission level, which explains access limits. It does not mention pagination or failure behavior, but for a zero-parameter list operation this is a minor gap.

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 sentences with no filler. It front-loads the core action and resource, then immediately adds the most decision-relevant guidance ('Start here') and the key output fields. Every sentence earns its place.

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 simple, parameter-free discovery tool, the description is complete: it states what is returned, how access is scoped, and why the agent should call it first. There is no output schema, so the explicit mention of ID, name, and permission level is especially useful.

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, and the schema is an empty object with 100% described coverage. The description correctly implies that no arguments are needed and focuses on output. No parameter documentation burden exists, so the score is at the baseline for parameter-free tools.

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 opens with a specific verb ('List') and a clear resource ('RoboShadow organisation'), and specifies scope ('visible to this connector's refresh token') plus the exact fields returned (ID, name, permission level). This differentiates it clearly from the many sibling get/list tools that operate on a single organisation or other resources.

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

Usage Guidelines5/5

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

The description explicitly says 'Start here to discover the organisationId every other tool needs,' which tells the agent exactly when to use this tool and why it is the correct entry point among the sibling tools. It effectively establishes a prerequisite relationship for the rest of the API.

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

roboshadow_list_organisation_usersA

List the users belonging to a RoboShadow organisation, with each user's display name, email, and permission level. PII-bearing - admin-gated.

ParametersJSON Schema
NameRequiredDescriptionDefault
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A3.8/5.0
Behavior4/5

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

No annotations are provided, so the description carries the behavioral burden. It clearly signals that this is a read-only list operation, explicitly flags the data as PII-bearing, and discloses the admin-gating requirement. This is meaningful behavioral context beyond the schema.

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 tight sentences with no filler. The primary operation and returned fields are front-loaded, and the sensitive/access warning is compactly appended without bloating the description.

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 single-parameter list operation, the description provides the key invocation context: the resource type, the returned fields, and the admin/PII sensitivity. It lacks explicit pagination or error behavior, but these are minor for this operation and the schema already covers the required parameter.

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 100%: the single parameter is fully described with its type, purpose, and how to discover it via roboshadow_list_organisations. The description adds no parameter-level detail, which is acceptable given the schema already covers the parameter adequately.

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?

States a specific verb ('List'), a clear resource ('users belonging to a RoboShadow organisation'), and the exact fields returned. This distinguishes it from sibling tools like roboshadow_get_device_users, which are device-scoped rather than organisation-scoped.

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 on when to choose this tool over alternatives. The 'admin-gated' note signals an access requirement, but there is no mention of how this differs from device-user tools or when another sibling would be more appropriate.

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

roboshadow_list_scan_statusA

List the status of every external vulnerability scan (VScanner) for an organisation, with per-IP and per-domain scan status. Filter by isScheduled or status.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (1-indexed). Default 1.
sortByNoField name to sort by.
statusNoFilter scans by overall status.
sortDescNoSort in descending order. Default false.
isScheduledNoFilter to scans that were (or were not) started by a schedule.
itemsPerPageNoNumber of items per page (1-100). Default 10.
organisationIdYesThe RoboShadow organisation's UUID. Discover it with roboshadow_list_organisations.

TDQS

A4.2/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 burden. It conveys a read-only listing operation implicitly, and notes per-IP and per-domain detail. However, it does not disclose pagination behavior, default sorting, or any side effects beyond what the schema already covers. It adds some context but not rich behavioral disclosure.

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?

A single sentence that front-loads the core purpose and filtering options without any fluff. Every word earns its place.

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 listing tool with a required organisationId and pagination parameters fully described in the schema, the description sufficiently conveys the output structure (per-IP and per-domain status). No output schema exists, but the description gives enough hint about the return content. It lacks explicit mention of default sort order, but that is covered by the schema's parameter descriptions.

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?

Schema coverage is 100%, so baseline is 3. The description adds value by highlighting that isScheduled and status are the primary filters, which helps an agent understand which parameters are most relevant for narrowing results, beyond the schema's individual parameter descriptions.

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?

States a specific verb (list) and resource (external vulnerability scan status) with clear scope (per-IP, per-domain for an organisation). It distinguishes itself from sibling tools like get_scan_summary by focusing on the full status list rather than a summary.

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?

Mentions filtering by isScheduled or status, giving agents the key usage options. However, it does not explicitly compare with sibling tools or state when to prefer this over alternatives like get_scan_summary or get_scan_ips_overview, though the purpose is fairly self-evident.

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. 40 tool updatesv0.1.0
    • First observedroboshadow_get_antivirus_report_by_device
    • First observedroboshadow_get_antivirus_summary
    • First observedroboshadow_get_antivirus_threats
    • First observedroboshadow_get_application_group
    • First observedroboshadow_get_cpe_vulnerabilities
    • First observedroboshadow_get_cve_fixes
    • First observedroboshadow_get_cve_vulnerabilities
    • First observedroboshadow_get_device
    • First observedroboshadow_get_device_antivirus
    • First observedroboshadow_get_device_applications
    • First observedroboshadow_get_device_disks
    • First observedroboshadow_get_device_services
    • First observedroboshadow_get_device_updates
    • First observedroboshadow_get_device_user_profiles
    • First observedroboshadow_get_device_users
    • First observedroboshadow_get_device_vulnerability_summary
    • First observedroboshadow_get_disk_report
    • First observedroboshadow_get_disk_report_by_device
    • First observedroboshadow_get_disk_shares
    • First observedroboshadow_get_disk_summary
    • First observedroboshadow_get_firewall_report
    • First observedroboshadow_get_hardware_report_by_device
    • First observedroboshadow_get_hardware_summary
    • First observedroboshadow_get_mfa_report
    • First observedroboshadow_get_ransomware_report
    • First observedroboshadow_get_remediation_attempt_cves
    • First observedroboshadow_get_remediation_report
    • First observedroboshadow_get_scan_ips_overview
    • First observedroboshadow_get_scan_summary
    • First observedroboshadow_get_updates_report_by_device
    • First observedroboshadow_get_updates_summary
    • First observedroboshadow_get_vulnerabilities_summary
    • First observedroboshadow_get_vulnerable_applications
    • First observedroboshadow_get_vulnerable_devices
    • First observedroboshadow_get_windows_defender_report
    • First observedroboshadow_list_application_groups
    • First observedroboshadow_list_devices
    • First observedroboshadow_list_organisation_users
    • First observedroboshadow_list_organisations
    • First observedroboshadow_list_scan_status

TDQS

A3.6/5.0

Scored across 40 tools

Disambiguation4/5

Most tools target a distinct resource or aggregation level, and the descriptions are precise about scope. However, the many report/summary/by-device variants for antivirus, disk, updates, and vulnerabilities create moderate risk of an agent selecting the wrong one.

Naming Consistency5/5

Every tool follows the same roboshadow_verb_noun pattern with lowercase snake_case, using get for detail and list for collection-style operations. The naming is highly predictable across all 40 tools.

Tool Count2/5

40 tools is well above the 25+ threshold and feels heavy for the domain. Many tools are report variants that could be consolidated into parameterised endpoints, though each does map to a distinct data view.

Completeness4/5

The tool surface provides broad read-only coverage of organisations, devices, vulnerabilities, updates, disks, and remediation history. It lacks write/action capabilities such as initiating scans or applying fixes, but that appears consistent with a read-only security reporting server.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Provides AI assistants with read-only access to Secureframe's compliance data, enabling querying of security controls, tests, users, vendors, and more across frameworks like SOC 2 and ISO 27001.
    8
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to query and manage OpenCTI threat intelligence data, including indicators, observables, reports, malware, and more, with read-only and optional write operations.
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    Provides read-only visibility into CyberQP privileged access management data, including customer and account metadata, tenant event logs, and Just-In-Time account status and policies, for AI assistants.
    10
    -