Skip to main content
Glama
rijul170

Sophos Central MCP Server

by rijul170

Sophos Central MCP Server

Node.js License MCP Protocol Tools GitHub Stars

Build & Test npm MCP Registry

For MSP/MSSP teams: Manage endpoint security, email threats, and firewall policy across all your Sophos tenants through natural language. Ask Claude to investigate an alert, isolate a host, run Live Discover queries, and correlate with XDR data — without leaving your AI workflow.

Overview

A Model Context Protocol (MCP) server for the Sophos Central API, enabling AI-powered security operations through Claude and other MCP-compatible clients. Designed for MSP/MSSP environments with Partner Super Admin credentials, it provides multi-tenant management across all customer tenants from a single server instance — covering endpoint protection, threat detection, Live Discover forensics, XDR hunting, email security, firewall management, and more.

Related MCP server: SOAR MCP Server

Features

  • 334 tools across 33 API domains — comprehensive Sophos Central API coverage

  • Multi-tenant MSSP support — enumerate and target any customer tenant via Partner Super Admin credentials

  • Endpoint isolation and investigation — isolate endpoints, check tamper protection, trigger scans

  • Alert triage — list, filter, acknowledge, and action Sophos alerts across tenants

  • Live Discover SQL queries — run real-time forensic SQL queries directly on managed endpoints

  • XDR Data Lake hunting — historical threat hunting with SQL against the Sophos XDR data lake

  • Threat detections — query, group, and count behavioral detections

  • Case management — create and manage investigation cases end-to-end

  • Email security — quarantine management, mailbox listing, post-delivery message clawback

  • Firewall management — CRUD operations, group management, firmware upgrades

  • DNS protection — location policies, custom domain allow/block lists

  • SOC playbooks — built-in sophos_playbook_* tools for guided IR and threat hunting workflows

  • Three transport modes — stdio (Claude Desktop), SSE, and Streamable HTTP (Claude Code)

  • Automatic OAuth2 token management — token refresh with no manual intervention

  • Regional routing — requests automatically routed to the correct data region (US, EU, CA, AU, JP, BR)

Prerequisites

  • Node.js v18 or later (native fetch support required)

  • npm v8 or later

  • Sophos Central Partner Super Admin API credentials — see Configuration for how to create these

Installation

git clone https://github.com/rijul170/sophos-central-mcp.git
cd sophos-central-mcp
npm install
npm run build

Configuration

1. Create a .env file

cp .env.example .env

Edit .env with your credentials:

# Required
SOPHOS_CLIENT_ID=your-client-id-here
SOPHOS_CLIENT_SECRET=your-client-secret-here

# Optional — transport mode: stdio | sse | streamable-http (default: stdio)
MCP_TRANSPORT=stdio

# Optional — host for HTTP transports (default: 127.0.0.1)
MCP_HOST=127.0.0.1

# Optional — port for HTTP transports (default: 3001)
MCP_PORT=3001

2. Create API Credentials in Sophos Central

  1. Log in to Sophos Central Partner Dashboard

  2. Navigate to Settings & PoliciesAPI Credentials Management

  3. Click Add Credential

  4. Set the role to Service Principal Super Admin

  5. Copy the Client ID and Client Secret — the secret is displayed only once

Variable

Required

Description

SOPHOS_CLIENT_ID

Yes

Partner Super Admin Client ID from Sophos Central

SOPHOS_CLIENT_SECRET

Yes

Corresponding client secret

MCP_TRANSPORT

No

Transport mode: stdio, sse, or streamable-http (default: stdio)

MCP_HOST

No

Bind host for HTTP transports (default: 127.0.0.1)

MCP_PORT

No

Port for HTTP transports (default: 3001)

SOPHOS_MCP_READONLY

No

Set to true to register only read tools — write and destructive tools are never exposed to the AI client

SOPHOS_MCP_ALLOW_DESTRUCTIVE

No

Destructive tools (deletes, endpoint isolation, Live Discover execution, clawback, ...) are suppressed by default. Set to true to arm all of them, or a comma-separated list of tool names to arm selectively

Claude Code Integration (HTTP Mode)

HTTP mode is recommended for Claude Code — it supports concurrent sessions and does not require restarting the server between conversations.

Start the server:

MCP_TRANSPORT=streamable-http MCP_PORT=3001 node build/index.js

Or set MCP_TRANSPORT=streamable-http in your .env and run:

node build/index.js

Add to your Claude Code MCP configuration (.claude/settings.json or global settings):

{
  "mcpServers": {
    "sophos-mcp": {
      "type": "http",
      "url": "http://localhost:3001/mcp"
    }
  }
}

A /health endpoint is available at http://localhost:3001/health for liveness checks.

Claude Desktop Integration (stdio Mode)

stdio mode is the standard transport for Claude Desktop. The server process is managed by Claude Desktop directly.

Add to your Claude Desktop MCP configuration (claude_desktop_config.json):

{
  "mcpServers": {
    "sophos-mcp": {
      "command": "node",
      "args": ["/path/to/sophos-central-mcp/build/index.js"],
      "env": {
        "SOPHOS_CLIENT_ID": "your-client-id",
        "SOPHOS_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

Replace /path/to/sophos-central-mcp with the absolute path to your cloned repository.

SSE Mode

SSE (Server-Sent Events) mode is available for legacy MCP clients that do not support Streamable HTTP.

MCP_TRANSPORT=sse MCP_PORT=3001 node build/index.js

The SSE endpoint is available at http://localhost:3001/sse.

Tool Domains

Domain

Tools

Description

Alerts

5

List, get, acknowledge, and action Sophos alerts

Endpoint

26

Isolation, tamper protection, scans, migrations, bulk operations

Detections

7

Query-based behavioral detection search, grouping, and counts

Live Discover

11

Real-time forensic SQL queries on managed endpoints

XDR

10

Historical SQL hunting against the Sophos XDR Data Lake

Cases

9

Investigation case create, read, update, close, and evidence management

Partner

23

Tenant enumeration, admins, roles, billing, permission sets

Organization

2

Tenant listing for organization-type accounts

Policy

7

Full CRUD for all Sophos policy types

Group

8

Endpoint group CRUD and member management

SIEM

2

Events and alerts export for SIEM integration

Firewall

20

Firewall CRUD, group management, firmware upgrades

DNS Protection

15

Locations, policies, custom domain allow/block lists

Email

31

Quarantine management, mailboxes, post-delivery message clawback

Directory

15

User and user group full CRUD

Settings

16

Tamper protection, exclusions, web control, endpoint tags

Allowed/Blocked

12

SHA256 hash, certificate, and path allow/block lists

Exploit Mitigation

8

Application-level exploit protection exclusions

IPS Exclusion

10

Network IPS and isolation exclusion management

Tenant Admin

14

Tenant admin CRUD, role assignments, custom roles

Account Health

4

Health check reports, snooze, and historical health scores

Account Management

4

Account-level settings and license management

Audit Events

2

Audit log retrieval for compliance and governance

Business Automation

3

Automation rules and business logic configuration

Licensing

2

License entitlement and usage queries

Mobile

38

Mobile device management — enrollment, policies, device actions

Cloud Security

6

Cloud workload protection posture and findings

Software

9

Installer downloads, software inventory, packages

Switch

3

Network switch management

WiFi

3

Wireless network management

User Activity

2

User activity reporting and session data

Playbooks

5

SOC incident response and threat hunting workflow guides

Auth

2

OAuth2 authentication and WhoAmI identity discovery

MSSP Multi-Tenant Support

The server is built around Sophos Partner Super Admin credentials, which have visibility across all managed customer tenants.

How it works:

  1. On startup, the server authenticates to Sophos Central using your Partner credentials and discovers your organization type (partner or organization).

  2. Use sophos_list_tenants (or sophos_list_org_tenants for organization accounts) to enumerate all managed tenants and their IDs.

  3. Pass the tenantId parameter to any tenant-scoped tool to target a specific customer environment.

  4. All API calls are automatically routed to the correct regional endpoint (US, EU, CA, AU, JP, BR) based on the tenant's data residency.

Example workflow:

1. sophos_list_tenants          → get all tenant IDs and names
2. sophos_list_alerts           → pass tenantId for a specific customer
3. sophos_isolate_endpoint      → isolate an endpoint in that tenant
4. sophos_live_discover_run_query → run forensic SQL on the isolated host

SOC Playbooks

The server ships with five built-in playbook tools that provide structured, step-by-step guidance for common SOC workflows. These are designed to be invoked at the start of an investigation to orient the response.

Tool

Purpose

sophos_playbook_incident_response

End-to-end IR playbook: triage → scope → contain → remediate

sophos_playbook_threat_hunt

Hypothesis-driven and IOC-based threat hunting workflows

sophos_mitre_attack_guide

MITRE ATT&CK technique-to-Sophos-tool mapping

sophos_soc_tool_guide

Reference guide for all 334 tools organized by SOC use case

sophos_playbook_edr_investigation

EDR-specific investigation playbook for endpoint detections

SOC Quick Start

Once the server is connected to Claude, you can use natural language to drive security operations. Example prompts:

Alert triage:

"List all critical and high severity open alerts for tenant <tenant-id> from the last 24 hours, grouped by type."

Endpoint investigation:

"Isolate endpoint <hostname> in tenant <tenant-id>, then run a Live Discover SQL query to list all running processes and active network connections."

XDR threat hunting:

"Run an XDR Data Lake query against tenant <tenant-id> to find any PowerShell executions with encoded commands in the last 7 days."

MSSP overview:

"Enumerate all my managed tenants, then show me any tenants with open critical alerts."

Email security:

"Show me all quarantined messages for tenant <tenant-id> in the last 48 hours and release any flagged as false positives."

Development

# Run with hot-reload (no build step required)
npm run dev

# Build TypeScript to JavaScript
npm run build

# Run the built server
npm start

# Inspect tools interactively with MCP Inspector
npx @modelcontextprotocol/inspector node build/index.js

Project Structure

src/
├── index.ts                          # Entry point — transport setup, registers all 33 modules
├── config.ts                         # Environment variable validation
├── auth/
│   └── auth-manager.ts               # OAuth2 token management with auto-refresh
├── client/
│   ├── sophos-client.ts              # HTTP client (retry, rate limiting, backoff)
│   └── tenant-router.ts             # Tenant → regional API host mapping
├── tools/                            # 33 tool files, 334 tools total
│   ├── auth-tools.ts                 # 2 tools
│   ├── partner-tools.ts              # 23 tools
│   ├── organization-tools.ts         # 2 tools
│   ├── endpoint-tools.ts             # 26 tools
│   ├── group-tools.ts                # 8 tools
│   ├── policy-tools.ts               # 7 tools
│   ├── alert-tools.ts                # 5 tools
│   ├── detections-tools.ts           # 7 tools
│   ├── siem-tools.ts                 # 2 tools
│   ├── xdr-tools.ts                  # 10 tools
│   ├── live-discover-tools.ts        # 11 tools
│   ├── firewall-tools.ts             # 20 tools
│   ├── dns-protection-tools.ts       # 15 tools
│   ├── email-tools.ts                # 31 tools
│   ├── directory-tools.ts            # 15 tools
│   ├── settings-tools.ts             # 16 tools
│   ├── allowed-blocked-tools.ts      # 12 tools
│   ├── exploit-mitigation-tools.ts   # 8 tools
│   ├── ips-exclusion-tools.ts        # 10 tools
│   ├── tenant-admin-tools.ts         # 14 tools
│   ├── account-health-tools.ts       # 4 tools
│   ├── cases-tools.ts                # 9 tools
│   ├── software-tools.ts             # 9 tools
│   ├── audit-events-tools.ts         # 2 tools
│   ├── business-automation-tools.ts  # 3 tools
│   ├── licensing-tools.ts            # 2 tools
│   ├── mobile-tools.ts               # 38 tools
│   ├── switch-tools.ts               # 3 tools
│   ├── wifi-tools.ts                 # 3 tools
│   ├── cloud-security-tools.ts       # 6 tools
│   ├── user-activity-tools.ts        # 2 tools
│   ├── account-management-tools.ts   # 4 tools
│   └── playbook-tools.ts             # 5 tools
└── types/
    └── sophos-types.ts               # TypeScript interfaces for all Sophos API types

Security Considerations

  • Read-only mode — set SOPHOS_MCP_READONLY=true to register only read tools at startup. Write and destructive tools are never exposed to the AI client, regardless of what is asked. XDR Data Lake and detections queries stay available (they are read analytics); Live Discover does not (it executes osquery on managed endpoints).

  • Destructive operation gating — even with writes enabled, destructive tools (endpoint isolation, deletes, email clawback, Live Discover execution, firmware upgrades, ...) are suppressed by default. Arm them explicitly via SOPHOS_MCP_ALLOW_DESTRUCTIVE. The recommended approach is a comma-separated list of specific tool names rather than true:

    # Enable only endpoint isolation for IR workflows
    SOPHOS_MCP_ALLOW_DESTRUCTIVE=sophos_isolate_endpoint,sophos_deisolate_endpoint
  • Tool annotations — every tool carries MCP readOnlyHint/destructiveHint annotations so compliant clients can apply their own confirmation policies.

  • Credential handling — API credentials are read from environment variables at startup and are never logged or transmitted except to the Sophos authentication endpoint. Do not commit .env files to source control — .env is listed in .gitignore.

  • Partner Super Admin scope — these credentials have read/write access across all managed tenants. Treat them with the same care as privileged service account credentials. Rotate them immediately if compromised.

  • Read-only operations where possible — where your use case only requires visibility (alert triage, threat hunting, reporting), consider creating a separate credential with a more restricted role. Partner Super Admin is required only for write operations (isolation, policy changes, user management).

  • Network binding — HTTP transports default to 127.0.0.1. Do not expose the MCP server port publicly. If you need remote access, put it behind an authenticated reverse proxy or use a VPN.

  • Audit trail — all Sophos API calls made through this server are logged in Sophos Central's audit events, attributable to the API credential used.

These three servers cover complementary layers of a security stack — network/log (AlertLogic), endpoint protection (Sophos), and EDR/threat intel (CrowdStrike). Use them together for full-stack AI-powered SOC operations.

Server

Platform

Highlights

falcon-mcp

CrowdStrike Falcon

EDR telemetry, RTR, threat intel, MSSP Flight Control, 1,296 tools

sophos-central-mcp

Sophos Central

Endpoint isolation, Live Discover SQL, XDR, email/firewall/DNS, 334 tools

alertlogic-mcp

Alert Logic MDR

Incident response, SQL log search, SOAR, vulnerability management, 473 tools

License

MIT

Available Tools

234 tools
sophos_accept_migrationA

Accept an endpoint migration job on the receiving tenant using the job token generated by the sending tenant. This completes the migration transfer.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesMigration job token issued by the sending tenant
tenant_idYesReceiving tenant ID
endpoint_idsNoComma-separated endpoint UUIDs to accept (if accepting a subset)
migration_job_idYesMigration job ID from the sending tenant

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description adds context about the token-based transfer and completion of migration. It does not contradict annotations and provides useful behavioral context beyond the structured fields.

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 extremely concise with two sentences, front-loading the action and result. No unnecessary words 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?

Given the tool has 4 parameters and no output schema, the description adequately explains the purpose and the two-tenant migration flow. It could mention the state change of the migration job or error handling, but it is sufficiently complete for an agent.

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% with clear parameter descriptions. The tool description does not add additional semantics beyond what the schema already provides (e.g., 'token' is described as 'Migration job token issued by the sending tenant'). 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 clearly states the action ('accept') and the resource ('endpoint migration job'), and it distinguishes from sibling tools like sophos_start_migration and sophos_get_migration_job by specifying the directionality (receiving tenant) and the use of a job token.

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 when to use this tool (after receiving a token from the sending tenant), but it does not explicitly state when not to use it or provide alternatives. No exclusionary or comparative guidance is given.

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

sophos_acknowledge_alertA

Acknowledge a specific alert. Convenience shortcut — equivalent to sophos_take_alert_action with action='acknowledge'.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageNoOptional message to attach to the acknowledgement
alert_idYesThe alert ID to acknowledge
tenant_idYesThe tenant ID the alert belongs to

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the description's mention of 'acknowledge' as a mutation aligns. No additional behavioral details are provided, but annotations cover the basics adequately.

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

Conciseness5/5

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

Two sentences with zero wasted words. The key information is front-loaded and the shortcut relationship is clearly stated.

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 tool with good annotations and schema, the description covers the essential purpose and relationship to siblings. However, it lacks mention of return value or side effects, which would improve completeness for a mutation action.

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 itself documents all parameters. The description does not add extra meaning beyond what the schema provides, keeping the score at 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 specific verb 'acknowledge' and resource 'alert'. It also distinguishes from sibling tools by stating it's a shortcut for sophos_take_alert_action with a fixed action parameter.

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

Usage Guidelines4/5

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

The description indicates this is a convenience shortcut, implying use when a simple acknowledge is needed. However, it does not explicitly state when not to use it or provide comprehensive alternatives beyond the equivalent general action.

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

sophos_add_endpoints_to_groupA

Add one or more endpoints to an endpoint group. The endpoints will inherit any policies assigned to the group.

ParametersJSON Schema
NameRequiredDescriptionDefault
group_idYesEndpoint group ID to add endpoints to
tenant_idYesTarget tenant ID
endpoint_idsYesComma-separated endpoint UUIDs to add to the group

TDQS

A3.7/5.0
Behavior3/5

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

The description adds the behavioral insight that endpoints will inherit policies from the group, which is valuable beyond the annotations. However, it does not disclose potential side effects, required permissions, or error conditions, leaving gaps in transparency.

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

Conciseness5/5

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

The description is extremely concise, consisting of two sentences that convey the core purpose and a key behavioral aspect. No unnecessary words or fluff.

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?

While the description covers the main action and policy inheritance, it lacks details about prerequisites (e.g., group must exist), error handling, or return values. For a simple add operation with no output schema, this is adequate but not 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?

The input schema provides clear descriptions for all three parameters (tenant_id, group_id, endpoint_ids), so the description does not add extra meaning. The description briefly mentions 'endpoints' but adds no detail beyond the schema.

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 action 'Add one or more endpoints to an endpoint group' and adds valuable context about policy inheritance. It effectively distinguishes this tool from sibling tools like 'sophos_create_endpoint_group' and 'sophos_add_users_to_group'.

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 does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention preconditions or when not to use it. The usage is implied by the clear purpose, but explicit guidelines are missing.

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

sophos_add_software_packageA

Add a static software package to the tenant's available package set so it can be assigned to endpoints.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
package_idYesStatic package UUID to add

TDQS

A3.8/5.0
Behavior3/5

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

Annotations indicate write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds that it adds a package to the available set for assignment, which is consistent but does not disclose potential side effects like idempotency or what happens if the package already exists.

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 that conveys the core purpose without any unnecessary words. It is front-loaded 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?

Given the tool's simplicity (2 required params, no output schema) and annotations, the description adequately explains the purpose and outcome. It could mention that the tenant must exist or the package must be static, but it is largely 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 coverage is 100% with brief descriptions for each parameter ('Tenant UUID', 'Static package UUID to add'). The description reinforces 'static software package' but does not add significant new meaning beyond the schema.

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 'Add', the resource 'static software package', and the context 'to the tenant's available package set so it can be assigned to endpoints'. It distinguishes from sibling tools like sophos_list_software_packages and sophos_get_software_package.

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 does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention prerequisites or when not to use it. It is implied that it is used for adding packages, but no further context is given.

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

sophos_add_users_to_groupC

Add one or more users to a directory user group.

ParametersJSON Schema
NameRequiredDescriptionDefault
group_idYesUser group UUID
user_idsYesComma-separated user UUIDs to add to the group
tenant_idYesTenant UUID

TDQS

C2.9/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, so the tool is a non-destructive write operation. The description adds no further behavioral details, such as idempotency, permission requirements, or side effects.

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, clear sentence that efficiently conveys the purpose. It is appropriately concise for a simple tool, though it could benefit from additional context.

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 mutation tool with annotations and full schema coverage, the description is minimally adequate. However, the lack of details about the outcome or differences from similar siblings reduces 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?

All three parameters are documented in the input schema with descriptions. The description does not add any additional meaning beyond the schema, so it meets the baseline for high coverage.

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

Purpose4/5

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

The description clearly states the action 'Add' and the resource 'one or more users to a directory user group'. It is distinct from many siblings but does not differentiate from the very similar sibling 'sophos_add_user_to_groups', which could cause confusion.

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 only states the basic action with no guidance on when to use this tool versus alternatives, such as the similarly named 'sophos_add_user_to_groups'. No prerequisites or exclusions are mentioned.

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

sophos_add_user_to_groupsB

Add a user to one or more directory user groups.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUser UUID
group_idsYesComma-separated group UUIDs to add the user to
tenant_idYesTenant UUID

TDQS

B3.2/5.0
Behavior2/5

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

The description adds no behavioral details beyond what annotations imply. Annotations indicate mutation (readOnlyHint=false) and non-destructiveness (destructiveHint=false), but the description does not elaborate on side effects, permissions required, or reversibility. For an update operation, this is insufficient.

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, clear sentence with no superfluous words. It is efficiently structured, though it could include a brief note on distinction from similar tools without losing 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 mutation tool with good schema coverage and no output schema, the description is minimally adequate. However, it does not explain the relationship to sibling tools like sophos_add_users_to_group or provide context on expected behavior (e.g., whether group_ids accepts a single ID or multiple).

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%, with all parameters described (user_id, group_ids, tenant_id). The description does not add further meaning beyond the schema, so 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 'Add a user to one or more directory user groups,' specifying the action (add), resource (user), and target (groups). This clearly distinguishes from siblings like sophos_add_users_to_group (which adds multiple users) and sophos_create_user_group (create a new group).

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 on when to use this tool versus alternatives. For example, it does not explain the difference from sophos_add_users_to_group, nor does it mention prerequisites like existing user or groups. The description is purely functional without usage context.

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

sophos_approve_firewallA

Approve a pending firewall for Sophos Central management.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
firewall_idYesFirewall UUID to approve

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate write operation (readOnlyHint=false). Description adds no behavioral details beyond the obvious 'approve' action, such as reversibility or side effects.

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?

Single sentence, highly concise with no wasted words. Purpose is front-loaded and clear.

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 approval action with complete schema and annotations, the description is adequate. Could mention expected outcome (e.g., firewall becomes managed) but not essential.

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?

Both parameters have schema descriptions (100% coverage). The tool description adds no additional 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.

Purpose5/5

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

Description clearly states the verb 'Approve' and resource 'pending firewall', distinguishing it from sibling tools like sophos_list_firewalls and sophos_update_firewall.

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 on when to use this tool versus alternatives, no prerequisites (e.g., firewall must be in pending state), and no when-not-to-use instructions.

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

sophos_authenticateA
Read-only

Authenticate to Sophos Central using OAuth2 client credentials and obtain a JWT access token. The token is managed automatically and refreshed as needed. Call this first to verify credentials are working. Returns success status and authentication state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior5/5

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

Adds context beyond annotations by stating the token is managed automatically and refreshed. Annotations indicate readOnlyHint=true and destructiveHint=false, and the description does not contradict these.

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 action, no wasted words. Every sentence adds value.

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?

Returns success status and authentication state are mentioned; no output schema exists. Given the tool's simplicity, this is reasonably complete, but could specify what success/failure looks like.

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?

No parameters exist (schema coverage 100%), so baseline 4 applies. The description adds meaning by explaining the OAuth2 client credentials usage and token 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 clearly states it authenticates to Sophos Central using OAuth2 and obtains a JWT token. It distinguishes itself from sibling tools, which are all for specific Sophos operations, by being the authentication step.

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?

Explicitly says 'Call this first to verify credentials are working,' indicating when to use it. While no alternatives or when-not-to are given, the context of being an authentication tool makes its usage clear.

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

sophos_bulk_add_mailboxesC

Add multiple mailboxes to email protection in a single request.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesArray of mailboxes to add
tenant_idYesTenant UUID

TDQS

C2.8/5.0
Behavior2/5

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

Beyond annotations indicating mutation (readOnlyHint=false) and non-destructive (destructiveHint=false), the description provides no additional behavioral context such as idempotency, error handling, or expected processing time.

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

Conciseness3/5

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

The single sentence is concise but too vague to be fully informative; it lacks structure and could be expanded with minimal overhead.

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

Completeness2/5

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

For a 2-parameter tool with no output schema, the description does not provide sufficient context about return values, error states, or practical aspects of bulk operations, leaving agent uninformed.

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% with descriptions for all parameters, so the description adds no extra meaning. Baseline 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 action ('Add multiple mailboxes') and the context ('to email protection'), and implicitly distinguishes from the sibling single-add tool by emphasizing 'multiple' and 'single request'.

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 on when to use this tool vs alternatives (e.g., sophos_create_mailbox for single mailboxes), nor any prerequisites or constraints mentioned.

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

sophos_cancel_live_query_runA

Cancel a running or pending Live Discover query run. Uses POST to the /cancel sub-resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesQuery run UUID to cancel
tenant_idYesTenant UUID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations indicate non-destructive and non-read-only, and the description adds the POST method. However, it does not elaborate on side effects or authorization requirements beyond what annotations provide.

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 concise, with two focused sentences that convey the purpose and HTTP method without extraneous 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 cancellation tool with no output schema, the description, combined with the schema, provides sufficient context. A brief note on response behavior would make it 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 coverage is 100%, and the description does not add additional meaning to the parameters beyond their schema 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?

The description explicitly states the action ('Cancel'), the resource ('running or pending Live Discover query run'), and the HTTP method (POST), clearly distinguishing it from sibling tools like get status or list runs.

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 use for cancellation but lacks explicit guidance on when to use versus alternatives, such as waiting for completion or checking status first.

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

sophos_cancel_xdr_query_runB

Cancel a running or pending XDR query run. Uses POST to the /cancel sub-resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesQuery run UUID to cancel
tenant_idYesTenant UUID

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false (mutation) and destructiveHint=false (no data destruction). The description adds only the HTTP method (POST) and sub-resource (/cancel), which are minor implementation details. It does not disclose important behavioral aspects such as whether cancellation is irreversible, what happens to results, or permission requirements.

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 extremely concise with two sentences containing no extraneous information. Every word serves a purpose, making it easy to parse quickly.

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

Completeness2/5

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

Given the simplicity of the tool and no output schema, the description lacks critical context about the lifecycle of query runs (e.g., what states are cancellable, what errors might occur, how to verify cancellation). It does not relate to sibling tools like sophos_run_xdr_query or sophos_get_xdr_query_status, leaving an incomplete picture.

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 for both parameters (run_id and tenant_id). The description does not add any additional meaning or context beyond the schema, so it meets the baseline for 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 clearly states the tool cancels a running or pending XDR query run, specifying the verb 'cancel' and resource 'XDR query run'. This distinguishes it from the sibling tool sophos_cancel_live_query_run, which targets live queries.

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 provides no guidance on when to cancel a query or when to use this tool versus alternatives like sophos_cancel_live_query_run. It does not mention prerequisites (e.g., the run must be in a cancellable state) or any conditions under which cancellation is appropriate.

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

sophos_check_firmware_upgradesB
Read-only

Check if firmware upgrades are available for the specified managed firewalls.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
firewall_idsYesComma-separated firewall UUIDs to check (up to 1000)

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds minimal behavioral context beyond confirming it's a check operation. It doesn't disclose filtering behavior, rate limits, or what happens when no upgrades are available.

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 wasted words. It efficiently communicates the tool's purpose.

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?

Without an output schema, the description should clarify what the response contains (e.g., list of available upgrades). It fails to describe the return format or any side effects, leaving the agent uncertain about 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 coverage is 100% with both parameters described. The description references 'specified managed firewalls' aligning with the firewall_ids parameter but adds no additional meaning beyond the schema.

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 checks firmware upgrade availability for specified firewalls. It uses a specific verb ('check') and resource ('firmware upgrades'), and distinguishes itself from sibling tools like sophos_list_firewalls or sophos_update_firewall.

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 provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or when not to use it.

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

sophos_create_admin_role_assignmentB

Assign a role to a tenant admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
role_idYesRole UUID to assign
admin_idYesAdmin UUID
tenant_idYesTenant UUID

TDQS

B3.1/5.0
Behavior2/5

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

Annotations indicate non-read-only and non-destructive, but description adds no extra context about behavior: what happens if assignment already exists, permission requirements, or any side effects.

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?

Single sentence, 6 words, no waste. However, could be expanded slightly to include more context without harming conciseness.

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?

No output schema and description fails to explain return value, error scenarios, or idempotency. For a creation tool, this 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 coverage is 100% with descriptions for each parameter. The description does not add meaningful information beyond schema for parameters; baseline score 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?

Description clearly states the verb 'Assign' and the resources 'role' and 'tenant admin', distinguishing it from sibling tools like sophos_list_role_assignments and sophos_create_partner_admin_role_assignment.

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 on when to use this tool vs alternatives, no prerequisites or when-not-to-use mentioned. Sibling tools like sophos_list_admin_role_assignments and sophos_list_tenant_roles exist but no differentiation.

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

sophos_create_allowed_itemB

Add a globally allowed item. For 'sha256' type supply sha256. For 'path' type supply fileName and optionally path. For 'certificateSigner' type supply certificateSigner.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoFile path (optional with type 'path', e.g. $desktop/documents/filename.txt)
typeYesType of allowed item
sha256NoSHA256 hash (required when type is 'sha256')
commentYesReason for allowing this item
file_nameNoFile name (required when type is 'path')
tenant_idYesTenant UUID
origin_person_idNoPerson UUID who originally encountered the item
certificate_signerNoCertificate signer value (required when type is 'certificateSigner')
origin_endpoint_idNoEndpoint UUID where the item was originally detected

TDQS

B3.3/5.0
Behavior2/5

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

The description adds no behavioral context beyond the annotations. Annotations already indicate a write operation, but the description neither confirms nor explains side effects, necessary permissions, or error handling. For a mutation tool, more transparency is expected.

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 concise sentences: the first states the purpose, the second provides type-specific instructions. No extraneous words, and the most important information is front-loaded.

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 9 parameters and conditional requirements, the description covers the essential usage logic. However, it omits mention of return values or authentication requirements, which would enhance completeness given no output schema.

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?

With 100% schema coverage, the baseline is 3. The description adds value by summarizing conditional parameter dependencies (e.g., 'for sha256 type supply sha256'). This helps the agent understand the parameter relationships clearly, raising the score to 4.

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 adds a globally allowed item, and the type-specific instructions clarify the resource. However, it does not differentiate from sibling tools like 'sophos_list_allowed_items' or 'sophos_update_allowed_item', missing an opportunity to avoid confusion.

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 alternatives (e.g., updating vs. adding). It only explains per-type parameter requirements, not when this tool is appropriate or what prerequisites are needed.

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

sophos_create_blocked_itemA

Block an item by SHA256 hash globally. Optionally include filename and path for context.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoFile path associated with this hash (for display purposes)
sha256YesSHA256 hash of the item to block
commentYesReason for blocking this item
file_nameNoFile name associated with this hash (for display purposes)
tenant_idYesTenant UUID

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate this is a non-read, non-destructive write operation. The description adds the 'globally' scope and optional context parameters, but does not disclose side effects like whether existing blocks are overwritten or permission requirements.

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-loaded with the core action, and every sentence contributes meaning without redundancy.

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

Completeness2/5

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

Given no output schema, the description should explain what the response contains. It lacks details on return values or success/failure indicators, leaving the agent to infer behavior. Parameter coverage is adequate but returns are omitted.

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?

With 100% schema description coverage, the description adds minimal value: it mentions 'filename and path for context', which is similar to the schema's 'for display purposes'. Required parameters like tenant_id and comment are not explained further.

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 action ('Block an item by SHA256 hash globally') with a specific verb and resource, and the scope 'globally' distinguishes it from sibling tools like sophos_create_allowed_item.

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 provides no explicit guidance on when to use this tool versus alternatives. It mentions optional parameters but lacks context for when blocking is appropriate or what the prerequisites are.

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

sophos_create_caseB

Create a new investigation case.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCase name
typeNoCase type (e.g. 'threat', 'hunt', 'incident')
statusNoInitial case status
assigneeNoAssignee email address
overviewNoCase overview/description text
severityNoCase severity (e.g. 'notSet', 'high', 'critical')
tenant_idYesTenant UUID
managed_byNoWho manages the case ('self' or 'sophos')
other_detection_idsNoAdditional detection IDs to associate with the case
initial_detection_idNoID of the initial detection that triggered this case

TDQS

B3/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description's 'Create' is consistent but adds no behavioral details beyond the annotations. No mention of side effects, auth needs, or other traits.

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

Conciseness3/5

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

The description is very concise (5 words) but lacks structure for a tool with 10 parameters. It is front-loaded with the verb, but too terse to be fully informative.

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

Completeness2/5

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

With 10 parameters, no output schema, and no behavioral context, the description is incomplete. It does not explain what happens upon creation, return values, or prerequisites.

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 fully documents parameters. The description adds no additional meaning beyond the schema, resulting in 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 'Create a new investigation case' uses a specific verb and resource, clearly distinguishing it from sibling tools like sophos_list_cases, sophos_get_case, and sophos_update_case.

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 provides no guidance on when to use this tool versus alternatives (e.g., sophos_update_case for modifying cases, sophos_get_case for reading), nor any prerequisites or context.

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

sophos_create_cloud_security_profileA

Create a new cloud security runtime detection profile, or create a new version of an existing profile. Provide 'name' when creating a new profile; provide 'profile_id' when adding a new version to an existing profile. Use sophos_list_cloud_security_default_contents to get available content versions.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoProfile name (required when creating a new profile, omit when creating a new version of an existing profile)
tenant_idYesTenant UUID
profile_idNoUUID of an existing profile to create a new version of (omit when creating a brand new profile)
list_overridesNoList of allow/block list overrides for the profile
rule_overridesNoList of rule-level overrides for the profile
content_versionYesVersion of the default content to use (e.g. '6.4.8'). Use sophos_list_cloud_security_default_contents to list available versions.
profile_descriptionNoDescription for this version of the profile

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true. The description does not add behavioral details beyond the schema, such as side effects or permissions. It neither contradicts nor significantly extends annotations.

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 three sentences: first states purpose, second clarifies the two operation modes, third directs to a related tool. Every sentence earns its place, and the most critical information is front-loaded.

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 7 parameters (including nested objects), 2 required, no output schema, the description covers the core workflow and references the content source. It could mention expected return or success behavior, but the current information is sufficient for an experienced user.

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 is well-documented in the schema. The description adds high-level guidance on when to use name vs profile_id and suggests a sibling tool for defaults, but does not deepen understanding of parameter syntax beyond the schema.

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 'Create' and the resource 'cloud security runtime detection profile' or 'new version of an existing profile.' It distinguishes from sibling tools like sophos_list_cloud_security_profiles and sophos_update_cloud_security_profile_name by specifying creation behavior and referencing a dedicated tool for default content.

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

Usage Guidelines4/5

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

The description provides explicit guidance on when to use each mode: provide 'name' for new profile, 'profile_id' for new version. It also recommends using sophos_list_cloud_security_default_contents for available content versions. It lacks explicit exclusions (when not to use), but the context is adequate.

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

sophos_create_endpoint_groupA

Create a new endpoint group in a tenant. Groups organize endpoints by type (computer or server) and can be used for targeted policy assignment.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName for the new endpoint group
typeYesType of endpoints this group will contain
tenant_idYesTarget tenant ID
descriptionNoDescription of the endpoint group

TDQS

A3.8/5.0
Behavior3/5

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

Annotations provide readOnlyHint=false and destructiveHint=false, so description correctly confirms this is a write operation. Description adds context about grouping endpoints by type, but does not disclose potential side effects (e.g., whether creating a group triggers policy enforcement) or any prerequisites.

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: the first states the action, the second provides purpose. No redundant information. Perfectly sized and front-loaded.

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 creation tool, description explains purpose and type enum. However, it omits information about the return value (e.g., does it return the created group?) and any constraints like uniqueness of group names. Still, it addresses the key context for an AI agent.

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 4 parameters have descriptions in the schema (100% coverage). The description adds no additional parameter-specific details beyond what the schema already provides, so baseline score 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?

Description clearly states 'Create a new endpoint group in a tenant' and explains that groups organize endpoints by type for policy assignment. This specific verb-resource combination distinguishes it from sibling tools like sophos_get_endpoint_group or sophos_list_endpoints.

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 a new group is needed and mentions policy assignment, but does not explicitly state when to use this tool versus alternatives (e.g., when to update an existing group instead). No 'do not use if' guidance or alternatives are listed.

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

sophos_create_exclusionB

Create a new global scanning exclusion. The 'value' is the exclusion path/process/URL. The 'comment' field documents the reason.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesExclusion type
valueYesExclusion value (file path, process name, URL, certificate signer, etc.)
commentNoReason for this exclusion
scan_modeNoWhen the exclusion applies (for path/process types)
tenant_idYesTenant UUID

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate non-read-only and non-destructive behavior. The description adds 'global' scope and explains parameter purpose but does not disclose additional behavioral traits such as required permissions, potential duplicates, or side effects beyond creation.

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?

Two sentences with no redundancy. The first sentence states the action, the second explains key parameters. However, it could be improved by front-loading the most critical information (e.g., required parameters) or using bullet points.

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 creation tool with 5 parameters and no output schema, the description does not cover return values, error conditions, or confirmation of creation. It mentions only two parameters, leaving the agent to infer the role of 'type', 'scan_mode', and 'tenant_id' from the schema. Adequate but not comprehensive.

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 baseline is 3. The description adds modest value by explaining that 'value' is an exclusion path/process/URL and 'comment' documents the reason, but does not enhance understanding of 'type', 'scan_mode', or 'tenant_id' beyond the schema.

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 ('Create') and resource ('global scanning exclusion'), and clearly distinguishes from siblings like 'sophos_list_exclusions' and 'sophos_update_exclusion' by focusing on creation. It also clarifies key parameters ('value', 'comment').

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 alternatives like 'sophos_update_exclusion' or 'sophos_create_web_control_local_site'. The agent is not told when creation is appropriate versus modification.

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

sophos_create_exploit_mitigation_appA

Add a custom application to exploit mitigation monitoring. Provide one or more executable paths (supports environment variable prefixes like $programfiles).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYesComma-separated list of executable paths to protect, e.g. '$programfiles\FooApp\foo.exe,$programfiles\FooApp\bar.exe'
tenant_idYesTenant UUID

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds behavioral detail about environment variable prefixes, which is helpful. It does not disclose potential side effects (e.g., behavior if the app already exists), but there is no contradiction with annotations.

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: one for purpose, one for input guidance. No extraneous information, every word serves a purpose. Front-loaded with essential 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?

Given the tool has only 2 parameters with full schema coverage and no output schema, the description covers the main points. It addresses input format and environment variable support. It could be slightly more complete by noting whether duplicate paths are handled, but overall it's adequate.

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%, with both parameters described. The description adds value to the 'paths' parameter by mentioning environment variable prefixes, which goes beyond the schema's description. The 'tenant_id' parameter is not enhanced, but overall the description compensates well.

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?

Description clearly states the action 'Add' and the resource 'custom application to exploit mitigation monitoring'. It distinguishes from sibling tools like sophos_list_exploit_mitigation_apps and sophos_update_exploit_mitigation_app by focusing on creation.

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 instructs to provide one or more executable paths with environment variable support, giving clear input guidance. However, it lacks explicit when-to-use or when-not-to-use guidance relative to siblings, though the creation context is implicit.

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

sophos_create_firewall_groupB

Create a new firewall group. At least one firewall UUID must be assigned at creation.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesGroup name (3–40 characters)
tenant_idYesTenant UUID
parent_group_idNoParent group UUID if creating a child group
assign_firewallsYesComma-separated firewall UUIDs to add to the new group (required)
config_import_source_firewall_idNoUUID of a firewall to import configuration settings from

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate non-read-only (creation). Description adds the constraint of requiring at least one firewall UUID. No contradiction with annotations, but lacks details on permissions, error handling, or return value.

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

Conciseness5/5

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

Two sentences, no waste. Purpose and key requirement front-loaded. Efficient use of words.

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?

Short description omits explanation of what a firewall group is, prerequisites (tenant_id), how to get firewall UUIDs, and return behavior. With 5 parameters and no output schema, more context is needed for adequate 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 coverage 100% already documents parameters. Description adds context that assign_firewalls is not just required but must have at least one UUID. Does not explain other parameters like parent_group_id or config_import_source_firewall_id.

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?

Clear verb 'Create' and resource 'firewall group'. Distinguishes from siblings like update/get/list. Also states key constraint about required firewall assignment, adding specificity.

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?

Implied usage for creation (no update/list). Restates requirement from schema but no explicit when/when-not/alternatives. Could mention to use update for existing groups.

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

sophos_create_ips_exclusionA

Create an IPS exclusion to exempt specific traffic from intrusion prevention scanning. Direction must be 'inbound' or 'outbound'. Remote addresses is a comma-separated list of IPs/URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
commentNoReason for this exclusion
directionYesTraffic direction to exclude
tenant_idYesTenant UUID
local_portsNoComma-separated local port numbers to exclude (e.g. '443,8443')
remote_portsNoComma-separated remote port numbers to exclude (e.g. '443,8443')
remote_addressesNoComma-separated remote IP addresses or URLs to exclude (e.g. '10.50.100.100,10.50.100.200')

TDQS

A3.8/5.0
Behavior3/5

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

Annotations indicate non-read-only and non-destructive behavior. Description adds context that the tool exempts traffic from scanning and includes constraints on direction and remote addresses format. However, it does not disclose permissions required, side effects, or response behavior, which are not covered by annotations.

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?

Description is two sentences: first states the primary purpose, second provides key formatting details. It is front-loaded and efficient, with no wasted words. Slightly more structure could improve readability, but it is already quite concise.

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?

Tool has 6 parameters and no output schema. Description explains the main function and key parameter formats but omits return value, prerequisites (e.g., tenant existence), and success/failure indications. Given the tool's complexity (creation with multiple optional fields), the description is adequate 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 coverage is 100%, so baseline is 3. Description adds meaning for 'direction' (enum values) and 'remote_addresses' (format as comma-separated IPs/URLs) beyond the schema descriptions. Other parameters are not mentioned, but schema already describes them 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?

Description clearly states the verb 'Create' and resource 'IPS exclusion', and explains the purpose: to exempt specific traffic from intrusion prevention scanning. This distinguishes it from sibling tools like list, get, update, and generic exclusion creation.

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?

Description specifies that direction must be 'inbound' or 'outbound' and that remote addresses are comma-separated, providing clear usage context. However, it does not explicitly state when to use this tool vs. alternatives like sophos_create_exclusion or when not to use it.

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

sophos_create_isolation_exclusionA

Create an isolation exclusion so specific traffic can pass through even when an endpoint is network-isolated. Direction must be 'inbound' or 'outbound'.

ParametersJSON Schema
NameRequiredDescriptionDefault
commentNoReason for this exclusion
directionYesTraffic direction: 'inbound' or 'outbound'
tenant_idYesTenant UUID
local_portsNoComma-separated local port numbers (e.g. '443,8443')
remote_portsNoComma-separated remote port numbers (e.g. '443,8443')
remote_addressesNoComma-separated remote IP addresses or URLs allowed through isolation (e.g. '10.50.100.100')

TDQS

A3.5/5.0
Behavior2/5

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

Annotations already indicate the tool is a write operation (readOnlyHint: false) and non-destructive (destructiveHint: false). The description adds the direction constraint but does not disclose additional behavioral traits such as validation rules, potential errors, or idempotency. The agent has limited insight beyond the annotations.

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 long, front-loading the purpose and immediately stating a key constraint. Every word earns its place; there is no superfluous content.

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

Completeness3/5

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

For a tool with 6 parameters and no output schema, the description explains the high-level purpose and a key constraint (direction). However, it does not clarify the roles of local_ports, remote_ports, and remote_addresses in the context of isolation exclusions, though the schema descriptions cover them. The lack of output schema means the agent must infer return values. Overall, adequate but not comprehensive.

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 each parameter. The description reinforces the direction enum constraint ('inbound' or 'outbound') and connects parameters to the use case, but does not add significant new meaning beyond the schema. 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 clearly states the tool's purpose: creating an isolation exclusion to allow specific traffic through a network-isolated endpoint. It distinguishes itself from sibling tools like sophos_list_isolation_exclusions (list), sophos_get_isolation_exclusion (get), and sophos_update_isolation_exclusion (update) by focusing on creation and the specific context of network isolation.

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 provides a constraint ('Direction must be 'inbound' or 'outbound') but does not offer guidance on when to use this tool versus alternatives (e.g., when to create versus update an isolation exclusion, or when to use a regular exclusion). Usage context is implied but explicit exclusions or comparisons are missing.

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

sophos_create_mailboxB

Add a single mailbox to email protection.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoDisplay name for the mailbox
typeYesMailbox type
emailYesEmail address of the mailbox
tenant_idYesTenant UUID

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate a write operation (readOnlyHint=false) and non-destructive behavior (destructiveHint=false). The description adds no further context about side effects, permissions, or idempotency. Given annotation coverage, this is adequate but not additive.

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 that is front-loaded with the core action. Every word is necessary, and there is no wasted text.

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, the description should at least hint at what is returned (e.g., mailbox ID). It does not. Additionally, there is no mention of prerequisites (e.g., authentication via sophos_authenticate) or potential errors. Given 4 parameters and a creation action, the description is too sparse.

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 for all 4 parameters, so the schema already documents semantics. The description does not add any extra meaning or constraints beyond what the schema provides.

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 'Add a single mailbox to email protection' clearly specifies the verb (Add), resource (a single mailbox), and context (email protection). The word 'single' distinguishes it from sibling 'sophos_bulk_add_mailboxes', making the purpose precise.

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 provides no guidance on when to use this tool versus alternatives like 'sophos_bulk_add_mailboxes' for multiple mailboxes or 'sophos_update_mailbox' for updates. The agent is left without decision criteria.

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

sophos_create_mdr_threat_feed_indicatorsA

Add threat indicators (IOCs) to a firewall's MDR threat feed. Indicators can be IPv4 addresses, domain names, or URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
indicatorsYesJSON array of indicator objects, each with 'value' and 'type' (ipv4-addr|domain-name|url). E.g. [{"value":"1.2.3.4","type":"ipv4-addr"}]
firewall_idYesFirewall UUID

TDQS

A3.5/5.0
Behavior3/5

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

Annotations indicate write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). Description adds that indicators can be IPv4, domain, or URL, but does not disclose idempotency, error handling, or limits. Adds some value beyond annotations but not rich behavior context.

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, front-loaded with purpose, followed by allowed types. Every sentence is essential, no redundancy.

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?

With 3 required parameters and no output schema, the description covers the essential functionality. However, it does not mention return value, error cases, or batch size limits. Adequate but could be more 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%, and the description confirms accepted types for indicators. However, it does not add meaning beyond the schema's parameter descriptions. Baseline 3 for high 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?

Description clearly states the tool adds threat indicators to a firewall's MDR threat feed, with specific types (IPv4, domain, URL). Verb 'Add' and resource are specific, distinguishing from sibling search/get/update feed tools.

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 on when to use this tool versus alternatives like sophos_search_mdr_threat_feed_indicators or sophos_update_mdr_threat_feed_settings. No mention of prerequisites or scenarios.

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

sophos_create_mobile_app_groupB

Create a new mobile app group. Provide a name, target platform, and a JSON array of app objects to include in the group.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesApp group name (max 255 chars)
platformYesTarget platform for this app group
apps_jsonYesJSON array of app objects to include in the group (e.g. [{"id":"..."}])
tenant_idYesTenant UUID

TDQS

B3.2/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false (write operation) and destructiveHint=false, which align with 'Create'. However, the description adds no extra behavioral context, such as rate limits, idempotency, or consequences of duplicate names. Since the description carries the burden for behavioral traits not covered by annotations, it falls short.

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, extremely concise, and front-loaded with the core action. Every sentence contributes value without unnecessary details. No waste.

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?

There is no output schema, and the description does not mention what the tool returns (e.g., the created group object, confirmation, or error). It also omits constraints like maximum group size or whether apps must pre-exist. For a creation tool, this lack of return value context is a notable 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 all parameters. The description's mention of 'name, target platform, and a JSON array of app objects' summarizes but does not add new meaning or clarify usage beyond the schema. 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 clearly states the verb 'Create' and the resource 'mobile app group'. It lists required inputs (name, platform, apps_json), making the purpose unambiguous. Among sibling tools like sophos_list_mobile_app_groups and sophos_update_mobile_app_group, this tool is distinctly identified as the creation operation.

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 provides no guidance on when to use this tool versus alternatives, such as when to update an existing group versus create a new one. It does not mention prerequisites, error conditions (e.g., duplicate name), or scenarios where this tool is appropriate. The agent is left to infer usage context 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.

sophos_create_mobile_deviceC

Register a new mobile device in Sophos Mobile MDM. Requires device name, ownership type (corporate/employee), and platform (iOS, macOS, android, chrome, windows).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDevice name (max 255 chars)
emailNoEmail address assigned to the device (if no user assigned)
group_idNoDevice group UUID — defaults to the default group if not specified
platformYesDevice operating system platform
log_levelNoSophos Mobile app log verbosity
tenant_idYesTenant UUID
descriptionNoDevice description (max 500 chars)
phone_numberNoPhone number of the user assigned to this device
ownership_typeYesWho owns the device — corporate or employee
assigned_person_idNoUUID of the user assigned to the device

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false (write operation) and destructiveHint=false. The description adds no behavioral details beyond that, such as required permissions, side effects, or error behavior. For a write operation, more transparency is needed.

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

Conciseness5/5

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

Two sentences with no fluff. The first sentence states the purpose, the second lists required fields. Every word earns its place.

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

Completeness2/5

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

Despite 100% schema coverage for parameters, the description lacks information about return values, expected behavior after registration, error conditions, or how to use the response. For a creation tool, this is incomplete.

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 parameters are well-documented in the schema. The description only repeats that name, ownership_type, and platform are required, adding no new semantics or context for any parameter. 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 clearly states the tool registers a new mobile device in Sophos Mobile MDM, specifying the verb (register) and resource (mobile device). It lists key required parameters, but 'register' could be more precise, and it doesn't contrast with sibling tools like sophos_get_mobile_device or sophos_list_mobile_devices.

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 on when to use this tool versus alternatives. Doesn't mention prerequisites, context, or exclusions. The description simply states the action without any situational advice.

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

sophos_create_mobile_device_propertyA

Add a custom property (key/value pair) to a mobile device. The key must follow the pattern 'custom.'.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesProperty key — must match pattern 'custom.<alphanumeric>' (max 100 chars)
valueYesProperty value (max 4096 chars)
device_idYesMobile device UUID
tenant_idYesTenant UUID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false (write) and destructiveHint=false (non-destructive). The description adds the key pattern constraint, but does not disclose what happens if the key already exists (overwrite vs. error), response behavior, or any side effects. This is adequate but 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 extremely concise: two sentences. The first states the primary purpose, and the second adds a critical constraint. No filler words or redundant 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 4-parameter tool with no output schema, the description covers the essential operation and key constraint. However, it lacks detail on what happens if the key already exists, which is a behavioral gap. Nevertheless, it is mostly complete given the tool's simplicity.

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% with all parameters described. The tool description reinforces the key pattern constraint already present in the schema. It adds no further parameter semantics beyond what the schema provides, so 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 action ('Add a custom property'), the target resource ('mobile device'), and the nature of what's being added ('key/value pair'). It also provides a specific constraint on the key format, distinguishing it from sibling tools like sophos_create_mobile_device (which creates a device) or sophos_update_mobile_device (which updates device fields).

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 needing to add a custom property to an existing mobile device. However, it does not explicitly state when to use this tool versus alternatives (e.g., sophos_create_mobile_device, sophos_update_mobile_device), nor does it provide prerequisites (e.g., device must exist) or when not to use it.

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

sophos_create_partner_admin_role_assignmentA

Assign a role to a partner admin (add a role to an admin's existing role set).

ParametersJSON Schema
NameRequiredDescriptionDefault
role_idYesRole UUID to assign
admin_idYesPartner admin UUID

TDQS

A3.6/5.0
Behavior3/5

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

The tool is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false). The description clarifies it is an additive operation ('add a role to existing role set'), which aligns with the annotations. However, no additional behavioral traits like authorization, idempotency, or response details are provided beyond what the annotations already disclose.

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 that front-loads the action and includes a clarifying parenthetical. No extraneous 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?

The tool is simple with two required parameters and no output schema. The description covers the core action but could explicitly mention if the operation is idempotent or if duplicate assignments are handled. Still, it is complete enough for a straightforward role assignment.

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% with clear parameter descriptions (role_id and admin_id are UUIDs). The description does not add semantic value beyond the schema; it merely restates the action. 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 clearly states the verb 'Assign' and the resource 'role to a partner admin', with a parenthetical clarification that it adds to existing role set. It distinguishes from sibling tools like 'sophos_create_admin_role_assignment' (tenant admin) and 'sophos_create_partner_role' (role definition).

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 does not provide any guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or context for choosing it over similar tools like 'sophos_create_admin_role_assignment'.

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

sophos_create_partner_roleB

Create a new partner-level role with the specified name and permission sets.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesRole name
descriptionNoRole description
permission_set_idsNoComma-separated permission set UUIDs to include in this role. Use sophos_list_permission_sets to see available permission sets.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false (write) and destructiveHint=false. The description adds 'partner-level' context but lacks details on side effects or required permissions. No contradiction.

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?

Single sentence that efficiently conveys the purpose with no fluff.

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?

Missing return value description (creates a role but no mention of what is returned). Lacks usage context and prerequisites. Not fully informative for an agent.

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 covers all parameters fully (100% coverage). Description only reiterates 'name and permission sets' without adding new meaning beyond the schema.

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 'create' and the resource 'partner-level role', distinguishing it from sibling tools like sophos_create_tenant_role.

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 on when to use this tool versus alternatives, such as sophos_create_tenant_role or admin role assignments. No prerequisites or context provided.

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

sophos_create_policyA

Create a new endpoint policy. Specify the policy type, name, and optionally priority, enabled state, and settings as a JSON string.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName for the new policy
typeYesPolicy type
enabledNoWhether the policy is enabled (default true)
priorityNoPolicy priority (lower number = higher priority)
settingsNoPolicy settings as a JSON string. Structure depends on policy type. Use sophos_get_policy on an existing policy to see the expected format.
tenant_idYesTarget tenant ID

TDQS

A3.6/5.0
Behavior3/5

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

Description is consistent with annotations (non-readonly, non-destructive). Adds context about the 'settings' parameter format via reference to sophos_get_policy, but no further behavioral traits like permissions or side effects.

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?

Single, front-loaded sentence with no waste. Every word adds necessary 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?

Missing output schema and does not describe return values or error conditions. For a creation tool, agent would benefit from knowing the response structure. Adequate but with gaps.

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 has 100% coverage, baseline 3. Description adds value by explaining how to obtain the correct settings format using sophos_get_policy. Other parameters are simply listed but not elaborated.

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?

Clearly states 'Create a new endpoint policy' with specific verb and resource. Lists key parameters, but does not explicitly differentiate from sibling tools like sophos_update_policy.

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?

No explicit guidance on when to use vs alternatives. Usage is implied for creating a policy, but no prerequisites or exclusions mentioned.

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

sophos_create_tenantA

Create a new tenant under this Sophos Central Partner account. Requires tenant name, data geography, billing type, and primary contact details.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDisplay name for the new tenant
emailYesPrimary contact email address
phoneNoPrimary contact phone number (optional)
last_nameYesPrimary contact last name
first_nameYesPrimary contact first name
billing_typeYesBilling model: 'trial' for evaluation or 'usage' for production
data_geographyYesData residency geography for the tenant

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds 'Create' which matches. No contradictions, but it does not elaborate on side effects or auth needs beyond the hints.

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?

Single sentence conveying core action and requirements. No superfluous words; efficient but could be slightly more structured with bullet points or additional context.

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

Completeness2/5

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

Given 7 parameters, 6 required, and no output schema, the description is minimal. It doesn't explain success behavior, prerequisites (e.g., partner account), or return value. Sibling tools suggest many other creation endpoints, but this description lacks sufficient detail for complete understanding.

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 each parameter (e.g., enums, formats). The description lists some parameters but adds no new semantic detail beyond the schema.

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?

Description clearly states 'Create a new tenant under this Sophos Central Partner account', specifying the verb (create) and resource (tenant). This distinguishes it from listing, getting, or updating tenants among 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?

Description lists required fields ('Requires tenant name, data geography, billing type, and primary contact details'), implying use for provisioning new tenants. However, it does not provide explicit when-to-use or when-not-to-use guidance compared to alternatives like sophos_create_tenant_admin.

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

sophos_create_tenant_adminA

Create an administrator for a specific managed tenant using the partner-level endpoint. The admin will receive an invitation email.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesAdmin's email address (used for login)
role_idNoRole ID to assign within the tenant (optional)
last_nameYesAdmin's last name
tenant_idYesThe unique ID (UUID) of the tenant
first_nameYesAdmin's first name

TDQS

A4/5.0
Behavior4/5

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

Discloses that an invitation email is sent, adding value beyond annotations (readOnly=false, destr=false). No discussion of constraints or side effects beyond the email; could mention if email uniqueness is enforced.

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 concise sentences, front-loaded with purpose, no extraneous 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?

Provides enough context for a create tool: what it does (creates admin), how (via partner endpoint), side effect (email). Lacks response format detail and prerequisites, but with annotations (openWorldHint true) this is acceptable.

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 description does not add meaning beyond what the parameter descriptions already provide. 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?

Clear verb ('Create'), specific resource ('administrator for a managed tenant'), and context ('partner-level endpoint'). Distinguishes from siblings like sophos_invite_tenant_admin or sophos_create_partner_role.

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?

Implies use for creating managed tenant admins via partner endpoint, but no explicit when-to-use or alternatives provided. The mention of 'partner-level endpoint' hints at auth context, but no exclusions.

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

sophos_create_tenant_roleA

Create a custom role in a tenant. Use sophos_list_tenant_permission_sets to discover available permission set IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesRole name
tenant_idYesTenant UUID
descriptionNoRole description
permission_set_idsYesComma-separated permission set UUIDs to include in this role

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false, destructiveHint=false, and openWorldHint=true. The description adds no further behavioral details (e.g., permissions needed, latency, response behavior). It does not contradict annotations.

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, efficiently conveying the core purpose and a key usage hint without extraneous 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 creation tool with no output schema, the description provides the essential action and prerequisite. It lacks details on return format or error handling, but with annotations covering safety, it is fairly 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 coverage is 100% with all parameters described. The description adds no additional meaning beyond the schema, except the cross-reference to permission sets. 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 'Create a custom role in a tenant', specifying the action (create) and resource (custom role). It also references the sibling tool sophos_list_tenant_permission_sets, distinguishing its purpose clearly.

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 advises using sophos_list_tenant_permission_sets to discover available permission set IDs, providing clear prerequisite guidance. This is highly useful for correct tool invocation.

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

sophos_create_userB

Create a new directory user in a tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesEmail address
last_nameYesLast name
tenant_idYesTenant UUID
first_nameYesFirst name
exchange_loginNoExchange login (optional)

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already indicate a write operation (readOnlyHint=false), but the description adds no extra behavioral context beyond 'create'. No mention of side effects, permissions, or response characteristics.

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?

Single sentence with no filler, efficient and to the point. Could be front-loaded with the action, but it's already clear.

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 no output schema and sparse annotations, the description is thin. It doesn't explain return values or error conditions, but is adequate for a simple create operation with well-documented parameters.

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 description does not add additional meaning beyond the parameter names and types. 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 uses a specific verb 'Create' and resource 'directory user' with scope 'in a tenant', clearly distinguishing it from sibling tools like 'sophos_create_tenant' or 'sophos_get_user'.

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 on when to use this tool versus alternatives such as 'sophos_create_tenant_admin' or 'sophos_update_user'. No prerequisites or context for decision-making provided.

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

sophos_create_user_attestationA

Create a user activity attestation — push a security question to a user's Intercept X for Mobile device. Use this to verify whether suspicious activity (e.g. an unexpected login) was performed by the legitimate user. The user receives the question on their mobile device and selects an answer option. Poll the attestation status using sophos_get_user_attestation. Status values: 'pending' (awaiting response), 'completed' (user answered), 'expired' (timed out).

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoSpecific fields to include in a partial response (e.g. ['id', 'status'])
optionsNoCustom answer options (max 5). If omitted, default 'yes' and 'no' options are used.
user_idYesUUID of the user to send the attestation to
referenceNoOptional caller-defined reference string returned with the attestation object (alphanumeric, commas, hyphens, slashes, colons; max 256 chars)
tenant_idYesTenant UUID
title_textYesTitle of the attestation question shown on the mobile device (default language, max 100 chars)
question_textYesThe question text shown to the user on their mobile device (max 500 chars)
timeout_in_secondsNoSeconds before the attestation expires (60–86400, default 600). After expiry the attestation becomes read-only.
title_translationsNoOptional translations for the title. Keys are RFC 4646 language tags (e.g. 'de', 'fr'), values are translated text.
question_translationsNoOptional translations for the question. Keys are RFC 4646 language tags (e.g. 'de', 'fr'), values are translated text.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false (write), destructiveHint=false, openWorldHint=true. The description adds behavioral details: the user receives a question and selects an answer, and status values ('pending', 'completed', 'expired') are provided. No contradiction with annotations.

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 concise and well-structured. It starts with the action and purpose, then provides usage guidance, explains the flow, and mentions polling. Every sentence adds value without unnecessary verbosity.

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 the complexity (10 params, nested objects) and no output schema, the description is fairly complete. It explains the lifecycle (push, poll, status values) and links to the polling sibling tool. It could mention the expected response shape, but the status values partially compensate.

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 some context (e.g., default options are 'yes'/'no', translations, reference), but most parameter details are already in the schema. The description does not significantly enhance semantic understanding beyond the schema.

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 'Create a user activity attestation' and explains its purpose: 'push a security question to a user's Intercept X for Mobile device... verify whether suspicious activity... was performed by the legitimate user.' It distinguishes from the sibling 'sophos_get_user_attestation' by mentioning polling.

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

Usage Guidelines4/5

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

The description explicitly tells when to use: 'Use this to verify whether suspicious activity... was performed by the legitimate user.' It also guides the next step: 'Poll the attestation status using sophos_get_user_attestation.' It does not explicitly state when not to use, but the context is clear.

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

sophos_create_user_groupA

Create a new directory user group.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesGroup name
tenant_idYesTenant UUID
descriptionNoGroup description

TDQS

A3.6/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, which are consistent with the description. The description adds no behavioral details beyond the basic fact of creation (e.g., whether it fails if the group already exists, permissions needed).

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 with no unnecessary words or 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?

The tool is simple with 3 parameters and no output schema. The minimal description is adequate, though it could optionally mention required parameters or existence checks.

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?

Input schema coverage is 100% with descriptions for each parameter. The tool description does not add additional meaning beyond the schema, meeting the baseline expectation.

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 'Create a new directory user group' clearly states the action (create) and the resource (directory user group), distinguishing it from sibling tools like sophos_list_user_groups and sophos_update_user_group.

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 alternatives (e.g., sophos_update_user_group, sophos_add_users_to_group). No prerequisites or context for use are mentioned.

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

sophos_create_web_control_local_siteA

Create a Web Control local site override to allow or block a specific URL/domain. categoryId is an integer from the categories list.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL or domain to add (e.g. https://www.example.com)
commentNoReason for this local site override
tenant_idYesTenant UUID
category_idYesWeb control category ID (integer, from sophos_list_web_control_categories)

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already indicate a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds that it creates an override to allow/block a URL/domain, but does not disclose key behaviors like whether changes take effect immediately or require policy deployment. It provides moderate additional context beyond annotations.

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 long, front-loaded with the action, and contains no unnecessary words. Every sentence adds value without redundancy.

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 the tool has 4 parameters, no output schema, and annotations that are not highly informative, the description is incomplete. It lacks explanation of how the allow/block action is determined (e.g., is it based on category?) and does not mention return behavior or success indicators. It covers the basics but has notable 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 each parameter has a description. The description adds little extra meaning beyond the schema; it repeats that categoryId is an integer from the categories list. According to the guidelines, baseline is 3 for high coverage, and the description does not significantly enhance parameter understanding.

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 creates a Web Control local site override to allow or block a specific URL/domain. It uses a specific verb (Create) and resource (Web Control local site override), which distinguishes it from sibling tools like sophos_update_web_control_local_site and sophos_list_web_control_local_sites.

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 that this tool is used when you need to add a new local site override, but it does not explicitly state when to use it versus alternatives such as updating or listing. It mentions categoryId is from the categories list, hinting at a prerequisite, but lacks clear when-to-use and when-not-to-use guidance.

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

sophos_dns_create_custom_domainA

Create a custom domain list for DNS Protection. The list is assigned as allowed or blocked on a policy (via sophos_dns_create_policy or sophos_dns_update_policy), not typed here.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesList name (required)
domainsYesComma-separated list of domains or website URLs to include
tenant_idYesTenant UUID
descriptionNoOptional description for this list

TDQS

A4/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false and destructiveHint=false, so the agent knows it's a non-destructive write. The description adds that the list is not typed (assigned later), which is beyond annotations. No discussion of auth, rate limits, or side effects.

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, no fluff. First sentence states purpose, second provides usage guidance. Very concise and front-loaded.

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 creation tool with no output schema, the description covers the core action and mentions the policy assignment workflow. Missing details on validation or return values, but adequate for its simplicity.

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 all parameters are described in the schema. The description adds no new meaning beyond 'Create a custom domain list'. 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 clearly states 'Create a custom domain list for DNS Protection', specifying the verb and resource. It also distinguishes from sibling tools (list, get, update) by using 'Create'. Additional context about assignment via policy differentiates it.

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

Usage Guidelines4/5

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

The description explicitly says the list is assigned via sophos_dns_create_policy or sophos_dns_update_policy, guiding the agent on the next step. It lacks explicit when-not-to-use but provides clear workflow context.

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

sophos_dns_create_locationB

Create a new DNS Protection location. Provide either IP addresses or domain names (combined total max 100).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLocation name (alphanumeric, hyphens, underscores, spaces; 1–100 chars)
typeNoLocation type (default: standard)
labelNoOptional label for the location
policy_idNoDNS policy UUID to assign to this location
tenant_idYesTenant UUID
is_defaultNoWhether this is the default location
descriptionNoOptional description (max 250 chars)
doh_enabledNoWhether DNS over HTTPS (DoH) is enabled
domain_namesNoComma-separated domain names for this location
ip_addressesNoComma-separated public IPv4/IPv6 addresses for this location

TDQS

B3.4/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, consistent with creation. The description adds the IP/domain max constraint but no other behavioral traits (e.g., idempotency, error states). 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.

Conciseness4/5

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

Two sentences, front-loaded with purpose and key constraint. No wasted words, but could be more structured (e.g., separating purpose and constraint).

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 creation tool with 10 parameters, no output schema, and openWorldHint=true, the description covers core purpose and a key constraint but lacks return value info, error behavior, and parameter interactions. Adequate but incomplete.

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 all parameters have descriptions. The description adds only the combined max of IPs and domains. 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 clearly states the verb 'Create' and the resource 'DNS Protection location', and adds a specific constraint (IP/domain max 100). It distinguishes itself from sibling DNS tools (list, get, update) by focusing on creation.

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 on when to use this tool vs alternatives like sophos_dns_update_location. No prerequisites or exclusions mentioned aside from the IP/domain count constraint.

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

sophos_dns_create_policyA

Create a new DNS Protection policy with category filtering, allowed/blocked custom domain lists, and safe-search settings.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesPolicy name (required)
tenant_idYesTenant UUID
descriptionNoPolicy description
location_idsNoComma-separated location UUIDs to assign this policy to
custom_domains_enabledNoEnable allowed/blocked custom domain lists
rejected_web_categoriesNoJSON array of rejected web category identifiers
allowed_custom_domain_idsNoComma-separated allowed custom domain list UUIDs
blocked_custom_domain_idsNoComma-separated blocked custom domain list UUIDs
category_group_action_settingsNoJSON object mapping category group identifiers to actions (allow|block|alert|custom). E.g. {"productivity":"allow","social":"block"}
safe_search_for_youtube_enabledNoEnable SafeSearch for YouTube
safe_search_youtube_restriction_levelNoYouTube restriction level (e.g. strict, moderate)
safe_search_for_search_engines_enabledNoEnable SafeSearch for search engines

TDQS

A3.7/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false (consistent with creation) and destructiveHint=false. However, openWorldHint=true suggests potential side effects, but the description does not elaborate. Missing details on required permissions, rate limits, or behavior when policy already exists. Does not contradict annotations.

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?

Single sentence, 22 words, front-loaded with purpose. No redundant information. Efficiently conveys the essence.

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

Completeness3/5

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

For a tool with 12 parameters and no output schema, the description covers the general functionality but lacks details on return values, default behaviors, or example use cases. Adequate but not comprehensive.

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 12 parameters have schema descriptions (100% coverage). The tool description adds a high-level summary but does not provide additional meaning 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 clearly states the action (create), the resource (DNS Protection policy), and includes specific features (category filtering, custom domain lists, safe-search). Among sibling tools like sophos_create_policy and sophos_dns_create_location, it distinguishes itself as the DNS policy creation tool.

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?

No explicit guidance on when to use this tool versus alternatives like sophos_create_policy or sophos_dns_update_policy. Usage is implied by the action and resource, but no prerequisites or exclusions are mentioned.

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

sophos_dns_get_custom_domainB
Read-only

Get a specific custom domain list.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
custom_domain_idYesCustom domain list UUID

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. Description adds no additional behavioral context (e.g., response format, scope).

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?

Single sentence, front-loaded verb and resource, no unnecessary words. Concise but borderline too brief for full context.

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?

Minimal for a get operation with two required params and no output schema. Lacks details about what a 'custom domain list' is or response contents, but sufficient given simplicity.

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% with clear parameter descriptions. Description adds no extra meaning beyond what schema provides.

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?

Description uses specific verb 'Get' and resource 'specific custom domain list', clearly distinguishing from sibling 'sophos_dns_list_custom_domains' which lists all.

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 on when to use this tool vs alternatives like 'sophos_dns_list_custom_domains' or prerequisites. Agent must infer from name and schema.

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

sophos_dns_get_locationB
Read-only

Get details for a specific DNS Protection location.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
location_idYesLocation UUID

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only nature is clear. The description ('Get details') aligns but adds no additional behavioral context beyond annotations. No contradictions.

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 with no unnecessary words. It effectively communicates the tool's purpose without waste.

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?

While the tool is simple and the description covers basic purpose, it lacks details about what is returned (no output schema) and any edge cases. For a get operation with good annotations, it is adequate but not 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 coverage is 100% with clear descriptions for both parameters ('Tenant UUID' and 'Location UUID'). The description does not add extra meaning 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.

Purpose5/5

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

The description clearly states 'Get details for a specific DNS Protection location,' which specifies the verb (Get), resource (DNS Protection location), and sufficiently distinguishes it from sibling tools like sophos_dns_list_locations or sophos_dns_create_location.

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 provides no guidance on when to use this tool versus alternatives, nor any prerequisites or context. It simply states what it does without situational advice.

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

sophos_dns_get_policyA
Read-only

Get details for a specific DNS Protection policy.

ParametersJSON Schema
NameRequiredDescriptionDefault
policy_idYesDNS policy UUID
tenant_idYesTenant UUID

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds no additional behavioral context beyond stating the basic function. No contradictions.

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?

Single sentence that is direct and efficient, with no unnecessary 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?

Adequate for a simple read operation with annotations, but lacks any indication of what details are returned (e.g., full policy configuration), which would be helpful given 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?

Input schema covers 100% of parameters with descriptions; the description does not add any extra meaning to the parameters, meeting 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 'Get details for a specific DNS Protection policy' clearly states the action (get) and resource (specific DNS Protection policy), distinguishing it from sibling tools like sophos_dns_list_policies.

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 on when to use this tool versus alternatives like sophos_dns_list_policies or sophos_dns_update_policy, leaving the agent without context for selection.

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

sophos_dns_list_custom_domainsB
Read-only

List custom domain lists (allowed/blocked) for DNS Protection.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFilter by exact list name
pageNoPage number, starting with 1
sortNoSort field (e.g. name, createdAt)
page_sizeNoResults per page
tenant_idYesTenant UUID
page_totalNoWhether to return total page count
domain_namesNoFilter lists that contain this domain
name_containsNoFilter by name substring

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true. The description's 'List' verb aligns with a read-only operation, but it adds no additional behavioral context beyond what annotations provide, such as rate limits or scope of results.

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 of 10 words, with no wasted words. It efficiently conveys the tool's purpose and resource.

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?

While the annotations cover the read-only nature, the description lacks information about return values (no output schema), pagination behavior, or how to interpret results. Given the tool has 8 parameters including pagination, more context would help the agent, but the description is minimally acceptable.

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 for all 8 parameters. The description does not add any extra meaning about the parameters (e.g., format, constraints, or required ones) 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.

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' and the resource 'custom domain lists (allowed/blocked)' for DNS Protection, making the primary purpose evident. It implicitly distinguishes from sibling tools like sophos_dns_get_custom_domain by using 'list' (plural) versus 'get', but does not explicitly differentiate.

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 provides no guidance on when to use this tool versus alternatives such as sophos_dns_get_custom_domain, sophos_dns_create_custom_domain, or sophos_dns_update_custom_domain. There is no mention of prerequisites, filtering, or pagination limits.

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

sophos_dns_list_locationsA
Read-only

List all DNS Protection locations for a tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFilter locations by exact name
pageNoPage number, starting with 1
sortNoSort field (e.g. name, createdAt)
typeNoFilter by location type
page_sizeNoResults per page
tenant_idYesTenant UUID
is_defaultNoFilter by whether the location is the default
page_totalNoWhether to calculate and return total page count
domain_namesNoFilter locations associated with this domain name
name_containsNoFilter locations whose name contains this substring
ip_addresses_containsNoFilter locations containing this IP address

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false. The description adds context that it's 'for a tenant' but doesn't disclose pagination or filtering behavior beyond what annotations provide. No contradictions.

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 extraneous information. Every word 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?

With 11 parameters, no output schema, and annotations present, the description is minimal but adequate. It doesn't mention that filtering or pagination is possible, but the schema covers that. For a simple list tool, it is reasonably 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 each parameter is already documented. The tool description adds no additional meaning beyond what the schema provides. 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 clearly states the verb 'list' and the resource 'DNS Protection locations' for a tenant. It distinguishes from sibling tools like sophos_dns_get_location, sophos_dns_create_location, etc. (specific verb+resource).

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 it's for listing locations, but provides no explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned, though context from sibling tools makes it discernible.

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

sophos_dns_list_policiesB
Read-only

List all DNS Protection policies for a tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFilter by exact policy name
pageNoPage number, starting with 1
sortNoSort field (e.g. name, createdAt)
page_sizeNoResults per page
tenant_idYesTenant UUID
page_totalNoWhether to return total page count
name_containsNoFilter by name substring

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds no behavioral details such as pagination, filtering, or sorting capabilities, which are present 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.

Conciseness4/5

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

The description is extremely concise with one sentence and no unnecessary words. However, it could be structured to include more useful information without sacrificing brevity.

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

Completeness2/5

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

Given the tool has 7 parameters and no output schema, the description is too minimal. It does not mention that the tool supports pagination, sorting, or filtering, leaving the agent with insufficient context for correct usage.

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% with all parameters described. The description does not add any meaning beyond what the schema provides, so 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 clearly states the verb 'List' and the resource 'DNS Protection policies' with the scope 'for a tenant'. It distinguishes from siblings like 'sophos_dns_get_policy' by implying 'all' policies.

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 when to use (to list all policies for a tenant) but provides no explicit guidance on when not to use this tool or mention of alternatives like 'sophos_dns_get_policy' for a single policy.

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

sophos_dns_update_custom_domainB

Update a custom domain list (name, description, or domains).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoUpdated list name
domainsNoUpdated comma-separated domains (full replacement)
tenant_idYesTenant UUID
descriptionNoUpdated description
custom_domain_idYesCustom domain list UUID

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already indicate mutation (readOnlyHint=false) and non-destructive nature (destructiveHint=false). The description adds no extra behavioral context beyond what the schema provides, e.g., no mention of full replacement of domains or other side effects.

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 extremely concise (one sentence, nine words). While efficient, it lacks structure; a slightly more detailed breakdown could improve clarity without losing conciseness.

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

Completeness2/5

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

For a tool with 5 parameters and no output schema, the description is too minimal. It does not explain behavior like full replacement, return type, or idempotency, leaving the agent underinformed.

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 baseline is 3. The description lists three of five parameters (name, description, domains) but does not add semantic value beyond the schema 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?

The description clearly states the action (Update), the resource (custom domain list), and the specific fields (name, description, or domains). It distinguishes from sibling tools like create, get, list.

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 on when to use this tool versus alternatives (e.g., create or get custom domain). The description provides no context about prerequisites or use cases.

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

sophos_dns_update_locationA

Update a DNS Protection location. Send an empty array for ip_addresses or domain_names to clear them.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoUpdated name
typeNoUpdated location type
labelNoUpdated label
policy_idNoUpdated policy UUID
tenant_idYesTenant UUID
is_defaultNoUpdated default flag
descriptionNoUpdated description
doh_enabledNoUpdated DoH enabled flag
location_idYesLocation UUID
domain_namesNoUpdated comma-separated domain names (send empty string to clear)
ip_addressesNoUpdated comma-separated IP addresses (send empty string to clear)

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate this is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds value by clarifying the behavior of clearing ip_addresses or domain_names via empty arrays, which is beyond the annotation hints. However, there is a minor inconsistency: the description says 'empty array' while the schema says 'empty string', which could cause confusion.

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 concise, consisting of two short sentences. It is front-loaded with the core purpose and immediately provides a key usage note. Every sentence earns its place with no fluff.

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

Completeness3/5

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

For a tool with 11 parameters and no output schema, the description could provide more context about prerequisites (e.g., tenant_id must exist) or the effect of the update (e.g., returns the updated location). The given description is adequate but missing some completeness that would help an agent understand the full scope.

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 11 parameters with 100% description coverage, so the schema already explains each parameter. The description only reiterates the clearing behavior already noted in schema descriptions for ip_addresses and domain_names. Thus, the description adds marginal semantic value beyond the schema.

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 updates a DNS Protection location, with the specific verb 'Update' and resource 'DNS Protection location'. It distinguishes from sibling tools like sophos_dns_create_location and sophos_dns_get_location by focusing on updates, and adds a valuable usage note about clearing fields with empty arrays.

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 updating a location and provides a specific instruction for clearing fields, but it does not explicitly state when to use this tool versus alternatives like creating or getting a location. No exclusions or alternative tool names are mentioned.

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

sophos_dns_update_policyA

Update a DNS Protection policy. For array fields (locationIds, allowedCustomDomainIds, etc.) send a full replacement array, null to clear, or an add/remove object.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoUpdated policy name
policy_idYesDNS policy UUID
tenant_idYesTenant UUID
descriptionNoUpdated description
location_idsNoJSON array of location UUIDs (full replacement), or comma-separated for convenience
custom_domains_enabledNoEnable/disable allowed/blocked custom domain lists
rejected_web_categoriesNoJSON array of rejected web categories (full replacement)
allowed_custom_domain_idsNoComma-separated allowed custom domain list UUIDs (full replacement)
blocked_custom_domain_idsNoComma-separated blocked custom domain list UUIDs (full replacement)
category_group_action_settingsNoJSON object mapping category group identifiers to actions (allow|block|alert|custom)
safe_search_for_youtube_enabledNoEnable/disable SafeSearch for YouTube
safe_search_youtube_restriction_levelNoUpdated YouTube restriction level
safe_search_for_search_engines_enabledNoEnable/disable SafeSearch for search engines

TDQS

A3.8/5.0
Behavior3/5

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

Annotations indicate it's not read-only and not destructive. The description adds the behavioral trait of array field handling (full replacement, null, add/remove). However, it does not clarify whether omitted fields are preserved or if it's a partial update.

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 brief and to the point, with one sentence for purpose and one sentence for array handling. Could be slightly more structured but is concise.

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 the complexity (13 parameters, no output schema), the description is incomplete. It does not describe the return value, whether it's a full or partial update, or any prerequisites beyond schema. The array handling note is helpful but limited.

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 covers 13 parameters with descriptions. The description adds a general note about array field handling (null to clear, add/remove object) that goes beyond individual schema descriptions, providing valuable semantic guidance.

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 'Update a DNS Protection policy', specifying a verb and resource. It distinguishes from sibling tools like 'sophos_dns_create_policy' and 'sophos_dns_get_policy'.

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 does not explicitly state when to use this tool versus alternatives like create or get. It implies usage for modifying existing policies but lacks explicit guidance or exclusions.

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

sophos_download_post_delivery_quarantine_attachmentsA
Read-only

Initiate a download job for attachments from a post-delivery quarantined message. Returns a downloadId for status polling.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
message_idYesPost-delivery quarantine message UUID
attachmentsYesList of attachment filenames to download

TDQS

A4/5.0
Behavior4/5

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

Annotations (readOnlyHint: true, destructiveHint: false) already indicate safety. The description adds the behavioral nuance that the tool returns a downloadId for polling, which is useful extra context. No contradictions with annotations.

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 extremely concise: a single sentence with a clarifying second sentence. It contains no redundant information and is front-loaded with the key action.

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 the tool's complexity (3 required params, no output schema), the description covers the essential: what it does, what it returns (downloadId), and the resource context. It does not mention error conditions or prerequisites, but the schema and annotations fill most 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 coverage is 100%, so all parameters are documented in the input schema. The description does not add any additional semantic meaning beyond what is already in the schema properties.

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 action ('Initiate a download job'), the resource ('attachments from a post-delivery quarantined message'), and the output ('Returns a downloadId for status polling'). It distinguishes from sibling tools like sophos_download_quarantine_attachments and sophos_get_post_delivery_quarantine_download_status by specifying 'post-delivery' and the initiation nature.

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 hints at usage by mentioning 'for status polling', but it does not explicitly name the polling tool (sophos_get_post_delivery_quarantine_download_status) or provide when-to-use/ when-not-to-use guidance. The usage is implied but not fully articulated.

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

sophos_download_quarantine_attachmentsB
Read-only

Initiate a download job for attachments from a pre-delivery quarantined message. Returns a downloadId for status polling.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
message_idYesQuarantine message UUID
attachmentsYesList of attachment filenames to download

TDQS

B3.2/5.0
Behavior1/5

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

The description says 'Initiate a download job,' which implies creating a job (a write operation), but annotations declare readOnlyHint: true. This is a direct contradiction. The description does not resolve this inconsistency and provides little additional behavioral context.

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 of 13 words, directly stating the action and output with no unnecessary information. It is optimally concise.

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

Completeness2/5

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

Given the tool has 3 required parameters and no output schema, the description is too minimal. It does not explain how to obtain the attachments list, or that the downloadId should be used with sophos_get_quarantine_download_status. The contradiction with annotations further reduces 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 coverage is 100% and all parameters are described in the schema. The description adds no extra meaning beyond what the schema already provides, meeting the baseline score.

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 action (initiate a download job), the resource (attachments from a pre-delivery quarantined message), and the return value (downloadId for polling). It distinguishes from sibling tools like sophos_list_quarantine_attachments and sophos_get_quarantine_download_status.

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?

Description implies using this tool to start a download and then poll with the returned downloadId, but does not explicitly state prerequisites (e.g., needing a tenant_id and message_id from other tools) or when to use this vs alternatives like sophos_download_post_delivery_quarantine_attachments.

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

sophos_export_xdr_query_resultsA
Read-only

Export the full results of a completed XDR query run. Returns a download URL or streamed content for bulk result export.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesQuery run UUID to export results for
tenant_idYesTenant UUID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false. The description adds context about returning a download URL or streamed content, but does not disclose additional behavioral traits beyond what annotations provide.

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 (18 words), front-loaded with the main action and output. Every word adds value, with no extraneous 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?

Given no output schema, the description mentions the output format (download URL or streamed content) and requirement of a completed query run. It is sufficient for a simple export tool, though missing file format or size limits.

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 parameters have descriptions). The description does not add any parameter-level information 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.

Purpose5/5

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

The description clearly states the action ('Export'), the resource ('full results of a completed XDR query run'), and the output ('download URL or streamed content'). It distinguishes itself from sibling tools like sophos_get_xdr_query_results by specifying bulk/full export.

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 when to use this tool (after a query run is completed), but does not explicitly mention when not to use it or compare it to alternatives like sophos_get_xdr_query_results for paginated results.

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

sophos_get_account_healthA
Read-only

Get account health check report for a tenant. Shows protection coverage, policy compliance, and configuration issues across endpoints and network devices.

ParametersJSON Schema
NameRequiredDescriptionDefault
checksNoSpecific health checks to run (omit to run all checks)
productsNoFilter account health check by product (omit for all products)
tenant_idYesTenant UUID

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate read-only and non-destructive behavior. The description adds value by specifying what the report includes (protection coverage, policy compliance, configuration issues), providing context beyond annotations.

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, front-loaded with key purpose, no extraneous text. Every sentence 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?

Given no output schema, the description covers the report contents adequately for a read-only tool with good annotations. Could mention return format but not essential.

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 baseline is 3. The description does not add additional meaning beyond the schema descriptions for tenant_id, checks, and products. No extra context provided.

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 account health report for a tenant, detailing protection coverage, policy compliance, and configuration issues. It uses specific verbs and resource, distinguishing it from siblings like sophos_get_health_scores_history.

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?

While the description implies usage for getting current health status, it does not explicitly state when to use vs alternatives like historical health scores or snoozing checks. No prerequisites or exclusions mentioned.

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

sophos_get_alertA
Read-only

Get the full details of a specific alert by ID, including its allowedActions list.

ParametersJSON Schema
NameRequiredDescriptionDefault
alert_idYesThe unique alert ID to retrieve
tenant_idYesThe tenant ID the alert belongs to

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is clear. The description adds value by specifying that it returns 'full details' and includes 'allowedActions list', giving the agent more insight into the output without repeating annotation info.

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 immediately conveys the tool's purpose. No unnecessary words or 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 read-only get tool with complete schema descriptions and safety annotations, the description covers the essential purpose and a notable output field. It could mention prerequisites or related tools for full completeness, but it is adequate.

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% with clear descriptions for both parameters. The description does not add additional parameter-level 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.

Purpose5/5

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

The description clearly states the action ('Get the full details of a specific alert by ID') and highlights a key output field ('allowedActions list'), distinguishing it from sibling tools like list_alerts. It uses a specific verb and resource.

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 have an alert ID and need full details, but it does not explicitly contrast with alternatives like list_alerts or search_alerts. No when-not-to-use or alternative guidance is provided.

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

sophos_get_allowed_itemA
Read-only

Get details for a specific globally allowed item.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
allowed_item_idYesAllowed item UUID

TDQS

A3.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds no additional behavioral context such as error scenarios, permission requirements, or data freshness. It fails to leverage the opportunity to enrich beyond annotations.

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, concise sentence with no unnecessary words. It is well-structured and front-loaded with the key action.

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 2-parameter getter with comprehensive annotations and no output schema, the description is sufficient. It covers the essential purpose, but could be slightly improved by explaining what 'globally allowed item' means.

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% with descriptions for both parameters ('Tenant UUID' and 'Allowed item UUID'). The description does not add any extra meaning or context beyond what the schema provides.

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 'Get', the resource 'globally allowed item', and 'specific' indicating retrieval of a single item. It distinguishes from sibling tools like sophos_list_allowed_items (list) and sophos_create_allowed_item (create).

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 use after listing items, but does not explicitly state when to use this tool versus alternatives, nor does it provide prerequisites or exclusions. Usage context is only implied.

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

sophos_get_audit_eventA
Read-only

Get the full details of a specific audit event by its ID, including the actor, action performed, affected resource, and timestamp.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYesAudit event UUID to retrieve
tenant_idYesTenant UUID

TDQS

A4/5.0
Behavior4/5

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

Annotations already provide read-only and non-destructive hints. Description adds useful detail about returned fields (actor, action, resource, timestamp). No contradictions.

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?

Single sentence, 20 words, no fluff. Perfectly concise while conveying operation and output.

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 read tool with two required params and no output schema, description adequately lists returned fields. Missing potential error conditions or prerequisites.

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 covers both parameters with descriptions. Tool description adds 'by its ID' for event_id but doesn't explain tenant_id's purpose beyond schema.

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?

Description clearly states retrieving full details of a specific audit event by ID, listing key fields (actor, action, resource, timestamp). Distinct from sibling list_audit_events and other event 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?

No explicit when-to-use or when-not-to-use guidance. Implies use when event ID is known, but no mention of alternatives like list_audit_events for browsing.

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

sophos_get_blocked_itemA
Read-only

Get details for a specific globally blocked item.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
blocked_item_idYesBlocked item UUID

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already provide readOnlyHint and destructiveHint, so the description does not need to repeat them. It adds no additional behavioral context beyond what annotations cover, which is acceptable. No contradiction.

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?

Single sentence of 8 words, no unnecessary information. Efficiently conveys the tool's purpose.

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 the simplicity of the tool (get by ID), annotations are present, and no output schema exists, the description adequately covers the essentials. Could mention that it returns full blocked item details, but not critical.

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 baseline 3. The description does not add any meaning beyond the schema's parameter descriptions. It doesn't explain where to obtain tenant_id or blocked_item_id.

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 action (get details) and the target (specific globally blocked item). It distinguishes itself from sibling tools like sophos_list_blocked_items (which lists all) and sophos_create_blocked_item (which creates).

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 on when to use this tool or alternatives. It doesn't mention prerequisites like needing a blocked_item_id from a list operation, nor does it contrast with other get tools.

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

sophos_get_caseA
Read-only

Get full details for a specific case/investigation by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
case_idYesCase UUID
tenant_idYesTenant UUID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds minimal behavioral context beyond 'Get full details'. It does not disclose any additional traits like required permissions or rate limits, but it aligns with annotations.

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, clear sentence with no redundant words. It is efficiently front-loaded with the key purpose.

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 the simplicity of the tool (2 params, no output schema, annotations present), the description is adequate. It could mention that the operation requires tenant_id and case_id, but that is already in the schema. It is otherwise complete for a basic get operation.

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 covers both parameters with descriptions (100% coverage). The description adds no extra meaning beyond what the schema provides, so 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 clearly states the verb 'Get', the resource 'case/investigation', and the method 'by ID', distinguishing it from siblings like sophos_list_cases and sophos_create_case.

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?

Usage context is implied by the description and name, but there is no explicit guidance on when to use this tool over alternatives. It does not mention when not to use it or provide alternative tools for listing cases.

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

sophos_get_case_detectionA
Read-only

Get a specific detection within a case by detection ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
case_idYesCase UUID
tenant_idYesTenant UUID
detection_idYesDetection UUID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the agent knows it's a safe read operation. The description adds no further behavioral context (e.g., error handling, authorization, or result format). Given the annotation coverage, a score of 3 is appropriate.

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 of 12 words, perfectly concise and front-loaded with the verb 'Get'. Every word is necessary, and there is no wasted 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 get-by-ID tool with no output schema, the description is mostly adequate. It could be improved by hinting at the response structure (e.g., 'Returns detection details'), but given the low complexity, it is sufficiently 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?

The input schema provides full descriptions for all three parameters (tenant_id, case_id, detection_id) with 100% coverage. The description does not add meaning beyond the schema, so the baseline score 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 clearly states 'Get a specific detection within a case by detection ID,' using a specific verb and resource, and it distinguishes from siblings like sophos_list_case_detections (which lists detections) and sophos_get_case (which retrieves a case).

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

Usage Guidelines3/5

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

The description implies the tool is for retrieving a specific detection, but it does not explicitly state when to use it over alternatives or mention any exclusions. The agent can infer its purpose from the name and sibling context, but the description lacks explicit guidance.

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

sophos_get_case_impacted_entitiesA
Read-only

Get impacted entities (endpoints, users, etc.) associated with a case.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExact match search for entity name
pageNoPage number (1-based)
sortNoSort column e.g. 'type:asc'
typeNoExact match search for entity type
case_idYesCase UUID
entity_idNoExact match search for entity ID
page_sizeNoResults per page
tenant_idYesTenant UUID

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds minimal behavioral context beyond the annotations, only stating the core function. No contradictions, but no extra insight into pagination, filtering, or result structure.

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, efficient sentence (12 words) that front-loads the purpose. No verbose or redundant content.

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 8 parameters, no output schema, and annotations already covering safety, the description is minimal. It does not explain the return format, pagination behavior, or clarify 'impacted entities'. However, schema descriptions and annotations compensate somewhat, leaving moderate 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 all 8 parameters are documented in the schema. The tool description adds no additional meaning beyond the schema. Baseline 3 is appropriate as 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 tool retrieves impacted entities (endpoints, users, etc.) for a specific case. It uses a specific verb 'Get' and resource 'impacted entities... associated with a case', distinguishing it from related tools like sophos_get_case or sophos_list_case_detections.

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 provides no guidance on when to use this tool versus alternatives (e.g., when to use list_case_detections instead). It does not mention prerequisites or context for usage, leaving the agent to infer from the tool name and sibling list.

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

sophos_get_case_mitre_summaryA
Read-only

Get the MITRE ATT&CK framework summary for a case — tactics and techniques observed across all associated detections.

ParametersJSON Schema
NameRequiredDescriptionDefault
case_idYesCase UUID
tenant_idYesTenant UUID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate readOnly (true) and destructiveHint (false). The description adds context about the output but does not elaborate on other behavioral aspects. No contradiction with annotations.

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?

Single clear sentence with verb 'get', resource 'MITRE ATT&CK framework summary', and context 'for a case'. Front-loaded and no unnecessary 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?

With 2 required parameters and no output schema, the description is largely sufficient. Minor gap: does not mention return format, but the purpose is clear. Slightly more detail on the structure 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 covers 100% of parameters with descriptions (case_id and tenant_id). The tool description does not add additional parameter semantics beyond the schema, meeting 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 clearly states the tool retrieves the MITRE ATT&CK framework summary for a case, specifically tactics and techniques from detections. It distinguishes from sibling tools like 'sophos_get_case' and 'sophos_list_case_detections'.

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 obtaining MITRE summaries but lacks explicit guidance on when to use this tool versus alternatives like 'sophos_get_case' or 'sophos_list_case_detections'. No exclusions or conditions are mentioned.

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

sophos_get_cloud_security_profileA
Read-only

Get details of a specific cloud security runtime detection profile, including its override settings (rules and lists). Optionally retrieve a specific version of the profile.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoSpecific profile version to retrieve. Omit to get the latest version.
tenant_idYesTenant UUID
profile_idYesRuntime detection profile UUID

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it's safe. The description adds valuable context by specifying what details are included (override settings) and the optional version parameter, without contradicting annotations.

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 clear, front-loaded sentences with no redundancy. First sentence states main purpose and content, second adds the optional version feature. Every word is useful.

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 no output schema, the description adequately explains what is returned (details with override settings) and the optional version. It covers the key behavioral aspects for a retrieval operation, though it could mention the full profile structure for completeness.

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% with descriptions for all 3 parameters. The description adds meaning beyond the schema by explaining that the return includes 'override settings (rules and lists)', providing context for the profile content, which is not in the schema.

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 'Get' and the resource 'cloud security runtime detection profile', including specific details like 'override settings (rules and lists)'. It distinguishes from sibling tools by specifying 'specific' and optional version retrieval, contrasting with listing or creating profiles.

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 a specific profile ID is known and details are needed, but does not explicitly state when to use this tool over alternatives (e.g., when to list vs get, or prerequisites). No exclusions or alternative tool names are mentioned.

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

sophos_get_detected_exploitA
Read-only

Get details for a specific detected exploit event.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
detected_exploit_idYesDetected exploit UUID

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds minimal behavioral context beyond the name, but does not contradict annotations.

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, concise sentence that is front-loaded with the key action. No unnecessary 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?

No output schema exists, and the description does not specify what 'details' are returned. While the resource name suggests a standard structure, more detail would improve completeness for an agent.

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% with clear descriptions for both parameters ('Tenant UUID', 'Detected exploit UUID'). The description does not add further meaning beyond the schema.

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 ('detected exploit event'), clearly indicating it retrieves details for a single event. It distinguishes from sibling tool `sophos_list_detected_exploits` which lists all events.

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 alternatives (e.g., listing vs. getting details). The agent must infer from the name and parameters alone.

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

sophos_get_detection_countsA
Read-only

Get detection counts grouped by severity and type over a time range. Returns per-hour or per-day buckets.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoComma-separated detection types (e.g. 'threat,process,vulnerability')
sourceNoSensor source to filter on (e.g. 'Sophos')
to_dateNoEnd of time range (ISO 8601)
severityNoComma-separated severity scores to filter on
usernameNoFilter by username
from_dateNoStart of time range (ISO 8601)
tenant_idYesTenant UUID
resolutionNoBucket resolution: 'hour' or 'day'
entity_typeNoFilter by entity type (e.g. 'computer', 'server')
detection_ruleNoFilter by a specific detection rule ID
show_suppressedNoIf true, include suppressed detections
device_name_containsNoFilter by partial device hostname

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already mark the tool as readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds the behavioral detail that results are grouped into per-hour or per-day buckets, which is useful but not extensive. Missing details like pagination, limits, or data staleness.

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 long, front-loaded with the action and key details. Every word is essential; no waste. It efficiently communicates the core functionality.

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 12 inputs and no output schema, the description is somewhat sparse. It doesn't explain the return format beyond 'grouped by severity and type', nor does it mention limits or use cases. For a tool with many filters, more context (e.g., typical usage for dashboards vs. raw queries) 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 schema already provides detailed descriptions for all 12 parameters. The tool description adds high-level context about time range and resolution but does not substantially enhance understanding of individual parameters. 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 clearly states 'Get detection counts grouped by severity and type over a time range', specifying the verb (get), resource (detection counts), and key dimensions (severity, type, time range). It also mentions the output format (per-hour or per-day buckets). This clearly distinguishes it from sibling tools that either fetch raw detection data or perform other operations.

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 does not provide any guidance on when to use this tool versus alternatives. There are many sibling tools like sophos_get_detections_query_results or sophos_get_detections_group_results that also deal with detections, but no differentiation is provided. No exclusions or prerequisites are mentioned.

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

sophos_get_detections_group_query_statusA
Read-only

Get the status of a running detection-groups query. Poll until status is 'finished'.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesDetection-groups query run ID returned by sophos_start_detections_group_query
tenant_idYesTenant UUID

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds that the tool is for polling and status checking, which aligns without contradiction. No additional behavioral traits are disclosed beyond what annotations provide.

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?

Single sentence front-loaded with purpose and polling instruction. No unnecessary words. Every part 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?

For a status polling tool with no output schema, the description is adequate but lacks details on return format or response fields. Could be improved by noting what status values are possible.

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% with descriptions for both parameters. The description does not add any new parameter details beyond what the schema provides, so 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 clearly states the verb 'Get' and the resource 'status of a running detection-groups query'. It distinguishes from sibling tools like sophos_get_detections_query_status by specifying 'group query'. The polling instruction adds clarity.

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

Usage Guidelines4/5

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

The description explicitly says 'Poll until status is finished', which guides the agent to call repeatedly. It does not mention when not to use or alternatives, but the polling pattern is clear.

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

sophos_get_detections_group_resultsA
Read-only

Get results of a completed detection-groups query. Each item represents a group of similar detections with a count, detection rule, MITRE ATT&CK tags, and device info.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based, default 1)
run_idYesDetection-groups query run ID
page_sizeNoNumber of results per page (default 50, max 2000)
tenant_idYesTenant UUID

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description's role is minor. It adds context about the return structure (grouped detections with specific fields) but does not disclose any additional behavioral traits (e.g., rate limits, potential emptiness). No contradiction with annotations.

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, succinctly covering purpose and return content. It is front-loaded and contains no extraneous 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?

Given the absence of an output schema, the description adequately summarizes the return structure (count, rule, MITRE tags, device info). However, it omits details about pagination (page and page_size parameters) and potential error conditions, which are important for a retrieval tool.

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% with all parameters documented. The description does not add parameter-level meaning beyond what the schema provides, so a 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 clearly states the tool gets results of a completed detection-groups query and specifies the content of each item (count, detection rule, MITRE tags, device info). This is specific and distinct from sibling tools like status checks or query initiators.

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 does not provide guidance on when to use this tool versus alternatives. For example, it does not mention that it should be used after starting a query and checking status, nor does it indicate prerequisites like a successful group query. The agent must infer the workflow 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.

sophos_get_detections_query_resultsA
Read-only

Get results of a completed detections query. Only call after sophos_get_detections_query_status returns status='finished'.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based, default 1)
run_idYesDetections query run ID
page_sizeNoNumber of results per page (default 50, max 2000)
tenant_idYesTenant UUID

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description only needs to add non-obvious behavioral context. It adds the necessary condition that the query must be completed before calling, which is useful and not captured in structured fields. No contradictions with annotations.

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 extremely concise with two short sentences. The key information is front-loaded: purpose first, then usage condition. Every sentence adds value 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?

Given the tool's simple role in a polling workflow, the description is complete enough. It covers what it does and when to call it. No output schema exists, but the return type is implicit (query results). The sibling list is large, but the description clearly positions this tool within the detection query sequence.

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% for 4 parameters, so the description does not need to add parameter details. The description adds no parameter-specific information beyond what the schema provides, meeting the baseline expectation.

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 gets results of a completed detections query, with a specific verb (Get) and resource (results of a detections query). It implicitly distinguishes from sibling tools like sophos_start_detections_query and sophos_get_detections_query_status by focusing on retrieving results after completion.

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 specifies when to use this tool: 'Only call after sophos_get_detections_query_status returns status="finished".' This is a clear precondition that guides the agent to invoke it only at the correct step in the workflow, distinguishing it from other query-related tools.

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

sophos_get_detections_query_statusA
Read-only

Get the status of a running detections query. Poll until status is 'finished'. Result will be 'succeeded' or 'failed'.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesDetections query run ID returned by sophos_start_detections_query
tenant_idYesTenant UUID

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description's addition of polling semantics and result states ('succeeded' or 'failed') adds value beyond the structural metadata.

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

Conciseness5/5

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

Two sentences with no wasted words. The critical information (polling, result states) is front-loaded and directly actionable.

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?

Despite no output schema, the description clearly explains the expected result (succeeded/failed) and the polling behavior. Given the tool's simplicity and sibling context, it is 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 coverage is 100% with adequate descriptions for both parameters. The description does not add further meaning beyond what the schema already provides, so 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?

Clearly states the action (get status) and the resource (running detections query). Differentiates from siblings like sophos_start_detections_query and sophos_get_detections_query_results.

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?

Explicitly instructs to poll until status is 'finished', providing clear usage context. Does not include exclusions or alternatives, but the polling guidance is sufficient for correct invocation.

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

sophos_get_endpoint_groupA
Read-only

Get details of a specific endpoint group, including its name, description, type, and endpoint count.

ParametersJSON Schema
NameRequiredDescriptionDefault
group_idYesEndpoint group ID to retrieve
tenant_idYesTarget tenant ID

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, destructiveHint=false, and openWorldHint=true. Description adds that the tool returns specific fields, which is minimal added value. No contradictions. Lacks details on authentication or rate limits but annotations cover safety.

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?

Single sentence of 16 words, front-loaded with purpose. No unnecessary words or redundancy. Highly concise 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 simple get-by-ID tool with 2 parameters and no output schema, the description is adequate. It lists the key fields returned. Could mention that output is a single object, but not necessary given context.

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 descriptions for 'group_id' and 'tenant_id' are already in schema. Description does not add additional meaning beyond what schema provides, so 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?

Description clearly states the tool 'Get details of a specific endpoint group' with specific resources (group_id) and output fields (name, description, type, endpoint count). It easily distinguishes from sibling tools like sophos_create_endpoint_group or sophos_list_endpoints.

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 on when to use this tool versus alternatives. For example, it does not mention that this tool retrieves a single group by ID, while sophos_list_endpoints might list all endpoints. No when/when-not criteria.

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

sophos_get_exclusionA
Read-only

Get details for a specific global scanning exclusion.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
exclusion_idYesExclusion UUID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate read-only (readOnlyHint=true) and non-destructive (destructiveHint=false) behavior. The description adds that it gets details for a specific global scanning exclusion, but does not disclose any additional behavioral traits beyond what annotations provide.

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 unnecessary words, efficiently conveying the tool's purpose. It is well-suited for quick scanning.

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 the tool's low complexity (two required parameters, no output schema), the description is sufficient. It does not describe the return format, but for a simple get operation this is acceptable.

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 having clear descriptions ('Tenant UUID', 'Exclusion UUID'). The tool description adds no further meaning, so a 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 'Get' and resource 'details for a specific global scanning exclusion', clearly distinguishing it from sibling tools like sophos_list_exclusions (list all) and sophos_create_exclusion (create).

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?

While the purpose is clear, the description does not explicitly state when to use this tool versus alternatives, such as when a specific exclusion ID is known versus listing all exclusions. No exclusions or alternatives are mentioned.

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

sophos_get_exploit_mitigation_appA
Read-only

Get details for a specific exploit mitigation application, including its protection settings.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
application_idYesExploit mitigation application UUID

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds that the tool returns 'protection settings', providing insight into the output content. No contradictions with annotations.

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 of 12 words, with no redundant or unnecessary information. It is front-loaded with the key action and resource, and every word adds value.

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 the tool's simplicity (2 required UUID params), the schema covers parameters, annotations cover safety, and no output schema exists. The description mentions 'including its protection settings', which hints at output fields. While it could explicitly list possible fields, it is sufficient for a basic get operation.

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 does not add new meaning beyond the schema's parameter descriptions, which already specify 'Tenant UUID' and 'Exploit mitigation application UUID'. No extra semantic detail is provided.

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 'Get details for a specific exploit mitigation application', specifying the verb 'get' and resource 'exploit mitigation application'. It distinguishes from sibling tools like list, create, and update by focusing on a single application retrieval.

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 use when a specific application ID is known, but does not explicitly state when to use this tool over alternatives like 'sophos_list_exploit_mitigation_apps' or mention when not to use it. No usage context or prerequisites are given.

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

sophos_get_firewall_groupA
Read-only

Get details for a specific firewall group.

ParametersJSON Schema
NameRequiredDescriptionDefault
group_idYesFirewall group UUID
tenant_idYesTenant UUID

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare `readOnlyHint=true` and `destructiveHint=false`, signaling a safe read operation. The description adds no extra behavioral detail (e.g., what happens if the group_id is invalid, or confirmation that data remains unchanged). With annotations covering the safety profile, a 3 is appropriate.

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, efficient sentence with no wasted words. It is front-loaded and concise.

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 retrieval tool with full annotation coverage and fully described parameters, the description is mostly complete. It does not mention return values, but no output schema exists, and the agent can infer typical structure. A minor gap is lack of context on what 'details' encompasses.

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%, with both `group_id` and `tenant_id` having descriptions. The description adds no additional meaning beyond the schema. Baseline 3 is correct.

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 is clear and specific: 'Get details for a specific firewall group.' It uses a strong verb 'Get' and identifies the resource uniquely. It distinguishes well from sibling tools like `sophos_list_firewall_groups` (list all) and `sophos_create_firewall_group` (create).

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 on when to use this tool vs alternatives (e.g., `sophos_list_firewall_groups`) is provided. There are no prerequisites mentioned, such as needing the group_id beforehand. The description lacks contextual usage advice.

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

sophos_get_firewall_group_sync_statusB

Get the synchronisation status of firewalls in a firewall group.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, starting with 1
group_idYesFirewall group UUID
page_sizeNoNumber of results per page
tenant_idYesTenant UUID
page_totalNoWhether to return the total number of pages
firewall_idsNoComma-separated firewall UUIDs to filter results

TDQS

B3/5.0
Behavior1/5

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

Annotations declare readOnlyHint=false (implying potential mutation) but description says 'Get', which suggests a read-only operation. This contradiction confuses the agent about the tool's side effects. No further behavioral details are provided.

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?

Single sentence with no filler words; perfectly concise and front-loaded.

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 6 parameters and no output schema, the description should provide context on what the status contains or how to interpret results. It only states the basic purpose, leaving the agent guessing about return format and usage nuances.

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 parameters are documented enough. The description does not add extra meaning 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.

Purpose5/5

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

The description uses specific verb 'Get' and resource 'synchronisation status of firewalls in a firewall group', clearly distinguishing from sibling tools like sophos_list_firewalls or sophos_get_firewall_group.

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 on when to use this tool vs. alternatives, no prerequisites, and no context about typical use cases. The description assumes the agent already knows when to retrieve sync status.

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

sophos_get_firewall_licensesA
Read-only

Get firewalls and their licenses for a Sophos Central tenant or partner. Provide either tenant_id (for tenant context) or partner_id (for partner context), but not both.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number to fetch, starting at 1 (default: 1)
sortNoSort column, optionally with direction — format: 'columnName' or 'columnName:asc' / 'columnName:desc'
page_sizeNoNumber of results per page (default: 50)
tenant_idNoTenant UUID — provide this for a tenant context (X-Tenant-ID). Required if partner_id is not provided.
page_totalNoWhen true, include total page count and item count in the response (default: false)
partner_idNoPartner UUID — provide this for a partner context (X-Partner-ID). Required if tenant_id is not provided.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's value is limited to adding the tenant/partner context requirement. It does not disclose additional behavioral traits such as pagination behavior or response format, which would be helpful.

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 concise sentences with no extraneous information. The purpose is front-loaded, and the usage constraint is clearly stated in the second sentence.

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 essential contextual requirement of distinguishing between tenant and partner contexts. However, it does not describe the return structure or license details, which could be inferred from the tool name but lacks explicit documentation.

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 baseline is 3. The tool description does not add any extra meaning beyond what the schema already provides for each parameter. It only reiterates the mutually exclusive requirement for tenant_id and partner_id.

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 'Get' and the resource 'firewalls and their licenses'. It specifies the scope 'for a Sophos Central tenant or partner', which distinguishes it from other firewall-related sibling tools that do not focus on licenses.

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

Usage Guidelines4/5

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

The description provides clear guidance on when to use tenant_id vs partner_id and states that they are mutually exclusive. However, it does not explicitly mention when not to use the tool or suggest alternatives for obtaining the required IDs.

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

sophos_get_firewall_transactionA
Read-only

Poll the status/result of an asynchronous firewall-config operation (e.g. MDR threat-feed retrieval). Use the transactionId returned by the originating call.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoComma-separated field names to include in the response
tenant_idYesTenant UUID
firewall_idYesFirewall UUID
transaction_idYesTransaction UUID returned by the async operation

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readonly and non-destructive. Description adds the behavioral trait of polling an async operation, which is valuable context beyond the annotations. No contradiction.

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, front-loaded with purpose, no wasted words. Each sentence 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 polling tool with good annotations and full schema coverage, the description covers the essential context. Could mention what the result includes but is still sufficient.

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 baseline is 3. Description reinforces the transaction_id parameter's origin but adds no new meaning for other parameters. Adequate but not enhancing.

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?

Clearly states the verb 'poll' and the resource 'status/result of an asynchronous firewall-config operation', with an example (MDR threat-feed retrieval). Distinguishes from siblings by focusing on async polling of a transaction.

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?

Explicitly says 'Use the transactionId returned by the originating call', providing context for when to use this tool. No exclusions or direct comparisons to siblings, but the usage context is clear.

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

sophos_get_forensic_log_statusA
Read-only

Get the status of a forensic log collection request previously initiated with sophos_request_forensic_logs.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
endpoint_idYesEndpoint UUID
forensic_log_request_idYesForensic log request ID returned by the initial collection request

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, so the description's addition of 'status' is consistent but not expansive. It does not disclose behaviors like whether the status is pollable, what happens if the request ID is invalid, or typical status transitions. No contradiction with annotations.

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 that conveys the core purpose without extraneous information. It is perfectly concise and front-loaded.

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 the tool is a simple status check with 3 parameters and no output schema, the description is minimally adequate. However, it lacks information on expected status values, potential errors, and typical usage patterns (e.g., calling repeatedly), which 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 coverage is 100% with descriptions for each parameter. The description does not add extra meaning beyond the param names and schema descriptions. The reference to the initial request ID is already in the schema.

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 the status of a forensic log collection request. It specifies the prerequisite action (initiated with sophos_request_forensic_logs), distinguishing it from sibling status tools like sophos_get_memory_dump_status.

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 implicitly indicates the tool should be used after initiating a forensic log request, but it lacks explicit guidance on when not to use it or alternatives. No mention of polling frequency, error handling, or prerequisites beyond the initial request.

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

sophos_get_global_tamper_protectionA
Read-only

Get the global tamper protection on/off switch for a tenant. For per-endpoint tamper protection passwords, use sophos_get_tamper_protection.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's role is light. It adds that this is a global on/off switch, which is useful context. No further behavioral details (e.g., authentication needs, rate limits) are provided, but the annotation coverage is adequate.

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, no unnecessary words. The first sentence states the action and scope, the second provides the sibling alternative. Front-loaded with the verb and noun. Every sentence 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 read-only tool with a single parameter and full annotation coverage, the description is complete enough. It effectively explains what the tool does and how it differs from a similar tool. Minor omission: no mention of the return value or any response structure, but the simplicity of the operation makes this acceptable.

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 with a single required parameter 'tenant_id' described as 'Tenant UUID'. The description merely rephrases this as 'for a tenant', adding no new semantic value. Baseline of 3 is appropriate given schema coverage is high.

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?

Description clearly states the tool retrieves the global tamper protection on/off switch for a tenant. It distinguishes itself from the sibling tool sophos_get_tamper_protection, which handles per-endpoint passwords. The verb 'get' and resource 'global tamper protection' are specific and unambiguous.

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

Usage Guidelines4/5

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

The description explicitly directs users to sophos_get_tamper_protection for per-endpoint passwords, providing clear context for when to use this tool versus its sibling. However, it does not mention any prerequisites or when not to use it, slightly limiting guidance.

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

sophos_get_health_scores_historyA
Read-only

Get historical account health check scores for a tenant to track improvement over time.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateNoEnd date (ISO 8601) — the range between startDate and endDate is inclusive
tenant_idYesTenant UUID
start_dateNoStart date (ISO 8601) — the range between startDate and endDate is inclusive

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds context that it retrieves historical data, which is consistent with annotations. No contradictions, but no additional behavioral details beyond what annotations provide.

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, front-loaded sentence with no wasted words. It effectively communicates the purpose, though it could be slightly more structured.

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

Completeness2/5

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

The description lacks detail about return values (no output schema) and does not mention pagination, limits, or error conditions. For a tool with three parameters and historical data, this is insufficient for complete context.

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%; all three parameters have clear descriptions in the input schema. The description does not add additional meaning beyond what is already in 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.

Purpose5/5

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

Description uses a specific verb 'Get' and identifies the resource as 'historical account health check scores for a tenant'. It clearly distinguishes from similar tools like sophos_get_account_health by adding 'historical' and 'to track improvement over time'.

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 tracking improvement over time, but does not explicitly state when to use this tool over alternatives like sophos_get_account_health or sophos_get_regional_health_scores. There is no mention of prerequisites or when not to use.

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

sophos_get_installer_downloadsB
Read-only

Get available Sophos agent installer download links for specified products and platforms.

ParametersJSON Schema
NameRequiredDescriptionDefault
platformsNoComma-separated platforms to include (e.g. 'windows,linux,macos'). All platforms returned if omitted.
tenant_idYesTenant UUID
requested_productsNoComma-separated products to include (e.g. 'coreAgent,endpointProtection'). All products returned if omitted.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false. The description adds that it returns download links, but does not elaborate on response structure or permissions. It is consistent with annotations, so no contradiction.

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-front-loaded sentence that efficiently conveys the tool's purpose without extraneous 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 simple read operation with no output schema, the description adequately covers the purpose and parameter usage. It does not mention response format, but that is acceptable given the tool's simplicity.

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% with parameter descriptions. The description adds no additional meaning beyond what the schema already provides, so baseline score 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 clearly states the verb 'Get' and the resource 'available Sophos agent installer download links'. It specifies filtering by products and platforms, aligning with the schema. However, it does not differentiate from similar sibling tools like sophos_list_downloads or sophos_get_recommended_packages.

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 provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, exclusions, or context for selection among sibling tools with overlapping functionality.

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

sophos_get_ips_exclusionB
Read-only

Get details for a specific IPS exclusion.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
exclusion_idYesIPS exclusion UUID

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds no additional behavioral context (e.g., permissions, rate limits, response format).

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?

Single sentence, front-loaded, no unnecessary 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?

Adequate for a simple get tool with 2 params and no output schema. Could mention how to obtain exclusion_id from list_ips_exclusions, but not essential.

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 covers 100% of parameters with descriptions. Description does not add meaning beyond schema (e.g., source of exclusion_id from list).

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?

Clear verb 'Get' and resource 'details for a specific IPS exclusion'. Distinguishes from siblings like sophos_list_ips_exclusions and sophos_create_ips_exclusion.

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 on when to use this vs alternatives. Sibling tools for listing, creating, updating exclusions exist but no context provided.

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

sophos_get_isolation_exclusionA
Read-only

Get details for a specific isolation exclusion.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
exclusion_idYesIsolation exclusion UUID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's statement 'Get details' is consistent and adds no further behavioral disclosure. No extra context like permissions or response structure is provided, but the annotations sufficiently cover the safety profile.

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?

Single sentence, front-loaded with the verb and object. No redundant information. Efficient and to the point.

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 get operation with two required parameters and no output schema, the description is adequate. It covers the core purpose and relies on the schema for parameter details. Minor improvement could include noting the return of full exclusion details, but not critical.

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?

Input schema has 100% coverage with descriptions for both parameters. The description does not add any additional meaning beyond 'specific isolation exclusion', but the schema already provides clear 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 clearly specifies the verb 'Get' and the resource 'isolation exclusion', distinguishing it from sibling tools like list, create, and update. It is precise and 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?

No explicit when-to-use or when-not-to-use guidance is provided. While the naming among siblings makes the purpose clear, the description does not offer alternative context or prerequisites, which would be helpful for an AI agent.

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

sophos_get_live_query_categoryA
Read-only

Get details for a specific Live Discover query category by its category ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
category_idYesCategory UUID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds limited behavioral context beyond stating that details are retrieved. It provides no additional information about side effects, permissions, or edge cases.

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 conveys the essential information without unnecessary words. It is front-loaded 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?

Given the simplicity of the operation and the presence of the openWorldHint annotation, the description is mostly complete. However, it omits what 'details' means (expected response fields), which could be helpful since 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 coverage is 100% with descriptions for both parameters (tenant_id and category_id). The description adds no extra meaning beyond what the schema already provides, so 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 clearly specifies the verb 'get', the resource 'Live Discover query category', and the required identifier 'by its category ID'. It effectively distinguishes from sibling tools like sophos_list_live_query_categories (which lists all categories) by focusing on retrieving details for a specific category.

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 when to use (when you have a category ID and want details) but does not explicitly state when not to use or mention alternatives. Given the sibling sophos_list_live_query_categories exists for listing, the lack of guidance on choosing between them is a gap.

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

sophos_get_live_query_endpoint_statusesA
Read-only

Get per-endpoint execution status for a Live Discover query run. Shows which endpoints responded, are still running, or failed.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based)
run_idYesQuery run UUID
page_sizeNoNumber of endpoint status entries per page (max 500, default 100)
tenant_idYesTenant UUID
page_totalNoInclude total page/item counts in the response

TDQS

A4/5.0
Behavior4/5

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

Beyond annotations (readOnlyHint: true, openWorldHint: true), the description adds behavioral context by listing possible execution states: responded, still running, or failed. It does not contradict annotations.

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 concise sentences with no wasted words. The purpose is front-loaded and easy to scan.

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 explains what the tool shows (endpoint statuses) and the possible states. It does not mention pagination or required parameters (tenant_id, run_id), but the schema covers these. For a read-only status tool, this is reasonably 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 coverage is 100%, so baseline is 3. The description adds no additional meaning to parameters like page, run_id, or page_size beyond what the schema provides.

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 per-endpoint execution statuses for a Live Discover query run, specifying the resource and action. It effectively distinguishes from sibling tools like sophos_get_live_query_status (overall status) and sophos_get_live_query_results (results).

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 (when needing per-endpoint statuses) but does not explicitly state when to use this tool versus alternatives like sophos_get_live_query_status or sophos_get_live_query_results. No when-not or usage exclusions are provided.

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

sophos_get_live_query_resultsA
Read-only

Retrieve the results of a completed Live Discover query run. Uses key-based pagination: pass the nextKey from the previous response as page_from_key to get the next page.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesThe query run ID to fetch results for
page_sizeNoNumber of result rows per page (max 2000, default 200)
tenant_idYesThe tenant ID the query was run against
page_totalNoWhether to include total page and item counts in the response (default true)
page_from_keyNoPagination key from a previous response (pages.nextKey) to fetch the next page

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the tool's safety profile is clear. The description adds value by disclosing the pagination mechanism ('Uses key-based pagination'), which is a key behavioral trait not covered by annotations. No contradictions.

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 concise sentences: first states purpose, second explains pagination. No unnecessary words. Front-loaded with the primary action.

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 covers purpose and pagination but lacks details about the response structure (no output schema) and prerequisites (e.g., query must be completed). Given the tool's complexity (5 parameters, pagination, no output schema), the description is adequate but has gaps that could hinder an agent.

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% with all parameters described. The description adds minimal parameter-specific information beyond the schema; the pagination note ('pass the nextKey from the previous response as page_from_key') partially reinforces the page_from_key description already present. 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 clearly states the tool's purpose: retrieve results of a completed Live Discover query run. It uses a specific verb ('Retrieve') and resource ('results of a completed Live Discover query run'), distinguishing it from siblings like sophos_get_live_query_status (status only) and sophos_list_live_query_runs (list runs).

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

Usage Guidelines4/5

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

The description explicitly explains key-based pagination ('pass the nextKey from the previous response as page_from_key'), providing clear usage instructions for pagination. However, it does not mention when to use this tool versus siblings like sophos_get_live_query_status (check completion first) or sophos_cancel_live_query_run (if still running).

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

sophos_get_live_query_statusA
Read-only

Check the status of a previously submitted Live Discover query run. Status values: pending | started | finished. Result values: notAvailable | succeeded | failed | timedOut.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesThe query run ID returned by sophos_run_live_query
tenant_idYesThe tenant ID the query was run against

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and destructiveHint, so the safety profile is clear. The description adds value by enumerating status and result values (pending/started/finished, notAvailable/succeeded/failed/timedOut), which helps agents interpret responses.

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 concise sentences that front-load the action and provide essential status/result value enums. No unnecessary words or redundant 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 status-check tool with no output schema, the description provides the expected return values (status and result enums), which is sufficient for basic understanding. It does not mention pagination or timeout details, but those are less critical for a status endpoint.

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 it does not contradict it. A score of 3 is the baseline when schema is sufficient.

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 checks the status of a Live Discover query run. It distinguishes from siblings like sophos_get_live_query_results (which retrieves results) and sophos_cancel_live_query_run, providing unambiguous purpose.

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?

Usage is implied ('previously submitted') but no explicit guidance on when to use this tool versus alternatives like sophos_get_live_query_results or sophos_list_live_query_runs. No 'when not to use' or prerequisites mentioned.

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

sophos_get_mailboxB
Read-only

Get details for a specific mailbox by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
mailbox_idYesMailbox UUID

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare the tool as read-only and non-destructive. The description adds no further behavioral context (e.g., rate limits, auth needs). Since annotations carry the burden, a 3 is appropriate.

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. It is front-loaded with key information, though there is room to add more detail 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?

Given the simplicity of the tool and the presence of annotations, the description is minimally adequate. However, it does not describe the return format or any error cases, making it less complete for a simple read operation.

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% with both parameters having descriptions. The tool description does not add any additional meaning beyond the schema, so 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 clearly states 'Get details for a specific mailbox by ID', using a specific verb and resource. It distinguishes the tool from its sibling 'sophos_list_mailboxes' which lists all mailboxes.

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 alternatives like 'sophos_list_mailboxes' or 'sophos_get_mailbox' (though there is no duplicate). The description lacks context on prerequisites or when to avoid.

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

sophos_get_mdr_threat_feedA
Read-only

Retrieve the MDR threat-feed configuration for a specific firewall. Returns a transactionId — poll sophos_get_firewall_transaction with that ID to retrieve the result.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
firewall_idYesFirewall UUID

TDQS

A3.8/5.0
Behavior4/5

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

The description adds transparency beyond annotations by explaining that the tool returns a transactionId and requires polling sophos_get_firewall_transaction for the actual result. This asynchronous pattern is key behavioral context not conveyed by readOnlyHint and openWorldHint.

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 concise at two sentences, front-loading the main purpose and efficiently stating the follow-up action. Every word adds value with no 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?

Given no output schema, the description sufficiently explains the return value (transactionId) and the next step to retrieve the result. This is adequate for a read-only configuration retrieval, though it doesn't detail the configuration fields. Overall, it provides complete guidance for the interaction pattern.

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 provides 100% coverage with descriptions for each parameter ('Tenant UUID', 'Firewall UUID'). The tool description does not add any additional meaning beyond what the schema already states, so it meets the baseline but provides no extra value.

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 action 'Retrieve' and the specific resource 'MDR threat-feed configuration for a specific firewall'. It also indicates the return type (transactionId) and the follow-up step, distinguishing it from siblings like sophos_create_mdr_threat_feed_indicators or sophos_search_mdr_threat_feed_indicators.

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 does not provide any guidance on when to use this tool versus alternatives. It only mentions the polling requirement after retrieval, but lacks context on prerequisites, when to prefer this tool, or what to avoid.

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

sophos_get_memory_dump_statusA
Read-only

Get the status of a memory dump request previously initiated with sophos_request_memory_dump.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
endpoint_idYesEndpoint UUID
memory_dump_request_idYesMemory dump request ID returned by the initial dump request

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate read-only behavior. The description adds lifecycle context (checking status of previous request), which is useful but doesn't disclose significant behavioral traits beyond what annotations provide.

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 that conveys all necessary information without extraneous words. It is perfectly concise and front-loaded.

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 the tool's simplicity, annotations, and full schema coverage, the description is sufficient. The lack of output schema is acceptable for a status check tool, though details about the response format could slightly 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?

All three parameters have detailed descriptions in the schema itself (100% coverage). The description does not add additional meaning beyond what is already provided in the schema.

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 gets the status of a memory dump request, with a specific verb 'Get' and resource. It distinguishes itself from the sibling 'sophos_request_memory_dump' by referencing it as the initiation step.

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

Usage Guidelines4/5

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

The description implies usage after initiating a request with 'sophos_request_memory_dump'. While it doesn't explicitly list alternatives, the context is clear enough for an agent to infer when to use this tool.

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

sophos_get_migration_jobA
Read-only

Get the status and details of a specific endpoint migration job.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
migration_job_idYesMigration job ID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint true and destructiveHint false, so the description adds no additional behavioral context. It is acceptable given the presence of annotations.

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 that directly conveys the purpose, with no unnecessary words or information. It is highly 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?

The tool is simple with two required parameters and annotations covering safety. The description adequately explains what the tool does, though it omits mention of return values. Still, it is sufficient for a low-complexity tool.

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?

Input schema has 100% coverage with clear descriptions for both parameters (tenant_id and migration_job_id). The description does not add extra parameter info, meeting the baseline for high-coverage schemas.

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 'Get' and the resource 'status and details of a specific endpoint migration job', distinguishing it from sibling tools like sophos_start_migration and sophos_list_migration_endpoints.

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 a specific migration job ID is known, but does not provide explicit when-to-use or when-not-to-use guidance nor mention alternatives. It is adequate for a simple getter.

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

sophos_get_mobile_actionB
Read-only

Get details for a specific MDM action by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
action_idYesAction UUID
tenant_idYesTenant UUID

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description need not repeat safety info. However, the description adds no additional behavioral context (e.g., what details are returned, pagination, error handling, or rate limits). It merely restates the basic function.

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?

Single sentence, fully front-loaded, no wasted words. Efficiently conveys core functionality.

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?

Simple tool with 2 params and no output schema. Description covers purpose but omits output format or behavioral details that would help an agent use the returned data. With no output schema and many sibling tools, more context (e.g., 'returns status, device info') 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 coverage is 100% (both action_id and tenant_id described as UUIDs). Description adds no extra meaning beyond 'by its ID' – does not specify which parameter is the ID or the role of tenant_id. Baseline 3 is appropriate since schema already explains parameters.

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?

Description states 'Get details for a specific MDM action by its ID' – clear verb (Get), resource (details for MDM action), and identification method (by ID). Distinguishes from sibling tools like sophos_mobile_action_sync which perform actions rather than retrieve details.

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 on when to use this tool vs alternatives (e.g., when to use sophos_get_mobile_device vs this tool). No prerequisites or contextual hints provided.

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

sophos_get_mobile_app_groupA
Read-only

Get details for a specific mobile app group by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
app_group_idYesApp group UUID

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false. The description adds no extra behavioral context beyond 'Get details'. No contradiction.

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?

Single, front-loaded sentence with no unnecessary words. Perfectly concise for the tool's simplicity.

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 get-by-ID tool with complete schema descriptions and read-only annotations, the description sufficiently covers purpose and return value (details). No output schema needed.

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 provides full descriptions (100% coverage) for both parameters (Tenant UUID, App group UUID). Description adds no additional meaning beyond schema.

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 'Get' and resource 'details for a specific mobile app group by its ID'. It distinguishes from sibling tools like list (sophos_list_mobile_app_groups) and mutation tools (create/update).

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?

Implicitly indicates usage when needing details for a single app group by ID, but lacks explicit when-to-use or when-not-to-use guidance compared to list/update alternatives.

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

sophos_get_mobile_deviceA
Read-only

Get full details for a specific mobile device by its ID, including compliance status, installed apps, platform, and assigned policies.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoComma-separated fields for a partial response
device_idYesMobile device UUID
tenant_idYesTenant UUID

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds context about the type of data returned (compliance status, apps, platform, policies) but no additional behavioral traits like limitations or prerequisites.

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 immediately provides examples of the data included. No unnecessary 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?

Given that this is a read tool with no output schema, the description adequately covers the purpose and the type of data returned. It does not elaborate on the return format but the optional 'fields' parameter hints at flexibility.

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 parameters. The description restates that the tool gets details for a specific device by ID but does not add new meaning or usage nuances beyond the schema.

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 'Get' and the resource 'full details for a specific mobile device by its ID'. It distinguishes itself from the sibling tool 'sophos_list_mobile_devices' by specifying 'specific' versus listing all devices.

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

Usage Guidelines4/5

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

The description implies when to use it: when you need full details of a single mobile device. However, it does not explicitly state when not to use it or mention alternatives like the list tool.

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

sophos_get_mobile_device_groupA
Read-only

Get details for a specific mobile device group by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
group_idYesDevice group UUID
tenant_idYesTenant UUID

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds no extra behavioral traits beyond 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?

Single sentence, no wasted words, front-loaded with purpose.

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?

Sufficient for a simple get-by-ID tool with high schema coverage and annotations; could mention result format but not necessary.

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 covers 100% of parameters, so description adds no additional meaning beyond the schema.

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 'Get details for a specific mobile device group by its ID', using specific verb and resource, and distinguishing from siblings like 'sophos_list_mobile_device_groups'.

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?

Clearly indicates when to use (when you have an ID), but no explicit mention of when not to use or alternatives.

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

sophos_get_mobile_ixm_enrollmentB
Read-only

Get static setup data for IXM (Intercept X for Mobile) auto-enrollment, including the connection code required to enroll the IXM app.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds that the tool returns the connection code needed for enrollment. No contradictions. However, it does not disclose the exact response format or any additional behavioral traits beyond what annotations provide.

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?

Single, clear sentence with no filler. Perfectly concise and front-loaded with the key action and resource.

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 read tool with one parameter and no output schema, the description adequately explains the purpose and return value (static setup data including connection code). It is complete enough given the tool's simplicity.

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% with one required parameter (tenant_id) described as 'Tenant UUID'. The description does not add further meaning beyond the schema. 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 clearly states it retrieves static setup data for IXM auto-enrollment, including the connection code. The verb 'get' matches the tool's read-only nature. It distinguishes itself from mobile device tools like sophos_get_mobile_device by specifying enrollment setup, but 'static setup data' is somewhat vague.

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 use this tool versus alternatives. The description does not state prerequisites (e.g., requires a valid tenant_id) or mention when not to use it. With many mobile-related sibling tools, usage context is missing.

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

sophos_get_mobile_operating_systemA
Read-only

Get details for a specific mobile operating system by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
os_idYesOperating system UUID
tenant_idYesTenant UUID

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds minimal behavioral context (getting details by ID) but does not explain response structure or any side effects.

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?

Single sentence is concise and front-loaded with the action. No unnecessary words, but could be slightly expanded to include value proposition or 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 simple read tool with good schema coverage and annotations, the description is adequate. It lacks output details but is acceptable given no output schema and straightforward purpose.

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% with clear parameter descriptions. The tool description adds no additional parameter meaning beyond the schema, so baseline score 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 clearly states the verb 'Get details' and the resource 'specific mobile operating system by its ID'. It distinguishes from sibling 'sophos_list_mobile_operating_systems' by specifying a single item via ID.

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 on when to use this tool versus alternatives. There is no mention of when not to use it or which sibling tools to consider instead (e.g., list tool for browsing all OS).

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

sophos_get_partner_adminB
Read-only

Get details for a specific partner-level administrator.

ParametersJSON Schema
NameRequiredDescriptionDefault
admin_idYesPartner admin UUID

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds that it retrieves 'details', but no further behavioral traits are disclosed (e.g., whether it requires specific permissions).

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 wasted words. It efficiently conveys the tool's purpose.

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 read-only tool with one parameter and annotations present, the description is adequately complete. It could optionally mention the return value structure, but no output schema exists.

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% with the admin_id parameter fully described. The description does not add any additional meaning beyond what the schema provides, 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?

Description clearly states it gets details for a partner-level administrator, distinguishing it from tenant admin tools. The verb 'get' is specific, but the description could be more explicit about its read-only nature, though annotations handle that.

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 on when to use this tool vs alternatives like sophos_get_tenant_admin or sophos_get_partner_role. The description relies solely on the name and sibling context, which may not be sufficient for an AI to select correctly without additional hints.

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

sophos_get_partner_levelA
Read-only

Return partner level information for a distributor's partners. Filters by billing sub-region and optionally by name, update date, or EDI number.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFilter partners by name (partial match)
pageNoPage number to fetch, starting at 1
page_sizeNoNumber of results per page (max 500)
edi_numberNoFilter partners by EDI number
updated_dateNoFilter partners updated on or after this date (ISO 8601 date string)
distributor_idYesDistributor ID (X-Distributor-ID header value)
billing_sub_regionYesBilling sub-region to filter partners by (required, e.g. 'US', 'EMEA')

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that it returns partner level information, but does not disclose additional behavioral traits like pagination or rate limits. No contradiction with annotations.

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?

Single sentence that front-loads the main purpose and key filter options. No unnecessary words or redundancy.

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 covers the basic purpose and filters, but lacks details about pagination (page, page_size) and the structure of the returned data. Given no output schema, the agent may need more context.

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 description adds minimal value beyond restating the filter parameters (name, update date, edi number). It does not provide new semantic context.

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 it returns partner level information, with a specific verb and resource. It distinguishes from siblings like sophos_get_partner_admin by focusing on 'partner level' info, but does not explicitly differentiate.

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 fetching partner info filtered by billing sub-region, but provides no explicit guidance on when to use this vs. alternative tools or when not to use it.

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

sophos_get_partner_roleA
Read-only

Get details for a specific partner role.

ParametersJSON Schema
NameRequiredDescriptionDefault
role_idYesPartner role UUID

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, so the description's 'Get details' is consistent but adds no extra behavioral context. The description does not contradict annotations.

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, clear sentence with no redundancy. It is appropriately concise for a simple retrieval tool, though a bit more detail could be added without harming conciseness.

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 read operation with one parameter and annotated safety, the description sufficiently conveys the tool's purpose. No output schema exists, but the annotation openWorldHint suggests flexibility. The description is adequate for an agent to select and invoke 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?

Schema coverage is 100% for the single parameter role_id, which is described as 'Partner role UUID'. The description does not add any additional meaning or context about the parameter beyond the schema.

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 action 'Get' and the resource 'details for a specific partner role'. It distinguishes itself from sibling tools like 'sophos_create_partner_role' (create) and 'sophos_list_tenant_roles' (list), making the purpose unambiguous.

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 on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description does not mention context like 'when you need a single role's details' or compare with list tools.

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

sophos_get_post_delivery_quarantine_download_statusA
Read-only

Get the status of a post-delivery quarantine attachment download job.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
download_idYesDownload job ID from the download initiation call

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds that the tool gets status, but it does not disclose additional behavioral traits such as typical response fields, time-to-completion, or error states. Since annotations cover the main safety aspects, a 3 is appropriate.

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 immediately communicates the action. It is concise with no unnecessary words, earning a top score.

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 the tool has only two parameters, no output schema, and robust annotations, the description is adequate but lacks details about the return format or typical usage context. It meets minimum viability but could be enhanced with expected status values.

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 for both parameters (tenant_id and download_id), so the schema already explains their meaning. The description adds no extra information about parameters, hence 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 clearly states the tool's purpose: 'Get the status of a post-delivery quarantine attachment download job.' It uses a specific verb ('Get') and resource ('status'), and the tool name further clarifies the context. It is distinct from sibling tools like sophos_download_post_delivery_quarantine_attachments and sophos_get_quarantine_download_status.

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 provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, dependencies (e.g., requiring a prior download initiation call), or scenarios where another tool would be more appropriate. With many quarantine-related siblings, this omission limits agent decision-making.

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

sophos_get_quarantine_download_statusA
Read-only

Get the status of a quarantine attachment download job initiated by sophos_download_quarantine_attachments.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
download_idYesDownload job ID returned from the download initiation call

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that it checks status but offers no extra behavioral details like rate limits or auth. Does not contradict annotations.

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 sentence, front-loaded, no unnecessary words. Every part 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 status check tool with 2 parameters and no output schema, the description is sufficiently complete: it states the action, result, and prerequisite. No gaps for normal use.

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% with clear parameter descriptions. The description adds that download_id is from the initiation call, which provides context but does not significantly extend beyond schema. 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 clearly states the verb 'Get' and the resource 'status of a quarantine attachment download job', and distinguishes itself from siblings by explicitly referencing the initiation tool sophos_download_quarantine_attachments.

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

Usage Guidelines4/5

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

The description implies usage after initiating a download, referencing the predecessor. It does not explicitly state when not to use or alternatives, but the context is clear enough for a status poll tool.

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

sophos_get_quarantine_messageB
Read-only

Get details for a specific pre-delivery quarantined message by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
message_idYesQuarantine message UUID

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds no further behavioral context (e.g., what happens if message not found, auth requirements, or data freshness). Beyond the annotation, there is minimal value.

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?

Single sentence conveys the core purpose with no waste. It is front-loaded with the action. While very concise, it could be slightly more informative without harming 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 'get' tool with no output schema, the description does not explain what 'details' includes (e.g., headers, body, attachments). It is minimally sufficient but lacks completeness. Sibling tools like sophos_get_quarantine_message_urls are more specific.

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 (tenant_id, message_id) described. The description says 'by ID' but does not add additional meaning beyond the schema. Baseline 3 is appropriate as the schema already covers the parameters 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?

Description clearly states 'Get details for a specific pre-delivery quarantined message by ID.' It specifies the verb (Get), resource (details of a quarantined message), and the means (by ID). This distinguishes it from sibling tools like sophos_search_quarantine (which searches) and sophos_preview_quarantine_message (which previews), making the purpose unambiguous.

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 on when to use this tool versus alternatives. Sibling tools include sophos_search_quarantine, sophos_preview_quarantine_message, and sophos_get_quarantine_message_urls, but the description does not differentiate or mention any when-to-use or when-not-to-use context.

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

sophos_get_quarantine_message_urlsA
Read-only

Get URLs found in a pre-delivery quarantined message.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
message_idYesQuarantine message UUID

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds no additional behavioral context beyond what annotations provide, which is adequate but not enriched.

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, concise sentence with no redundant words. It efficiently conveys the purpose without waste.

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 read tool with 2 parameters and no output schema, the description is minimally sufficient. It does not specify return format or error cases, but given the low complexity, the information provided is acceptable.

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 schema already describes both parameters (tenant_id, message_id). The description adds no extra meaning beyond stating the resource; it does not explain the parameters' roles or how to obtain them.

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 action (Get) and the specific resource (URLs from a pre-delivery quarantined message). It distinguishes this tool from siblings like sophos_get_quarantine_message or sophos_list_quarantine_attachments by specifying URLs.

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 URLs from a pre-delivery quarantined message are needed, but it does not provide explicit guidance on when to use this tool versus alternatives, nor does it list exclusions or prerequisites.

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

sophos_get_quoteA
Read-only

Get full details for a specific Sophos Business Automation quote by proposal number.

ParametersJSON Schema
NameRequiredDescriptionDefault
distributor_idYesDistributor ID (X-Distributor-ID header value)
proposal_numberYesQuote proposal number (e.g. Q-00001)

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's statement 'Get full details' is consistent. However, it adds no additional behavioral context beyond confirming the read-only nature. With annotations covering safety, a 3 is appropriate.

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?

Single sentence with no wasteful words. Directly communicates the tool's purpose and required input.

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?

Adequate for a simple retrieval tool with 2 well-documented parameters and no output schema. Minor gap: does not mention relationship to sophos_list_quotes, which would help contextualize usage. Still generally 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 coverage is 100%, so the schema already documents both parameters. The description adds 'full details' but does not provide extra meaning beyond what the schema's parameter descriptions already convey. Baseline 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?

Description clearly specifies action ('Get full details'), resource ('quote by proposal number'), and implicitly distinguishes from list tools like sophos_list_quotes. It is specific and 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?

Implies use when you have a proposal number and need full details, but does not explicitly state when to use this versus sophos_list_quotes or when not to use it. No alternatives or exclusions mentioned.

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

sophos_get_regional_health_scoresA
Read-only

Get account health score comparisons against regional peers. Useful for benchmarking your tenant's security posture against similar tenants in your region.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description is not required to disclose those. The description adds context about regional comparisons but does not disclose other behavioral traits such as data freshness, authentication requirements, or rate limits. With annotations covering safety, a score of 3 is appropriate.

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: the first states the action and resource, the second explains the purpose. No redundant or unnecessary content. It is concise and front-loaded.

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 no output schema, so the description should indicate what the response contains. It mentions 'health score comparisons' but does not specify details like regional average, percentile, or fields included. For a simple retrieval with one parameter, this is adequate but could be more informative.

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 'tenant_id' is fully described in the schema as 'Tenant UUID.' The description does not add additional meaning or constraints beyond what the schema already provides. With 100% schema description coverage, baseline is 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 clearly states 'Get account health score comparisons against regional peers,' specifying the action and resource. It distinguishes itself from sibling tools like 'sophos_get_account_health' and 'sophos_get_health_scores_history' by focusing on regional benchmarking.

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

Usage Guidelines4/5

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

The description says 'Useful for benchmarking your tenant's security posture against similar tenants in your region,' which provides a clear use case. However, it does not explicitly mention when not to use this tool or alternative tools like 'sophos_get_account_health' for non-comparative health data.

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

sophos_get_saved_live_queryA
Read-only

Get full details of a specific saved Live Discover query by its query ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
query_idYesSaved query UUID
tenant_idYesTenant UUID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false. The description adds 'Get full details' which is consistent but does not provide additional behavioral context beyond the annotations.

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 delivers the core purpose concisely. No unnecessary 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 simple retrieval tool with two well-documented parameters and clear annotations, the description is sufficiently complete. It could mention that it returns full details, but that is implied by 'Get full details'.

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 parameters have clear descriptions in the schema ('Saved query UUID', 'Tenant UUID'). The description adds no extra meaning beyond what the schema provides.

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 action (Get), the resource (saved Live Discover query), and the identifier (by query ID). It distinguishes from sibling tools like 'sophos_list_saved_live_queries' and others.

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 that this tool is used when full details of a specific saved query are needed, but it does not explicitly state when to use it versus alternatives or when not to use it. Sibling tool names provide some context.

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

sophos_get_siem_alertsA
Read-only

Retrieve alerts from the Sophos SIEM API for integration with external SIEM systems. Alerts are from the last 24 hours only. Use the cursor from the response (next_cursor) to paginate; check has_more to know if more pages exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of alerts to return per request (min 200, max 1000, default 200)
cursorNoPagination cursor from a previous response (next_cursor field) to fetch the next batch of alerts
from_dateNoReturn alerts after this point in time. Must be a UTC Unix timestamp (seconds since epoch, e.g. '1700000000'). Must be within the last 24 hours.
tenant_idYesThe tenant ID to query SIEM alerts for

TDQS

A4.4/5.0
Behavior4/5

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

The description does not contradict annotations (readOnlyHint=true, destructiveHint=false). It adds behavioral context beyond annotations: pagination mechanics (cursor, has_more) and the 24-hour time constraint, which are not captured in the structured fields.

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 concise sentences: purpose, time constraint, pagination instructions. No unnecessary words; every sentence adds essential 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?

Given the lack of output schema, the description adequately covers pagination fields (cursor, has_more) and the time constraint. It does not describe the alert structure, but for a retrieval tool with clear parameter schema, this is sufficient for agent understanding.

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 description does not need to repeat parameter details. It adds value by explaining how the cursor and has_more fields in the response drive pagination, and clarifies that from_date must be within the last 24 hours, complementing the schema.

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 'Retrieve alerts' and the resource 'Sophos SIEM API for integration with external SIEM systems', distinguishing it from other alert tools like sophos_list_alerts and sophos_search_alerts by specifying the SIEM integration context and the 24-hour time window.

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 explicitly states that alerts are from the last 24 hours only, and explains pagination using cursor and has_more. However, it does not provide explicit when-not-to-use guidance or mention alternative tools for non-SIEM alert retrieval.

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

sophos_get_siem_eventsA
Read-only

Retrieve security events from the Sophos SIEM API for integration with external SIEM systems. Events are from the last 24 hours only. Use the cursor from the response (next_cursor) to paginate; check has_more to know if more pages exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of events to return per request (min 200, max 1000, default 200)
cursorNoPagination cursor from a previous response (next_cursor field) to fetch the next batch of events
from_dateNoReturn events after this point in time. Must be a UTC Unix timestamp (seconds since epoch, e.g. '1700000000'). Must be within the last 24 hours.
tenant_idYesThe tenant ID to query SIEM events for
exclude_typesNoComma-separated list of event type strings to exclude from results (e.g. 'Event::Endpoint::UpdateSuccess,Event::Endpoint::Application::Detected')

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds valuable context: events are limited to the last 24 hours and pagination uses cursor and has_more. This provides behavioral details beyond the annotations, though it doesn't cover rate limits or authentication requirements.

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

Conciseness5/5

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

The description is only three sentences, front-loading the core purpose first. Every sentence provides essential information without redundancy or fluff. Highly efficient.

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?

With no output schema, the description could explain the return format in more detail. While it mentions cursor and has_more, it does not describe the structure of the event objects or other fields in the response. For a tool with 5 parameters, the description is somewhat concise but leaves the agent to infer the full response shape.

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 schema already describes each parameter. The description adds meaning by explaining how the cursor parameter relates to pagination (next_cursor) and mentions has_more, which is not a parameter but a response field. This enriches the agent's understanding beyond the schema.

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 'Retrieve security events from the Sophos SIEM API', which is a specific verb and resource. It distinguishes from siblings like sophos_get_siem_alerts by focusing on events rather than alerts. The time window and pagination details further clarify the scope.

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

Usage Guidelines4/5

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

The description explicitly states the tool is 'for integration with external SIEM systems' and notes the 24-hour time window, which guides appropriate use. It does not explicitly mention when not to use or provide alternative tools, but the context of sibling tools makes the purpose clear.

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

sophos_get_software_commentA
Read-only

Get the user comment for a specific static software package.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
package_idYesStatic package UUID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds no new behavioral traits beyond 'get user comment'. Adequate but no extra value.

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

Conciseness5/5

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

Single sentence, front-loaded, no unnecessary 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?

Simple tool with good annotations and schema; description is sufficient for its purpose. Could mention return type but not critical.

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% with descriptions for both parameters. Description does not add additional meaning beyond the schema.

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?

Clearly states the verb 'Get', resource 'user comment for static software package', and distinguishes from siblings like sophos_get_software_package and sophos_list_software_comments.

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?

Implies usage for retrieving a single comment by package ID, but does not explicitly state when to use this vs alternatives like sophos_list_software_comments. No when-not guidance.

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

sophos_get_software_packageA
Read-only

Get details for a specific static software package by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
package_idYesStatic package UUID

TDQS

A3.5/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, which the description merely confirms ('Get details'). It adds no behavioral context beyond what annotations provide, such as authentication needs, rate limits, or potential edge cases. Since annotations already cover safety, the description adds minimal value.

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

Conciseness5/5

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

Single sentence, no redundant information, front-loaded with action and resource. 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 is simple (get by ID), but without an output schema, the description does not clarify what details are returned. It is minimally complete for a read operation, but could be improved by mentioning return value structure.

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?

Input schema has 100% description coverage: both parameters are described ('Tenant UUID', 'Static package UUID'). The description does not add further meaning beyond the schema, achieving the baseline for high 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?

Description clearly states 'Get details for a specific static software package by ID', specifying the action (get details), resource (static software package), and input (by ID). It distinguishes from siblings like sophos_list_software_packages (list all) and sophos_add_software_package (create).

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?

Description implies usage when you need details of a single package identified by ID, but it does not explicitly contrast with list or add tools, nor mention prerequisites or when not to use. The context of siblings provides some guidance, but the tool description itself lacks explicit usage guidance.

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

sophos_get_switch_mac_filterA
Read-only

Retrieve the MAC filter settings for a tenant's managed switches. The MAC filter allows or blocks devices connected to the switch by their MAC addresses.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds context about the MAC filter's purpose but no additional behavioral traits beyond that.

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 concise sentences that front-load the purpose. Every word is informative with 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 adequately explains what the tool returns (MAC filter settings) and its function, which is sufficient for a simple retrieval tool with 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 coverage is 100% for the single parameter tenant_id, with description 'Tenant UUID'. The tool description does not add extra meaning beyond the schema, so 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 specific verb 'Retrieve' and resource 'MAC filter settings for a tenant's managed switches', clearly distinguishing it from siblings like sophos_update_switch_mac_filter and sophos_get_wifi_mac_filter.

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 to retrieve MAC filter settings) but does not explicitly state when to use this tool versus alternatives, nor does it mention prerequisites or when not to use it.

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

sophos_get_tenantA
Read-only

Get details for a specific managed tenant by ID, including its regional API host.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesThe unique ID (UUID) of the tenant to retrieve

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description does not need to reiterate safety. The description adds that the response includes the regional API host, which provides some behavioral insight beyond the schema but does not disclose any new risks or side effects.

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, concise sentence that is immediately clear and front-loaded with the essential information. There is no superfluous content.

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 mentions that details include the regional API host, but does not specify what other details are contained in the response. Since no output schema exists, this omission forces the agent to infer the full structure. However, for a simple get-by-ID tool, the description is adequate.

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 the parameter description in the schema is clear. The description mentions 'by ID' and 'regional API host' which adds context about the output but does not enhance understanding of the parameter beyond what the schema provides.

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 it retrieves details for a specific managed tenant by ID, including the regional API host. It distinguishes itself from siblings like sophos_list_tenants (list all) and sophos_create_tenant (create) by focusing on a single tenant retrieval.

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

Usage Guidelines2/5

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

No explicit guidance is provided on when to use this tool versus alternatives. For example, it could mention to use this when needing detailed information for a specific tenant vs using sophos_list_tenants to enumerate all tenants. This lack of context might lead to incorrect tool selection.

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

sophos_get_tenant_adminB
Read-only

Get details for a specific tenant administrator.

ParametersJSON Schema
NameRequiredDescriptionDefault
admin_idYesAdmin UUID
tenant_idYesTenant UUID

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, covering the safety profile. The description adds no additional behavioral context beyond what annotations provide, making it acceptable but not enhancing understanding.

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, concise sentence that directly states the tool's purpose. No superfluous words or redundancy, making it efficient 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?

For a simple read-only get tool with no output schema, the description covers the core purpose and parameters. However, it lacks information about return format (e.g., what fields are returned) or how to obtain admin_id, which would be helpful for 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?

Input schema has 100% description coverage for both parameters (admin_id and tenant_id), so the schema already explains their purpose. The description adds no extra semantic meaning beyond the schema, earning a baseline score of 3.

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 retrieves details for a specific tenant administrator. It uses a specific verb 'Get details' and resource 'tenant administrator', distinguishing it from list tools like sophos_list_tenant_admins, though it does not explicitly contrast with siblings.

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 on when to use this tool versus alternatives. The description does not provide context such as prerequisites (e.g., needing admin_id from list_tenant_admins) or scenarios where this tool is preferred over similar tools.

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

sophos_get_tenant_roleB
Read-only

Get details for a specific tenant role.

ParametersJSON Schema
NameRequiredDescriptionDefault
role_idYesRole UUID
tenant_idYesTenant UUID

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint true and destructiveHint false. Description adds no extra behavioral context (e.g., auth needs, rate limits, response details).

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?

Single sentence is concise and front-loaded with the action. No unnecessary words, but could be slightly more informative.

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 low complexity (2 required params, no output schema), the description is adequate but lacks details like response structure or permission requirements.

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 both parameters. Description adds no further meaning beyond schema.

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 action ('Get details') and resource ('specific tenant role'), distinguishing it from sibling tools like list, create, update.

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 on when to use this tool versus alternatives (e.g., when to use list vs get). Does not mention any prerequisites or context.

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

sophos_get_tls_decryption_settingsA
Read-only

Get Web Control TLS decryption settings (which categories have decryption enabled).

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false. Description adds context about categories but no additional behavioral traits like permissions or error handling. Acceptable given annotations.

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?

Single sentence, perfectly concise. No wasted words. Front-loaded with purpose.

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 GET with one param and no output schema, description fully explains what tool returns. Complete without needing more detail.

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 provides 'Tenant UUID' description for tenant_id, coverage 100%. Description adds no further parameter meaning. 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?

Description clearly states specific verb 'Get', resource 'Web Control TLS decryption settings', and clarifies output 'which categories have decryption enabled'. Distinguishes from siblings like sophos_update_tls_decryption_settings and sophos_list_web_control_categories.

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?

No explicit when-to-use or when-not-to-use guidance. Implied usage is to fetch decryption settings, but no alternatives mentioned. Adequate for simple GET but could be better.

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

sophos_get_userA
Read-only

Get details for a specific directory user.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUser UUID
tenant_idYesTenant UUID

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to reiterate these. The description adds no additional behavioral context such as error handling or response format, but it does not contradict annotations.

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?

Single sentence, highly concise, and front-loaded with the main action. Every word is necessary with no redundancy.

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 read operation with no output schema, the description is minimally adequate. However, it could be improved by specifying what details are returned (e.g., profile fields) to aid the agent's expectation.

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% with clear descriptions for both parameters (User UUID, Tenant UUID). The description does not add extra meaning beyond the schema, so a 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?

Clearly states the tool retrieves details for a specific directory user. The verb 'get' and resource 'user' are precise, and it distinguishes from listing or creating users among siblings.

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 on when to use this over alternatives like sophos_list_users or sophos_get_user_group. The description does not mention prerequisites or scenarios where this tool is appropriate.

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

sophos_get_user_attestationA
Read-only

Get the current status and details of a user activity attestation by its ID. Poll this after creating an attestation to check whether the user has responded. Status values: 'pending' (user has not answered yet), 'completed' (user selected an option — see 'selectedOption'), 'expired' (user did not respond before the timeout).

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoSpecific fields to include in a partial response (e.g. ['id', 'status', 'selectedOption'])
tenant_idYesTenant UUID
attestation_idYesAttestation UUID (returned by sophos_create_user_attestation)

TDQS

A4.4/5.0
Behavior4/5

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

Beyond readOnlyHint, description explains polling behavior and status meanings (pending, completed, expired, selectedOption). Adds value without contradiction.

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, front-loaded purpose, no wasted words. Efficiently conveys key 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?

No output schema, but description covers status values and selectedOption. Could mention other possible fields, but adequate for a status polling tool.

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% (baseline 3). Description adds workflow context for attestation_id and explains statuses, but fields parameter is not elaborated beyond schema.

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?

Description clearly states it gets status and details of a user activity attestation by ID, distinguishing from create tool by mentioning polling after creation.

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?

Explicitly says to poll after creating an attestation, lists status values, providing clear context but no explicit alternatives or when-not-to-use.

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

sophos_get_user_groupB
Read-only

Get details for a specific user group.

ParametersJSON Schema
NameRequiredDescriptionDefault
group_idYesUser group UUID
tenant_idYesTenant UUID

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds no extra behavioral context such as idempotency, authentication needs, or side effects.

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?

Single sentence is concise and front-loaded, but could include more details without losing conciseness.

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?

No output schema exists, and description does not hint at what 'details' are returned. Lacks information on typical usage flow (e.g., needs group_id from list).

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 clearly described. Description adds no additional information beyond the schema.

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?

Description states clear verb 'Get' and resource 'details for a specific user group', distinguishing it from sibling tools like list, create, update.

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 on when to use this tool versus alternatives. No mention of prerequisites like needing the group ID from a prior list call.

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

sophos_get_web_control_local_siteA
Read-only

Get details for a specific Web Control local site override.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
local_site_idYesLocal site UUID

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the agent knows it's a safe read. The description adds no additional behavioral context beyond the annotations, earning a baseline 3.

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 unnecessary words, front-loaded with the verb and resource. It is efficiently concise.

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 get operation with annotations covering safety, the description is minimal but adequate. However, without an output schema, the description could hint at the response structure, which it does not, limiting 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%, with both parameters described as UUIDs in the schema. The description does not add extra meaning or usage context 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.

Purpose5/5

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

The description clearly states the action (Get details) and the resource (a specific Web Control local site override). It distinguishes this tool from sibling tools like list, create, and update.

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 alternatives such as sophos_list_web_control_local_sites or other related tools. The description lacks context for selection.

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

sophos_get_wifi_mac_filterA
Read-only

Retrieve the MAC filter settings for a tenant's managed Wi-Fi access points. The MAC filter allows or blocks devices connecting to access points by their MAC addresses.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description reinforces safety. No additional behavioral details (e.g., handling of empty filter, response format) are provided.

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 concise sentences, front-loading the action and providing necessary context without extraneous 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 retrieval tool with one required parameter and no output schema, the description adequately explains the purpose and what the MAC filter does. Could benefit from mentioning the return structure.

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% for the single parameter (tenant_id), and the description adds no further semantics beyond what the schema already provides.

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 MAC filter settings for a tenant's managed Wi-Fi access points, distinguishing it from update operations and switch-specific 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?

No explicit guidance on when to use vs alternatives like sophos_update_wifi_mac_filter or sophos_get_switch_mac_filter. The readOnlyHint suggests it's safe but does not provide usage context.

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

sophos_get_xdr_queryA
Read-only

Get details for a specific saved XDR query template by its query ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
query_idYesSaved query UUID
tenant_idYesTenant UUID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it is a safe read operation. The description adds context that it retrieves template details, but does not elaborate on behavior beyond what annotations convey (e.g., no mention of caching, rate limits, or what 'details' include).

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. Every word is necessary, with no filler or 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?

The description is complete for a simple read operation with thorough annotations. However, it does not specify what 'details' are returned (e.g., query text, category, tags), which could help the agent decide if additional tools are needed. A brief enumeration would enhance 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?

The input schema has 100% coverage with clear descriptions for both parameters (query_id and tenant_id). The description does not add any additional meaning beyond the schema; it simply restates that the query ID is used. Baseline score of 3 is appropriate given the schema's thoroughness.

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 action ('Get details') and the resource ('specific saved XDR query template'), and includes the identifier ('query ID'). This distinguishes it from siblings like sophos_list_xdr_queries (listing all) and sophos_run_saved_xdr_query (running the query).

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

Usage Guidelines3/5

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

The description implies usage after obtaining a query ID, but does not explicitly guide when to use this tool versus alternatives (e.g., when to use sophos_list_xdr_queries first, or that this tool is for viewing metadata only). No exclusions or when-not-to-use guidance is provided.

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

sophos_get_xdr_query_resultsA
Read-only

Retrieve the results of a completed XDR query run. Uses key-based pagination: pass the nextKey from the previous response as page_from_key to get the next page.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesThe query run ID to fetch results for
page_sizeNoNumber of result rows per page (max 2000, default 200)
tenant_idYesThe tenant ID the query was run against
page_totalNoWhether to include total page and item counts in the response (default true)
page_from_keyNoPagination key from a previous response (pages.nextKey) to fetch the next page

TDQS

A3.8/5.0
Behavior4/5

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

Description adds context beyond annotations: it specifies that results are for a 'completed' query and explains key-based pagination. Does not contradict annotations (readOnlyHint, destructiveHint).

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, zero waste. Every word adds value, clearly stating purpose and key pagination 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?

Given no output schema, description explains pagination and the prerequisite of completed query. Lacks details on response structure or error handling, but is sufficient for a retrieval tool.

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 baseline is 3. Description only mentions 'page_from_key' in the narrative but does not add significant meaning beyond what schema already provides.

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?

Description clearly states the verb 'Retrieve' and the resource 'results of a completed XDR query run'. It distinguishes itself from sibling tools like sophos_run_xdr_query and sophos_get_xdr_query_status by focusing on fetching results.

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 use this tool vs alternatives, nor any conditions or prerequisites mentioned. It only describes pagination mechanism.

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

sophos_get_xdr_query_statusA
Read-only

Check the status of a previously submitted XDR query run. Status values: pending | started | finished. Result values: notAvailable | succeeded | failed | timedOut | canceled.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesThe query run ID returned by sophos_run_xdr_query
tenant_idYesThe tenant ID the query was run against

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds specific status and result enumerations, enhancing transparency beyond the structured fields.

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, front-loaded with the action, and includes enumerations. Every sentence adds value with no 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?

No output schema is provided, but the description details key return fields (status and result values). For a status-checking tool, this is nearly complete; it lacks only potential additional fields like timestamps.

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% with parameter descriptions. The tool description does not add additional meaning beyond what the schema already provides for run_id and tenant_id.

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 action: checking the status of a previously submitted XDR query. It lists specific status and result values, distinguishing it from sibling tools like sophos_get_xdr_query_results and sophos_cancel_xdr_query_run.

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

Usage Guidelines4/5

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

The description implies usage after running a query (previously submitted), providing clear context. It does not explicitly state when not to use it or mention alternatives, but the context is sufficient.

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

sophos_invite_tenant_adminB

Invite a new administrator to a specific tenant via the common API (/common/v1/admins). The admin will receive an invitation email.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesAdmin email address
role_idYesRole UUID to assign. Use sophos_list_tenant_roles to see available roles.
last_nameYesAdmin last name
tenant_idYesTenant UUID
first_nameYesAdmin first name

TDQS

B3.4/5.0
Behavior3/5

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

Annotations indicate write (readOnlyHint false) and non-destructive (destructiveHint false). The description adds that an invitation email is sent, which is consistent. However, it does not disclose behaviors like idempotency, error states, or required permissions, which are not covered by annotations.

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 brief and to the point, with two sentences covering the core action and side effect. No wasted words.

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

Completeness2/5

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

The description lacks details on return values, prerequisites (e.g., needing tenant_id from sophos_list_tenants and role_id from sophos_list_tenant_roles), and success/error behavior. This is insufficient for a mutation tool with no output schema and minimal annotations.

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 the description adds no extra meaning to parameters. The baseline of 3 is appropriate as the schema already documents each parameter's purpose.

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 invites a new administrator to a specific tenant and sends an email, with a specific verb and resource. However, it does not differentiate from the sibling tool sophos_create_tenant_admin, which may also create an admin but likely without an invitation.

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 inviting admins, but provides no guidance on when to use this tool versus alternatives like sophos_create_tenant_admin. There is no explicit 'when-not' or context for selecting this tool.

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

sophos_list_admin_role_assignmentsB
Read-only

List role assignments for a specific tenant admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
admin_idYesAdmin UUID
tenant_idYesTenant UUID

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and destructiveHint, so safety is clear. The description adds no behavioral details beyond the verb 'list', which is consistent. No contradiction detected.

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 superfluous words. It is front-loaded 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 simple read-only list operation with clear annotations and two required parameters, the description is adequate. It could mention the scope (tenant) but is not incomplete.

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% with descriptions for both parameters. The description adds no additional meaning beyond what the schema provides, meeting the baseline for high coverage.

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

Purpose4/5

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

The description clearly states the action (list) and resource (role assignments), scoped to a specific tenant admin. However, it does not distinguish from sibling tools like sophos_list_role_assignments, which could cause confusion.

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 on when to use this tool versus alternatives (e.g., sophos_list_role_assignments, sophos_list_tenant_roles). The agent receives no context on prerequisites or when to prefer this tool.

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

sophos_list_alertsB
Read-only

List alerts from Sophos Central for a given tenant, with optional severity, product, category, date range, and pagination filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated list of specific alert IDs to retrieve
sortNoSort order (e.g. 'raisedAt:desc')
productNoComma-separated product names to filter on (e.g. 'endpoint,server,wireless,mobile')
to_dateNoReturn alerts raised before this ISO 8601 timestamp
categoryNoComma-separated alert categories to filter on (e.g. 'malware,policy,runtimeDetections,applicationControl')
page_keyNoPagination key for fetching the next page of results
severityNoComma-separated severity levels to filter on (e.g. 'high,medium,low')
from_dateNoReturn alerts raised after this ISO 8601 timestamp
page_sizeNoNumber of alerts per page (default 50)
tenant_idYesThe tenant ID to query alerts for
page_totalNoIf true, include total page count in the response

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds context about optional filters (severity, product, category, date range, pagination) but does not elaborate on pagination behavior or response format. It adds moderate value beyond annotations.

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 action and lists key capabilities concisely. Every word earns its place with no 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?

Given the absence of an output schema and the high parameter count, the description provides a useful summary of available filters. It could hint at the response format or pagination mechanics, but the schema covers these details. The description is largely complete for an AI agent to understand the tool's scope.

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 has 100% description coverage for all 11 parameters. The description summarizes filter types but does not add meaning beyond what the schema already provides. Baseline 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 verb 'List' and resource 'alerts from Sophos Central' with a specific scope 'for a given tenant'. It enumerates key optional filters. However, it does not explicitly distinguish from sibling tools like sophos_get_alert or sophos_search_alerts, leaving some ambiguity about when to use this tool instead of those.

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 provides no guidance on when to use this tool versus alternatives like sophos_get_alert for single alert retrieval or sophos_search_alerts for complex queries. No when-not-to-use or prerequisites are mentioned.

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

sophos_list_allowed_itemsA
Read-only

List all globally allowed items (SHA256 hashes, certificate signers, file paths) for a tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
page_sizeNoResults per page (default 50)
tenant_idYesTenant UUID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false. The description adds no additional behavioral context beyond what annotations provide (e.g., pagination behavior, rate limits).

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 sentence, front-loaded, no fluff. Efficiently conveys the core purpose.

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 read-only list tool with good annotations, the description is sufficient. It could mention pagination, but the parameters imply it. No output schema, but that's acceptable.

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% with descriptions for all three parameters. The tool description adds no extra meaning beyond the schema's 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?

The description clearly states the verb 'List' and resource 'globally allowed items' with examples (SHA256 hashes, certificate signers, file paths) and scope 'for a tenant'. It distinguishes from siblings like sophos_list_blocked_items and sophos_get_allowed_item.

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?

No explicit guidance on when to use vs alternatives. The description implies it's for listing all allowed items, but doesn't mention when to use sophos_get_allowed_item or sophos_create_allowed_item instead.

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

sophos_list_audit_eventsA
Read-only

List audit trail events for a Sophos Central tenant. Covers admin actions, policy changes, user logins, and configuration modifications. Supports filtering by date range, category, user, and cursor-based pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoPagination cursor returned by a previous response to fetch the next page of results
to_dateNoReturn events at or before this ISO 8601 UTC timestamp (e.g. '2024-01-31T23:59:59.999Z')
user_idNoFilter events to those performed by a specific user ID
categoryNoFilter by audit event category (e.g. 'policy', 'endpoint', 'iam', 'firewall')
from_dateNoReturn events at or after this ISO 8601 UTC timestamp (e.g. '2024-01-01T00:00:00.000Z')
page_sizeNoNumber of events per page (1–100, default 50)
tenant_idYesTenant UUID
max_resultsNoMaximum total number of audit events to return across all pages (used to cap large result sets)

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by detailing the scope (admin actions, policy changes, etc.) and pagination support. No contradictions. Does not mention rate limits or authentication specifics, but these are implicit.

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: first states verb+resource, second lists covered events and capabilities. No redundant information, front-loaded with core purpose, every sentence adds value.

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 no output schema, the description adequately covers event types and filtering options. Could mention pagination cursor behavior, but 'cursor-based pagination' implies the response includes cursor for next page. With 8 parameters, completeness is good.

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% with descriptions for all 8 parameters. The description restates the filtering capabilities (date range, category, user, pagination) but does not add new meaning beyond what the schema provides. 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?

Description clearly states the tool lists audit trail events for a Sophos Central tenant, specifies covered event types (admin actions, policy changes, user logins, configuration modifications), and mentions filtering and pagination. This distinguishes it from siblings like sophos_get_audit_event (single event) and sophos_search_alerts (alerts vs audit).

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?

Description implies use for listing audit events with filters and pagination, but does not explicitly state when to use this tool versus alternatives like sophos_search_alerts or sophos_get_siem_events. No exclusion criteria or when-not-to-use guidance is provided.

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

sophos_list_blocked_addressesB
Read-only

List globally blocked IP addresses and ranges for a tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
sortNoSort field and direction, e.g. 'createdAt:desc'
page_sizeNoResults per page (default 50)
tenant_idYesTenant UUID

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the safety profile is clear, but the description adds minimal behavioral context beyond stating the scope (globally, for a tenant). It does not mention pagination behavior, sorting, or any side effects, leaving gaps.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no waste. Every word is necessary to convey the purpose.

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 no output schema, the description is adequate but incomplete. It does not explain pagination or sorting behavior, even though the schema includes those parameters. The word 'list' implies a list return, but more detail would help.

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 no additional meaning beyond schema descriptions for parameters like page, sort, page_size, and tenant_id, which are already documented in the schema.

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 it lists globally blocked IP addresses and ranges for a tenant, using a specific verb ('list') and resource. It distinguishes from siblings like sophos_list_blocked_items and sophos_create_blocked_item by specifying the exact resource type and scope.

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 alternatives such as sophos_list_blocked_items or sophos_get_blocked_item. The description merely states what it does without contextual exclusions or use cases.

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

sophos_list_blocked_itemsA
Read-only

List all globally blocked items (SHA256 hashes) for a tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
page_sizeNoResults per page (default 50)
tenant_idYesTenant UUID

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds that it lists 'globally' blocked items, but does not disclose additional behaviors such as pagination, rate limits, or data freshness.

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 with no redundant information. Every word is necessary and contributes to understanding.

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 list operation with 3 parameters, no output schema, and annotations covering safety, the description is complete. It specifies what is listed (blocked items as SHA256 hashes) and the scope (tenant).

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% (all three parameters described). The description adds minimal value beyond the schema, only clarifying the tenant_id parameter's role by stating 'for a tenant'.

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 explicitly states the verb 'List', the resource 'globally blocked items (SHA256 hashes)', and the scope 'for a tenant'. It clearly distinguishes this tool from siblings like sophos_get_blocked_item or sophos_create_blocked_item.

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 provides no guidance on when to use this tool versus alternatives (e.g., sophos_list_allowed_items, sophos_get_blocked_item). It does not mention exclusions, prerequisites, or context for invocation.

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

sophos_list_case_detectionsB
Read-only

List all detections associated with a case.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based)
sortNoSort column e.g. 'type:asc'
case_idYesCase UUID
page_sizeNoResults per page
tenant_idYesTenant UUID

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds the scope of 'all detections associated with a case', but doesn't disclose pagination, sorting behavior, or limits. No contradiction.

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?

One concise sentence that is front-loaded and free of waste. Could slightly benefit from mentioning required parameters but overall efficient.

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?

Despite annotations covering safety, the description lacks details about return format (detection objects?), pagination behavior, or any additional context needed for a tool with 5 parameters and no output schema. Minimal but not completely inadequate.

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% with all 5 parameters described. The description does not add meaning 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.

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 ('detections') with clear context ('associated with a case'), distinguishing it from siblings like sophos_get_case_detection.

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 on when to use this tool vs alternatives (e.g., sophos_get_case_detection), nor any prerequisites, exclusions, or context about filtering beyond case_id.

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

sophos_list_casesA
Read-only

List all cases/investigations for a tenant with rich filtering options.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExact match by case name
pageNoPage number (1-based)
sortNoSort column e.g. 'type:asc', 'severity:desc'
typeNoFilter by case type
statusNoFilter by case status. Self-managed cases support new/investigating/onHold/resolved; Sophos-managed also have actionRequired
verdictNoFilter by case verdict
assigneeNoFilter by assignee email, or 'Unassigned'
severityNoFilter by case severity
escalatedNoFilter by escalation status
page_sizeNoResults per page
tenant_idYesTenant UUID
managed_byNoFilter by who manages the case ('self' or 'sophos')
created_afterNoReturn cases created after this timestamp or duration
created_beforeNoReturn cases created before this timestamp or duration
overview_containsNoPartial match on case overview text

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, making it clear this is a safe read operation. The description adds the behavior of listing with rich filtering, but does not provide additional insights like pagination limits, rate limits, or result ordering beyond what the schema offers.

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, efficient sentence that conveys the essential purpose without any wasted words. It is front-loaded and easy to parse.

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

Completeness3/5

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

For a tool with 15 parameters and no output schema, the description is minimal. It does not mention pagination, default sorting, or return format. However, the schema provides detailed parameter information, so the description is adequate but not comprehensive.

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 baseline is 3. The description only mentions 'rich filtering options' in general, adding no specific meaning beyond the parameter descriptions already present in the schema.

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 action (List) and the resource (cases/investigations) with the specific scope (for a tenant) and capability (rich filtering options). It effectively distinguishes from sibling tools like sophos_get_case, sophos_create_case, etc., which are for single case retrieval or mutation.

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 alternatives such as sophos_search_alerts or sophos_list_case_detections. It does not mention any prerequisites, context, or exclusions.

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

sophos_list_cloud_security_default_contentsA
Read-only

List all available default content versions that can be used when creating or versioning a cloud security runtime detection profile. Returns the content ID and version string for each available content package.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds that it returns content ID and version strings, which is useful behavioral context beyond annotations.

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 serving a distinct purpose: purpose/context and return description. No unnecessary words.

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 list operation with good annotations, the description is complete. It states what the tool does and what it returns, which is sufficient given the simplicity.

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 the description adds no additional meaning to the tenant_id parameter beyond what is already in the schema ('Tenant UUID'). 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 clearly states the verb 'List', the resource 'available default content versions', and the specific context 'when creating or versioning a cloud security runtime detection profile'. It also mentions the return values. This distinguishes it from sibling tools like sophos_list_cloud_security_profiles.

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

Usage Guidelines4/5

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

The description provides context on when to use the tool ('when creating or versioning a cloud security runtime detection profile'). It does not explicitly state when not to use it or list alternatives, but the usage context is clear.

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

sophos_list_cloud_security_profilesA
Read-only

List all cloud security runtime detection profiles for a tenant (latest versions). Profiles define detection rules and allow/block lists applied to cloud workloads.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number to fetch, starting at 1 (default 1)
page_sizeNoNumber of results per page (default 50)
tenant_idYesTenant UUID
search_termNoFilter profiles by name (partial match, 1-50 chars)

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds behavioral context by specifying '(latest versions)', which tells the agent that it returns only the most recent versions of profiles. No contradictions with annotations.

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 consists of two concise sentences with no wasted words. The first sentence front-loads the action and scope, and the second provides context. Every sentence 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?

No output schema is provided, but the description explains the purpose and mentions 'latest versions'. Pagination is handled by parameters (page, page_size). It does not detail the response structure, but for a list tool this is acceptable. The description is complete enough given the schema and annotations.

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% with all four parameters described in the schema. The description does not add extra meaning beyond what the schema already provides. 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 explicitly states 'List all cloud security runtime detection profiles for a tenant (latest versions).' It clearly identifies the action (list) and resource (cloud security runtime detection profiles), and distinguishes from siblings like sophos_get_cloud_security_profile.

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 does not explicitly state when to use this tool versus alternatives, but it is implied that it is for listing all profiles, while sophos_get_cloud_security_profile retrieves a single profile. No when-not or alternative guidance is provided.

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

sophos_list_detected_exploitsA
Read-only

List exploit attempts detected by exploit mitigation. Optionally exclude specific exploit thumbprints.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
page_sizeNoResults per page (default 50)
tenant_idYesTenant UUID
thumbprint_not_inNoComma-separated list of thumbprints to exclude from results

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's listing behavior is consistent. No additional behavioral traits (e.g., auth needs, rate limits) are disclosed beyond what annotations imply.

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 serving a purpose: core listing action and optional filter. No extraneous text, front-loaded with the main function.

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?

Adequate for a simple listing tool with four parameters. No output schema, but the response format (list of exploit attempts) is implied. Could mention the expected result structure or link to sophos_get_detected_exploit for detail retrieval.

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 four parameters are fully described in the input schema (100% coverage). The description only reiterates the thumbprint_not_in parameter, adding no new semantic meaning beyond the schema.

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?

Clearly states the verb 'List' and resource 'exploit attempts detected by exploit mitigation', with optional filtering by thumbprint. Distinguishes from siblings like sophos_get_detected_exploit by focusing on listing multiple attempts.

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?

Mentions optional thumbprint exclusion but lacks explicit guidance on when to use this tool vs. alternatives like sophos_get_detected_exploit or sophos_list_exploit_mitigation_apps. No when-not or alternative tool references.

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

sophos_list_downloadsB
Read-only

Get available software installer download links for a tenant. Returns URLs for licensed Sophos products. Optionally filter by product name or platform.

ParametersJSON Schema
NameRequiredDescriptionDefault
platformsNoComma-separated platforms to filter by (e.g. 'windows,mac,linux')
tenant_idYesTenant UUID
requested_productsNoComma-separated product names to filter by (e.g. 'endpointProtection,interceptX')

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate read-only and non-destructive behavior. The description adds that it returns URLs, but lacks details on pagination or response structure.

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, 18 words, no repetition or fluff; perfectly concise for a simple listing tool.

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

Completeness4/5

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

Covers the core purpose, tenant scope, and optional filters. Could mention response format or that only licensed products are returned, but adequate for a simple read operation.

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 parameters are described in the schema (100% coverage). The description echoes the optional filters but adds no additional semantic detail beyond the schema.

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 it retrieves software installer download links for a tenant, but does not differentiate from the similar sibling tool sophos_get_installer_downloads.

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 on when to use this tool versus alternatives like sophos_get_installer_downloads; missing usage and exclusion context.

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

sophos_list_endpointsA
Read-only

List endpoints in a Sophos Central tenant with optional filtering by type, health status, tamper protection, hostname, or free-text search. Returns paginated results.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by endpoint type
viewNoType of view to return (basic/summary/full)
fieldsNoComma-separated list of fields to include in a partial response
onlineNoFilter to only online endpoints
searchNoFree-text search across endpoint fields
page_keyNoPagination key from a previous response
group_idsNoComma-separated group UUIDs to filter by assigned group
page_sizeNoNumber of results per page (default 50)
tenant_idYesTarget tenant ID
ip_addressesNoComma-separated IP addresses to filter by
health_statusNoFilter by overall health status
mac_addressesNoComma-separated MAC addresses to filter by (EUI-48 or EUI-64)
tamper_enabledNoFilter by tamper protection enabled/disabled
last_seen_afterNoFind endpoints last seen after this date-time (ISO 8601)
isolation_statusNoFilter by isolation status
last_seen_beforeNoFind endpoints last seen before this date-time (ISO 8601)
hostname_containsNoFilter endpoints whose hostname contains this substring

TDQS

A3.9/5.0
Behavior4/5

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

The description adds value beyond annotations by disclosing that results are paginated. Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description confirms safe read behavior. There is no contradiction. However, it could further clarify that the tool may return large result sets or require specific permissions.

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 concise: two sentences that front-load the action and resource, list key filters, and note pagination. No unnecessary words. It is well-structured for quick comprehension.

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 17 parameters, no output schema, and no nested objects, the description is adequate but incomplete. It mentions paginated results but does not describe the return format or pagination mechanism (e.g., page_key). It also omits details about required parameters (tenant_id) and the meaning of openWorldHint. More output 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?

With 100% schema description coverage, the baseline is 3. The description summarizes key filter parameters (type, health, tamper, hostname, search) but does not add new meaning beyond what the schema already provides. It does not explain the relationship between parameters or their default behaviors.

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's purpose: listing endpoints in a Sophos Central tenant. It specifies the verb 'List', the resource 'endpoints', and mentions optional filtering criteria. This effectively distinguishes it from sibling tools like sophos_list_tenants or sophos_list_alerts.

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 listing all endpoints with filters, but does not provide explicit guidance on when to use this tool versus alternatives like sophos_list_migration_endpoints or sophos_list_policy_endpoints. It also lacks mention of prerequisites, such as the need for an authenticated session or a valid tenant_id.

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

sophos_list_exclusionsA
Read-only

List global scanning exclusions for a tenant. Optionally filter by exclusion type (path, process, web, pua, amsi, behavioral, certificateSigner).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
typeNoFilter by exclusion type
page_sizeNoResults per page (default 50)
tenant_idYesTenant UUID

TDQS

A4.2/5.0
Behavior3/5

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

The description aligns with annotations (readOnlyHint=true, destructiveHint=false) by stating 'list', confirming a safe read operation. It adds context about 'global scanning exclusions' and optional filtering. However, it does not mention pagination behavior or rate limits, which would be beneficial. Given annotations already cover safety, a score of 3 is appropriate.

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 extremely concise: two sentences (20 words), no redundant information. Every word is meaningful, front-loading the core purpose and then specifying the optional filter. 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 simple list tool with annotations providing safety context, the description covers the main points: purpose and filtering. It does not mention that tenant_id is required (though schema shows it) or pagination parameters (page, page_size). Adding a note about pagination would make it more complete, but overall it is adequate given the schema.

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?

With 100% schema description coverage, the schema already documents all parameters. The description adds value by listing the exact enum values for the 'type' field in plain text: 'path, process, web, pua, amsi, behavioral, certificateSigner', which helps the agent quickly understand valid filter options without parsing the schema. This exceeds the baseline 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 clearly states 'List global scanning exclusions for a tenant' with optional filtering by type. It uses a specific verb ('list') and explicitly identifies the resource ('global scanning exclusions'). This distinguishes it from other exclusion-related tools like sophos_create_exclusion, sophos_get_exclusion, and sophos_update_exclusion.

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

Usage Guidelines4/5

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

The description implies usage: when you need to view exclusions, optionally filtered by type. It does not explicitly state when not to use it or provide alternatives (e.g., use get_exclusion for a single exclusion), but the context from sibling tools makes the distinction clear. Adding a statement like 'Use this for filtered listing; for individual exclusions use get_exclusion' would improve clarity.

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

sophos_list_exploit_mitigation_appsA
Read-only

List exploit mitigation applications and their protection status. Filter by type ('detected' for auto-detected, 'custom' for manually added) or by modification date.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
typeNoFilter by application type: 'detected' (auto-detected) or 'custom' (manually added)
modifiedNoReturn applications modified after this ISO 8601 timestamp
page_sizeNoResults per page (default 50)
tenant_idYesTenant UUID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds no behavioral traits beyond that. It does not mention pagination, rate limits, or any side effects, but with annotations covering safety, a score of 3 is appropriate.

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-loads the core purpose, and includes filtering details without any wasted words. Every sentence 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?

Given the tool is a simple list with filtering and pagination, the description adequately covers the purpose and filter parameters. It hints at output with 'protection status' but lacks details on response structure. With no output schema, a score of 4 is reasonable.

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 baseline is 3. The description restates the filter options ('detected'/'custom', modification date) which are already in the schema descriptions. It adds minimal new meaning, hence score 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 clearly states the tool lists exploit mitigation applications and their protection status, with filtering by type or modification date. This specific verb+resource combination distinguishes it from sibling tools like get (single app), create, or update.

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 mentions filtering options but provides no explicit guidance on when to use this tool versus alternatives (e.g., get_exploit_mitigation_app for a single app). Usage context is implied but lacks exclusions or alternative recommendations.

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

sophos_list_exploit_mitigation_categoriesA
Read-only

List exploit mitigation categories (the types of exploits that can be individually enabled/disabled per application).

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds context that the categories relate to per-application exploit mitigation but does not disclose additional behavioral traits beyond what annotations provide.

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 immediately states the action and resource. No redundant or unnecessary words.

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 list operation with one required parameter and no output schema, the description provides adequate context: what is listed (categories) and the broader purpose (per-application exploit mitigation).

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?

Input schema has 100% coverage with one parameter (tenant_id) described as 'Tenant UUID'. The description does not add any further meaning or usage details beyond the schema.

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 clearly identifies the resource ("exploit mitigation categories"). It distinguishes itself from sibling tools like sophos_list_exploit_mitigation_apps by mentioning the context of per-application enable/disable.

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?

No explicit guidance on when to use this tool versus alternatives. The context is implied from the name and description, but there is no when-not-to-use or mention of other tools for more specific needs.

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

sophos_list_firewall_groupsA
Read-only

List all firewall groups in a tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, starting with 1
searchNoSearch term
page_sizeNoNumber of results per page
tenant_idYesTenant UUID
page_totalNoWhether to calculate and return the number of pages
search_fieldsNoComma-separated fields to match. Valid: name, parentId
recurse_subgroupsNoWhether to include nested child groups

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false. The description adds no further behavioral context beyond 'list all'. It does not contradict annotations but also does not elaborate on pagination, recursion, or search behavior.

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 with no waste. While it lacks structure, it front-loads the key information adequately for a simple list operation.

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 straightforward list tool, the description and schema together provide sufficient context including required tenant_id, pagination, search, and recursion options. No output schema, but return format is implied. Minor gap: no mention that all groups are listed (scope).

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 for all 7 parameters. The description adds no additional meaning beyond what is already in the schema; it only names the resource and action.

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 'List all firewall groups in a tenant' clearly specifies the action (list) and resource (firewall groups) with a scope (in a tenant). It distinguishes from sibling tools like sophos_get_firewall_group (single group) and sophos_create_firewall_group.

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 provides no guidance on when to use this tool versus alternatives (e.g., sophos_get_firewall_group, sophos_create_firewall_group). It does not mention prerequisites, context, or exclusions.

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

sophos_list_firewallsB
Read-only

List all managed firewalls in a Sophos Central tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number to fetch, starting with 1
searchNoFree-text search across firewall fields
group_idNoFilter by firewall group ID, or 'ungrouped' for firewalls not in any group
page_sizeNoNumber of results per page (default 100)
tenant_idYesTenant UUID
page_totalNoWhether to calculate and return the number of pages

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds no extra behavioral context beyond stating it lists all firewalls, which aligns with annotations but does not provide additional transparency about pagination or filtering effects.

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?

Single, clear sentence with no extraneous information. Efficient and front-loaded.

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 list operation but does not explain pagination, filtering options, or that tenant_id is required. Given no output schema, more context on returned data 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 schema fully documents each parameter. The description does not add any new meaning beyond the schema, meeting the baseline 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 clearly states the verb 'List', the resource 'managed firewalls', and the scope 'in a Sophos Central tenant'. This distinguishes it from sibling list tools like sophos_list_tenants or sophos_list_endpoints.

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 on when to use this tool versus alternatives, nor any conditions or prerequisites. The description lacks context for appropriate use cases.

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

sophos_list_ips_exclusionsB
Read-only

List intrusion prevention system (IPS) exclusions for a tenant (traffic excluded from IPS scanning).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
page_sizeNoResults per page (default 50)
tenant_idYesTenant UUID

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds context about the purpose of exclusions but does not disclose pagination behavior or authorization requirements. No contradictions.

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?

Single sentence that is front-loaded with the action and resource. No unnecessary words.

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?

No output schema; description does not indicate the structure of exclusion entries, pagination behavior, or how to retrieve all items. Lacks completeness for a list tool.

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 baseline is 3. The description does not add extra meaning beyond the schema; it only restates the resource context.

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 'IPS exclusions', and adds context about what IPS exclusions are (traffic excluded from IPS scanning). It distinguishes itself from the general sophos_list_exclusions tool by specifying 'IPS'.

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 on when to use this tool versus siblings like sophos_get_ips_exclusion or sophos_list_exclusions. Does not mention alternatives or prerequisites.

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

sophos_list_isolation_exclusionsA
Read-only

List isolation exclusions (IP/port combinations that remain reachable when an endpoint is network-isolated).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
page_sizeNoResults per page (default 50)
tenant_idYesTenant UUID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds useful context about IP/port combinations remaining reachable during network isolation, but adds no further behavioral traits beyond what annotations and purpose imply.

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, front-loaded with the core purpose, and contains no redundant information. 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 list tool with no output schema, the description explains what isolation exclusions are. It implicitly conveys pagination via parameters but doesn't elaborate on return format or sorting. Still, it is sufficiently complete for common use.

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?

Input schema has 3 parameters with 100% description coverage. The description does not add any additional meaning beyond what the schema already provides, so 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 clearly states the verb 'list' and the resource 'isolation exclusions', and explains what these exclusions are (IP/port combinations reachable during network isolation). It distinguishes itself from sibling tools like sophos_get_isolation_exclusion or sophos_create_isolation_exclusion.

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 provides context on what isolation exclusions are but does not explicitly state when to use this tool versus alternatives like get, create, update. It implies it is for listing all exclusions, but lacks explicit guidance on when not to use it or alternative tools.

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

sophos_list_live_query_categoriesA
Read-only

List Live Discover query categories available for the tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false. The description adds no additional behavioral context beyond listing, which is already evident. No mention of auth, rate limits, or pagination.

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?

Single sentence with no redundant information. Front-loaded with verb and object.

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 a single required parameter and no output schema, the description is adequate. It provides enough context to use correctly, though sibling tools exist for related operations.

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?

Only one parameter (tenant_id) with description 'Tenant UUID' in schema. Description does not add meaning beyond the schema. Schema coverage is 100%, so 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?

Clearly states the action 'List' and the resource 'Live Discover query categories' scoped to 'the tenant'. Distinguishes from sibling tools like sophos_list_xdr_query_categories.

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

Usage Guidelines4/5

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

The description implies usage context (listing categories for a tenant) but does not explicitly state when to use versus alternatives, nor provide exclusions. However, for a simple list operation, this is acceptable.

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

sophos_list_live_query_runsA
Read-only

List all Live Discover query runs (history) with optional filtering by status, result, or saved query ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
resultNoFilter runs by result: notAvailable | succeeded | failed | timedOut
statusNoFilter runs by status: pending | started | finished
query_idNoFilter runs by the saved query UUID they were started from
page_sizeNoNumber of runs per page (max 100, default 50)
tenant_idYesTenant UUID
page_totalNoInclude total page/item counts in the response
page_from_keyNoPagination key (pages.nextKey) from a previous response

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false. Description adds filtering options but does not elaborate on pagination behavior or potential large result sets, which are implied by openWorldHint and 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?

Single sentence, 16 words, no redundancy. Front-loaded with action and resource. Every part is essential.

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 list tool with no output schema, description covers core functionality and filtering but omits explicit mention of pagination (though parameters imply it) and time range for history. Adequate but not 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 coverage is 100% with clear parameter descriptions. Description summarizes filtering by status, result, or query ID, which matches schema but adds no new details. Pagination parameters are not highlighted beyond schema.

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?

Description uses specific verb 'List' and resource 'Live Discover query runs (history)', clearly distinguishing from sibling tools like sophos_get_live_query_status (single run) and sophos_list_saved_live_queries (saved queries).

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 on when to use this tool vs alternatives (e.g., sophos_get_live_query_status for a specific run). No exclusions or prerequisites mentioned. Agent must infer usage from context.

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

sophos_list_mailboxesA
Read-only

List email mailboxes in a tenant with optional filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExact match by mailbox name
typeNoFilter by mailbox type
emailNoExact match by email address
blockedNoFilter by blocked status
page_sizeNoResults per page
tenant_idYesTenant UUID
created_afterNoMailboxes created after this date (ISO 8601)
page_from_keyNoPagination key from previous response
created_beforeNoMailboxes created before this date (ISO 8601)
name_starts_withNoFilter mailboxes where name starts with this string
email_starts_withNoFilter mailboxes where email starts with this string

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is clear. Description adds no additional behavioral context such as pagination behavior, rate limits, or response format 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?

Single sentence is highly concise and front-loaded with the key action and resource. Every word earns its place with no waste.

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?

Despite having 11 parameters and no output schema, description is only one sentence. It does not explain pagination, required tenant_id, or return values, leaving gaps for effective agent usage.

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%. Description only adds generic phrase 'with optional filters', which does not provide meaning beyond what schema already states.

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?

Description uses specific verb 'List' with resource 'email mailboxes', and optional filters. It clearly distinguishes from sibling mailbox tools like sophos_get_mailbox (single) and sophos_create_mailbox (create).

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?

Description implies usage context for listing mailboxes with filters, but does not explicitly state when to use this over other list tools (e.g., sophos_list_users) nor provide exclusions or alternatives.

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

sophos_list_migration_endpointsA
Read-only

List the endpoints included in a specific endpoint migration job and their migration status.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
migration_job_idYesMigration job ID

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds minimal behavioral context. It confirms the tool lists endpoints and their status, which is consistent with read-only behavior. No contradiction.

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, concise sentence with no unnecessary words. It front-loads the action and resource, earning 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?

Given the complete schema and annotations, the description is sufficient for an agent to understand what the tool does and what it returns. No output schema, but the description hints at the return content (endpoints and status).

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% with both parameters described (tenant_id and migration_job_id). The description does not add additional meaning beyond what the schema already provides, so 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 clearly states the tool lists endpoints in a specific migration job and their migration status. It uses a specific verb (list) and resource (endpoints in a migration job), distinguishing it from siblings like get_migration_job (which likely gets job details) and start_migration.

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 when to use (when needing endpoints and statuses for a specific migration job) but provides no explicit guidance on when not to use or alternatives. Given the sibling tools, such guidance would be helpful but is not provided.

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

sophos_list_mobile_app_groupsA
Read-only

List mobile app groups (managed app collections) in a Sophos Mobile tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
searchNoSearch term
platformNoFilter by platform
page_sizeNoResults per page
tenant_idYesTenant UUID

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds only the obvious fact that it lists groups, with no additional behavioral details (e.g., pagination, sorting, return structure). Given high annotation coverage, the description adds minimal value.

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

Conciseness5/5

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

The description is a single clear sentence with no unnecessary words. It efficiently conveys the core purpose without redundancy.

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 lacks information about return values or pagination behavior, which is important for a list tool with no output schema. Given the tool has 5 parameters and no output schema, the description is minimally adequate but would benefit from additional context about what the response contains.

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 for all 5 parameters, including defaults and enums. The description does not add any parameter-specific guidance beyond what the schema provides. 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 clearly states the action (List) and the resource (mobile app groups) with a clarifying parenthetical '(managed app collections)'. It distinguishes itself from sibling tools like sophos_get_mobile_app_group by specifying a list operation.

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?

No explicit usage guidelines are provided. The description implies usage for listing all groups, but does not mention when to use an alternative (e.g., sophos_get_mobile_app_group for a single group) or any prerequisites. The context from sibling tool names provides some implicit guidance, but the description itself lacks direct advice.

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

sophos_list_mobile_device_groupsB
Read-only

List mobile device groups in a Sophos Mobile tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
sortNoSort expression
searchNoFree-text search term
page_sizeNoResults per page
tenant_idYesTenant UUID

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already convey readOnlyHint=true and destructiveHint=false, so the safety profile is clear. However, the description adds no information about result format, pagination behavior, or any side effects beyond the annotations, missing an opportunity to provide useful behavioral context.

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 gets straight to the point. It is front-loaded with the verb and resource. However, it may be too terse, leaving out optional context without being wasteful.

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 the lack of an output schema and the presence of pagination parameters, the description could mention that the response is a list or paginated. However, for a simple read-only list tool with annotations, it is minimally complete but leaves gaps in expected output structure.

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 for all 5 parameters. The tool description adds no additional meaning beyond what the schema already provides, so it meets the baseline but does not enhance it.

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 action ('List') and resource ('mobile device groups') within the context of a Sophos Mobile tenant, which is specific and distinguishes from sibling tools like 'sophos_get_mobile_device_group' or 'sophos_list_mobile_devices'.

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 provides no guidance on when to use this tool versus alternatives, no prerequisites (e.g., tenant existence), and no mention of context like pagination or sorting. This is insufficient for an AI agent to decide between this and related list tools.

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

sophos_list_mobile_device_policiesA
Read-only

List MDM policies assigned to a specific mobile device.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
device_idYesMobile device UUID
page_sizeNoResults per page
tenant_idYesTenant UUID

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, covering safety. The description adds scope ('assigned to a specific mobile device') but does not disclose pagination behavior, rate limits, or response details. With annotations present, the description is minimally adequate.

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 of 10 words, front-loaded with the verb and resource. No extraneous information. Highly concise.

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

Completeness3/5

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

For a tool with 4 parameters (2 required) and no output schema, the description explains the purpose but omits pagination details (page, page_size) and expected return format. Given the complexity, it is partially complete but lacks output hints.

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%—all four parameters have descriptions in the schema. The tool description adds no additional parameter details beyond the schema, so the baseline score 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 clearly states it lists MDM policies assigned to a specific mobile device, using the specific verb 'List' and resource 'MDM policies assigned to a specific mobile device'. It is distinct from siblings like sophos_list_mobile_devices (lists devices) and sophos_list_policies (general policies).

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 does not provide guidance on when to use this tool versus alternatives. It does not mention prerequisites, context, or exclusions. Siblings include many policy-related tools, but no comparison is given.

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

sophos_list_mobile_devicesB
Read-only

List mobile devices enrolled in Sophos Mobile for a tenant. Supports filtering by platform, management type, compliance status, health state, ownership, device groups, and date ranges. Returns paginated results.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (starting at 1)
sortNoSort expression (e.g. 'name:asc')
fieldsNoComma-separated list of fields for a partial response
searchNoFree-text search term
platformNoFilter by device platform / OS
compliantNoFilter by compliance status (true=compliant, false=non-compliant)
page_sizeNoNumber of results per page
tenant_idYesTenant UUID
page_totalNoWhether to include total page count in the response
health_stateNoFilter by health status
created_afterNoISO 8601 datetime — return devices created after this time
managed_stateNoFilter by management status
created_beforeNoISO 8601 datetime — return devices created before this time
ownership_typeNoFilter by device owner type
last_seen_afterNoISO 8601 datetime — return devices last seen after this time
management_typeNoFilter by management type (e.g. mdm, mam)
device_group_idsNoComma-separated device group UUIDs to filter by
last_seen_beforeNoISO 8601 datetime — return devices last seen before this time
violation_severityNoFilter by compliance violation severity

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already indicate read-only and non-destructive behavior. The description adds pagination and filter capabilities, which are useful but not extensive. No contradictions with annotations.

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 front-load the core action and then list filters and pagination. Every word serves a purpose, no filler. Highly concise for a tool with 19 parameters.

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 19 parameters and no output schema, the description covers the main action and filters but omits details like required tenant_id, response structure beyond pagination, rate limits, or authentication context. Adequate but not thorough.

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 schema already describes all 19 parameters. The description summarizes filter types but does not add meaning beyond the schema's individual parameter descriptions. 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 clearly states it lists mobile devices and mentions filtering options. However, it does not explicitly differentiate from sibling tools like sophos_list_mobile_device_policies or sophos_get_mobile_device, leaving the agent to infer its unique role.

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 provides no guidance on when to use this tool versus alternatives. It does not specify any prerequisites, exclusions, or comparative context with sibling tools that also list resources (e.g., sophos_list_endpoints, sophos_list_alerts).

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

sophos_list_mobile_operating_systemsA
Read-only

List mobile operating systems known to Sophos Mobile, with optional filtering by platform or version prefix.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
versionNoFilter by OS version prefix (startsWith match)
platformNoFilter by platform
page_sizeNoResults per page
tenant_idYesTenant UUID

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, making the safety profile clear. The description adds no additional behavioral details (e.g., pagination, rate limits) beyond its basic 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, front-loaded sentence that efficiently conveys the tool's action and optional filters with 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?

With full schema coverage and clear annotations, the description is adequate for a list tool. It could mention pagination (already in schema) but overall provides sufficient context for an AI agent.

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 and documents all parameters thoroughly. The description only reiterates the filtering capability without adding new syntax or meaning.

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 lists mobile operating systems with optional filtering by platform or version, which distinguishes it from sibling tools like sophos_get_mobile_operating_system.

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

Usage Guidelines4/5

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

The description provides clear context for use (listing with filters) but does not explicitly state when not to use it or mention alternatives like sophos_get_mobile_operating_system for a single item.

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

sophos_list_policy_endpointsB
Read-only

List the endpoints or endpoint groups governed by a specific policy.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_keyNoPagination cursor key from a previous response
page_sizeNoResults per page
policy_idYesPolicy UUID
tenant_idYesTarget tenant ID

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already provide safety context (readOnlyHint, destructiveHint). The description adds minimal behavioral context beyond the core function, such as policy-level scoping. It does not discuss pagination behavior, error cases, or response structure, but given the strong annotation coverage, the description's limited contributions are acceptable.

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 that gets straight to the point with no redundancy or unnecessary details. It is well-suited for a minimally complex read operation.

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?

While the tool is straightforward, the description omits information about output format, pagination implications, and potential limitations. Given the lack of an output schema, additional context would be helpful to set agent expectations about the return structure.

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 covers all parameters with descriptions (100% coverage). The description does not add additional meaning beyond what the schema provides. Since the schema is sufficient, a baseline 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 action ('list'), the resource ('endpoints or endpoint groups'), and the scope ('governed by a specific policy'). This distinguishes it from sibling tools like sophos_list_endpoints (which lists all endpoints) and sophos_get_endpoint_group (which retrieves a specific group). However, ambiguity remains regarding whether both endpoints and groups are returned together or separately.

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 provides no explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or scenarios where other tools like sophos_list_endpoints or sophos_get_endpoint_group would be more appropriate. This leaves the agent without clear decision-making context.

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

sophos_list_post_delivery_quarantine_attachmentsB
Read-only

List attachments of a post-delivery quarantined message.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
message_idYesPost-delivery quarantine message UUID

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's 'list' matches. No additional behavioral traits disclosed beyond what annotations provide, such as pagination or return format.

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?

Single sentence with no waste. Front-loaded with verb and resource. Perfectly concise.

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 good annotations, the description is minimally adequate. However, it omits details about the output (e.g., attachment properties) which could aid agent 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 coverage is 100% and both parameters are described. The description adds no meaning beyond the input schema; 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?

Description clearly states verb 'list' and resource 'attachments of a post-delivery quarantined message'. The 'post-delivery' qualifier distinguishes it from 'sophos_list_quarantine_attachments', but could be more explicit about the scope.

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 on when to use this tool versus siblings like 'sophos_list_quarantine_attachments' (for regular quarantine). No prerequisites mentioned (e.g., needing a message_id from post-delivery search).

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

sophos_list_quarantine_attachmentsA
Read-only

List attachments of a pre-delivery quarantined message.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
message_idYesQuarantine message UUID

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the tool is safe. The description adds no extra behavioral context (e.g., result format, pagination), so it meets the baseline with annotations.

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 effectively communicates the tool's purpose with no redundant 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?

Given the presence of sibling tools for related operations, the description is adequate but does not specify the return value structure (no output schema) or any prerequisites beyond the parameters.

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 additional meaning beyond what the schema provides.

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 action 'List attachments' and the resource 'pre-delivery quarantined message', using a specific verb and resource that distinguishes it from sibling tools like sophos_list_post_delivery_quarantine_attachments.

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 have a pre-delivery quarantined message ID, but does not explicitly state when to use this tool vs alternatives (e.g., download vs list) and provides no exclusion criteria.

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

sophos_list_quotesA
Read-only

List distributor quotes from the Sophos Business Automation API. Only approved quotes are returned. Requires a Distributor ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number to fetch, starting at 1
typeNoFilter by quote type
page_sizeNoNumber of results per page (max 500)
approved_toNoInclude quotes approved up to this ISO 8601 datetime (e.g. 2023-11-18T12:01:21Z)
approved_fromNoInclude quotes approved from this ISO 8601 datetime (e.g. 2023-11-18T12:01:21Z)
autogeneratedNoInclude only autogenerated quotes when true
distributor_idYesDistributor ID (X-Distributor-ID header value)
amend_and_extendNoFilter to only Amend-and-Extend quotes (true) or non-Amend-and-Extend quotes (false)
created_by_partnerNoFilter to only partner-created quotes (true) or non-partner quotes (false)
include_nfr_quotesNoInclude Not For Resale (NFR) quotes when true
created_minutes_agoNoInclude quotes created within the past N minutes
expires_within_daysNoInclude quotes expiring within the next N days
approved_minutes_agoNoInclude quotes approved within the past N minutes
billing_category_typeNoFilter by quote line billing category type

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the read-only nature is known. The description adds value by specifying that only approved quotes are returned, which is a key behavior not in the annotations. It does not mention pagination or rate limits, but for a read tool, this is adequate.

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 long, front-loads the core purpose, and contains no filler or redundant information. Every word 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 many optional filters (14 parameters) and no output schema. The description does not explain typical usage patterns or the return structure (e.g., paginated list). The schema partially compensates with detailed parameter descriptions, but completeness is moderate.

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 all parameters are documented. The description only repeats the requirement for distributor_id, which is already in the schema. It does not add extra semantic value beyond what the schema provides.

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 action ('List distributor quotes'), the resource ('distributor quotes'), and constraints ('Only approved quotes are returned', 'Requires a Distributor ID'). It effectively distinguishes from the sibling tool sophos_get_quote and sets clear expectations.

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 mentions that only approved quotes are returned and that a distributor ID is required, but it does not explicitly state when to use this tool instead of alternatives (e.g., sophos_get_quote for a single quote). The guidance is implied but incomplete.

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

sophos_list_role_assignmentsB
Read-only

List all admins assigned to a specific partner role.

ParametersJSON Schema
NameRequiredDescriptionDefault
role_idYesPartner role UUID

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true. The description adds 'list all admins assigned to a specific partner role', which reiterates the read nature but does not disclose additional behaviors like pagination or response format. Value added is minimal but consistent.

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?

Single sentence with no unnecessary words. Perfectly concise and front-loaded.

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 the simple input schema and annotations, the description is minimally sufficient. However, there is no output schema and the description does not hint at the return format (e.g., list of admin objects), so it falls short of being complete for a list operation.

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 the 'role_id' parameter described as 'Partner role UUID'. The description does not provide extra meaning beyond the schema, so baseline 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?

Description clearly states 'list all admins assigned to a specific partner role', providing specific verb and resource. While it distinguishes from sibling tools like sophos_list_admin_role_assignments by focusing on partner roles, it does not explicitly mention the alternative, so it is not a perfect 5.

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 on when to use this tool versus alternatives. With many sibling tools for listing admin assignments (e.g., sophos_list_admin_role_assignments), explicit usage context is missing.

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

sophos_list_saved_live_queriesB
Read-only

List saved Live Discover queries available for the tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNoNumber of queries per page (max 250, default 50)
tenant_idYesTenant UUID
page_from_keyNoPagination key (pages.nextKey) from a previous response

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety profile is covered. Description adds minimal behavioral context (only scoping to tenant). Does not disclose pagination behavior, rate limits, or that results may change (openWorldHint is set but not explicitly 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?

Single sentence, clear and direct. No redundant words. Front-loaded with the key action and resource.

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?

Tool has no output schema, so description should hint at return value (e.g., paginated list). It does not. Annotations provide safety info but description lacks details on output format or pagination. Adequate but incomplete for an agent to fully understand the tool's behavior.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for each parameter. The description does not add any meaning or usage tips beyond what the schema provides. Baseline 3 is appropriate as the schema carries the burden.

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?

Description clearly states verb 'list' and resource 'saved Live Discover queries' with scope 'for the tenant'. It distinguishes the tool from siblings like 'sophos_get_saved_live_query' (singular) and 'sophos_list_live_query_categories', but does not explicitly mention the differentiation.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like 'sophos_get_saved_live_query' for a specific query or 'sophos_list_live_query_runs' for run history. No mention of prerequisites or usage context beyond listing.

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

sophos_list_software_commentsC
Read-only

List user-added comments for all static software packages in a tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already indicate read-only and non-destructive behavior. The description adds no extra behavioral context such as pagination, ordering, or performance implications.

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?

Single sentence, clear, and efficient. No fluff.

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?

Lacks details about return structure or any system behavior. No output schema, and the description doesn't compensate for that.

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?

Only one parameter with schema description. Description adds no extra 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 clearly states it lists user-added comments for static software packages in a tenant. It distinguishes from 'sophos_get_software_comment' by being a list operation, but does not explicitly differentiate from siblings.

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 on when to use this tool versus alternatives like 'sophos_get_software_comment'. No context for prerequisites or appropriate scenarios.

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

sophos_list_software_packagesA
Read-only

List available static (fixed-version) software packages. Supports filtering by endpoint type, platform, package type, and date ranges.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort field and direction (e.g. 'releasedAt:desc')
typeNoFilter by package type
platformNoFilter by operating system platform
tenant_idYesTenant UUID
expires_toNoFilter packages expiring on or before this ISO 8601 date
released_toNoFilter packages released on or before this ISO 8601 date
expires_fromNoFilter packages expiring on or after this ISO 8601 date
endpoint_typeNoFilter by endpoint type
released_fromNoFilter packages released on or after this ISO 8601 date

TDQS

A3.9/5.0
Behavior3/5

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

Annotations (readOnlyHint=true, openWorldHint=true) already indicate this is a read-only, non-destructive list. The description adds that it lists static packages, which provides some context but does not detail pagination, authorization needs, or rate limits.

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 concise sentences with front-loaded purpose. No redundant or unnecessary information. Every word 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 description is adequate for a simple read-only listing tool but lacks details on return structure, pagination, or response behavior. With 9 parameters and no output schema, more context about what is returned would improve completeness.

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 description summarizes key filterable parameters (endpoint type, platform, package type, date ranges) that map directly to schema properties. Since schema descriptions cover 100% of parameters, this summary provides useful emphasis beyond the raw schema.

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 'software packages', specifying 'static (fixed-version)' to differentiate from recommended packages. This helps distinguish it from siblings like sophos_get_recommended_packages.

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 this tool is for static/fixed-version packages by mentioning 'static' but does not explicitly state when to use it over sophos_get_recommended_packages or other listing tools. No when-not guidance is provided.

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

sophos_list_switch_tasksA
Read-only

List management tasks for the tenant's switches, with optional filtering by policy type and pagination. Tasks represent configuration changes pushed to managed switches.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (starting at 1)
typeNoFilter by policy type (e.g. macFiltering)
fieldsNoComma-separated fields to include in the response (e.g. 'switches')
page_sizeNoResults per page (max 500)
tenant_idYesTenant UUID
page_totalNoWhether to include total page count in the response

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false. The description adds context that tasks represent configuration changes pushed to switches, confirming the read-only nature and providing additional behavioral insight beyond the annotations.

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-loaded with the core purpose and followed by a clarifying sentence. No extraneous information, every sentence is essential.

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 the tool has 6 parameters, no output schema, and good annotations, the description explains the resource, action, optional filters, and the nature of tasks. It lacks detail on return format but is otherwise complete for an agent to understand usage.

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 schema already documents all parameters. The description summarizes filtering and pagination but adds minimal new meaning beyond what is in the schema, resulting in a baseline score.

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 lists management tasks for tenant switches, with filtering and pagination options. It effectively distinguishes from sibling tools like sophos_list_wifi_tasks by specifying 'switches' as the resource.

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

Usage Guidelines4/5

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

The description indicates when to use the tool (listing switch tasks) and mentions optional filtering and pagination. It does not explicitly exclude use cases or mention alternatives, but the context is clear enough for selection among siblings.

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

sophos_list_tenant_adminsB
Read-only

List all administrators for a specific managed tenant using the partner-level endpoint. For tenant-scoped admin management (common/v1), use the tenant admin tools instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesThe unique ID (UUID) of the tenant whose admins to list

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that this is a partner-level endpoint and lists 'all' administrators, but doesn't describe the return format, pagination behavior, or any other behavioral traits beyond what annotations provide.

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 efficient sentences: first states purpose, second provides alternative. No wasted words and front-loaded with the core action.

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?

Despite the schema covering the parameter, the description omits return value information (no output schema) and does not clarify pagination or list limits, which is critical for a list tool. The existence of a paged sibling raises questions about 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 coverage is 100%, so baseline is 3. The description adds no additional parameter details beyond what the schema already states; the single parameter tenant_id is fully described in the schema.

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 it lists all administrators for a specific managed tenant at the partner level, using a specific verb and resource. It differentiates from tenant-scoped tools but does not explicitly contrast the paged sibling, leaving slight ambiguity about 'all' vs paginated results.

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 provides when-not-to-use guidance by directing to tenant admin tools for common/v1 scope. However, it fails to address the closely related sibling sophos_list_tenant_admins_paged, leaving the agent uncertain when to choose one over the other.

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

sophos_list_tenant_admins_pagedA
Read-only

List administrators for a specific tenant with pagination support. Alias of sophos_list_tenant_admins that exposes pageSize and pageFromKey.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_keyNoPagination cursor key from a previous response
page_sizeNoResults per page (default 50)
tenant_idYesTenant UUID

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so no contradiction. Description adds pagination support context but not additional behavioral traits like rate limits or authentication requirements. Acceptable given annotation coverage.

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, direct and efficient. No extraneous information. Every word serves purpose.

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 pagination and good annotations, description is sufficient. Missing output schema but return value is implied by tool nature. Could be slightly enhanced with note about response format, but current is adequate.

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 covers 100% of parameters with descriptions. Description mentions pageSize and pageFromKey but doesn't add meaning beyond schema. 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?

Clearly states 'List administrators for a specific tenant with pagination support.' Identifies itself as an alias of sophos_list_tenant_admins, distinguishing by exposing pagination parameters. Verb + resource + scope are explicit.

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?

Implies usage when pagination is needed by noting the alias and exposed parameters. No explicit 'when not to use' or alternatives, but sibling differentiation is clear.

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

sophos_list_tenant_permission_setsA
Read-only

List all permission sets available at the tenant level. Use the returned IDs when creating custom roles.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds scope ('tenant level') but does not disclose additional behavioral traits beyond what annotations provide.

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 concise sentences, front-loaded with the core action and scope. No extraneous 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?

Given the tool's simplicity (one parameter, no output schema), the description adequately covers its purpose and how to use the results. However, it could mention that it returns the full list of permission sets.

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% (tenant_id with description 'Tenant UUID'). The description reinforces 'tenant level' but adds no new parameter-level meaning beyond the schema.

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 'List all permission sets available at the tenant level' and explains their use ('Use the returned IDs when creating custom roles'), making the tool's purpose unambiguous and distinct from 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 description implies when to use this tool—before creating custom roles—but does not explicitly mention when not to use it or provide alternatives. The context is clear enough for an agent.

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

sophos_list_tenant_rolesA
Read-only

List all roles available in a tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID

TDQS

A3.5/5.0
Behavior3/5

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

Annotations readOnlyHint=true and destructiveHint=false already indicate a safe read operation. The description's 'List all roles' aligns with read-only behavior. No contradictions, but the description adds nothing beyond the annotations.

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 with no unnecessary words. It is appropriately brief for such a simple tool, though it lacks any structural elements like bullet points.

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 the tool's simplicity (list operation, one required param, no output schema), the description plus schema and annotations provide sufficient context for an agent to use it correctly. Could mention return format but not essential.

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% with one parameter 'tenant_id' described as 'Tenant UUID'. The description does not add any 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.

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 'roles' with scope 'available in a tenant'. It distinguishes from siblings like sophos_get_tenant_role (single role) and sophos_list_tenant_admins (admins, not roles).

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 on when to use this tool versus alternatives such as sophos_get_tenant_role or sophos_list_tenant_admins. No context on prerequisites or follow-up actions.

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

sophos_list_tenantsA
Read-only

List all tenants managed by this Sophos Central Partner account. Returns tenant ID, name, data region, billing type, and regional API host for each tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNoNumber of tenants per page (default 100, max 1000)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the tool's safety is clear. The description adds context about the specific fields returned and the page_size parameter, but does not disclose details like rate limits or whether the list is complete or paginated beyond the parameter.

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, no wasted words. The purpose is front-loaded, and the list of returned fields is concise. Every sentence adds value.

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 a simple list tool with one optional parameter and no output schema, the description adequately explains what the tool returns and indicates pagination support via page_size. No 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?

The schema already describes the page_size parameter with default and max, providing 100% coverage. The description does not add any additional meaning beyond what the schema provides, so 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?

Clearly states the verb 'List' and resource 'tenants managed by this Sophos Central Partner account', and lists the returned fields (ID, name, data region, billing type, regional API host). This distinguishes it from sibling tools like sophos_get_tenant which retrieves a single tenant.

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 listing all tenants, but does not explicitly state when to use this tool versus alternatives like sophos_get_tenant or sophos_create_tenant. No exclusions or prerequisites mentioned.

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

sophos_list_tls_excluded_websitesA
Read-only

List websites excluded from TLS decryption inspection.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
page_sizeNoResults per page (default 50)
tenant_idYesTenant UUID

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is clear. The description adds no extra behavioral details (e.g., whether pagination is needed, or if results are limited). Given the annotations, the description is adequate but not enriched.

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 that immediately conveys the core purpose. It is concise, front-loaded, and contains no unnecessary 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?

While the tool is simple and annotations cover safety, the description lacks information about output format or pagination behavior. Given no output schema, the agent might need more detail, but for a list tool with annotations, this is passable.

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 does not add any meaning beyond what the schema already provides for each parameter (page, page_size, tenant_id). No parameter-specific guidance is given.

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 explicitly states the verb 'List' and the resource 'websites excluded from TLS decryption inspection', making the tool's function clear. It distinguishes well from sibling tools like sophos_update_tls_excluded_websites (update) and sophos_get_tls_decryption_settings (get settings).

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 provides no guidance on when to use this tool, when not to use it, or any prerequisites (e.g., requiring tenant_id). No alternatives are mentioned, leaving the agent to infer context from the sibling list.

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

sophos_list_user_groupsA
Read-only

List user groups in a tenant's directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoSearch string to filter groups
page_keyNoPagination cursor key from a previous response
page_sizeNoResults per page
tenant_idYesTenant UUID

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, signaling safe read-only operation. The description adds minimal behavioral context (scoping to a tenant's directory) but doesn't disclose pagination behavior, rate limits, or other traits beyond what annotations provide.

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 sentence of six words, making it highly concise. However, it packs minimal information and could benefit from a bit more context without losing conciseness. It earns its place but is not exceptionally structured.

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 the tool has four parameters (all well-documented in schema), read-only annotations, and no output schema, the description is adequate but not thorough. It omits mention of pagination or common usage patterns, which would help in complex scenarios. Complete enough for a simple list operation but could be improved.

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%, with all four parameters described. The description does not add any meaning beyond the schema definitions, which already specify types and roles (e.g., tenant_id required, search for filtering, page_key for pagination). Baseline score 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 'user groups', clearly indicating the tool's purpose. It distinguishes it from sibling tools like sophos_create_user_group and sophos_update_user_group which modify groups.

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 the basic use case (list user groups in a tenant) but does not provide guidance on when to use this tool versus alternatives like sophos_get_user_group for a single group or sophos_list_users_in_group for members. No exclusions or context are given.

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

sophos_list_usersB
Read-only

List directory users in a Sophos Central tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoSearch string to filter users
page_keyNoPagination cursor key from a previous response
page_sizeNoResults per page
tenant_idYesTenant UUID
source_typeNoFilter by directory source type

TDQS

B3.2/5.0
Behavior3/5

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

Annotations (readOnlyHint=true, destructiveHint=false) already communicate that this is a safe read operation. The description adds no additional behavioral context beyond the brief statement. It does not contradict annotations.

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 with no wasted words. It is front-loaded with the core action, but could benefit from a brief mention of key parameters like pagination.

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 list tool with 5 parameters, the description is minimal and does not summarize features like pagination or filtering, though the schema covers them. Annotations provide safety context. Overall, it is adequate but lacks context that would help an agent understand the full capability at a glance.

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 is documented. The tool description does not add meaning beyond the schema, earning the baseline score of 3.

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 directory users in a Sophos Central tenant, using a specific verb and resource. It implies a scope (directory users) but does not explicitly distinguish from sibling tools like sophos_list_users_in_group or sophos_list_tenant_admins, though the term 'directory' provides some differentiation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or usage restrictions. The openWorldHint annotation suggests flexible use, but the description itself gives no usage context.

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

sophos_list_users_in_groupA
Read-only

List all users that are members of a specific directory user group.

ParametersJSON Schema
NameRequiredDescriptionDefault
group_idYesUser group UUID
page_keyNoPagination cursor key from a previous response
page_sizeNoResults per page
tenant_idYesTenant UUID

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds no additional behavioral context beyond stating it lists users. No mention of pagination or result format.

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?

Single clear sentence of 14 words, no fluff, front-loaded with purpose.

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?

No output schema; description does not explain return format or pagination support. With openWorldHint=true, pagination info would be valuable. Incomplete for a list operation.

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 baseline 3. Description does not add extra parameter meaning beyond what's in the schema. No additional context for group_id or tenant_id.

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?

Description clearly states 'List all users that are members of a specific directory user group.' Uses specific verb 'List' and resource, distinguishing from sibling tools like sophos_list_users (all users) and sophos_list_user_groups (groups).

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?

No explicit when-to-use or alternatives provided. Usage implied by description but no guidance on when to use this vs. other list tools. Could mention it is for filtering by group.

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

sophos_list_web_control_categoriesA
Read-only

List all Web Control categories available for URL filtering. Category IDs are used when creating local site overrides.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, openWorldHint=true, and destructiveHint=false. The description adds that it lists 'all' categories and explains downstream usage, but does not disclose behavioral traits beyond what annotations offer. No contradiction.

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, no waste. First sentence states purpose, second provides motivation. Front-loaded 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 simple list tool with full schema coverage and safety annotations, the description is complete. It explains why to use the tool and the role of the output. Lack of output schema is not a gap as return format can be inferred from common patterns.

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% with tenant_id described as 'Tenant UUID'. The description adds no additional parameter meaning beyond the schema. 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 verb 'list' and resource 'Web Control categories' with context 'URL filtering'. It distinguishes from sibling tools like sophos_list_web_control_local_sites by mentioning that category IDs are used for creating local site overrides, implying this tool provides reference data.

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

Usage Guidelines4/5

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

The description indicates when to use this tool: to get category IDs for creating local site overrides. It does not explicitly mention when not to use or name alternatives, but the context is clear enough for an agent to infer appropriate usage.

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

sophos_list_web_control_local_sitesA
Read-only

List Web Control local site overrides (custom URL allow/block entries) for a tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
page_sizeNoResults per page (default 50)
tenant_idYesTenant UUID

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds minimal behavioral context. It clarifies the resource type (custom URL allow/block entries) but does not detail pagination behavior or response structure beyond what the schema provides.

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?

Single sentence, 15 words, front-loaded with the verb, no extraneous 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?

Lacks output schema, so the description could clarify what the returned list contains. With rich annotations and schema, it is adequate but not comprehensive for a list operation with optional 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 coverage is 100% with clear parameter descriptions for tenant_id, page, and page_size. The tool description does not add extra meaning beyond stating the tenant scope.

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 specifies the verb 'List', the resource 'Web Control local site overrides', and the scope 'for a tenant', distinguishing it from related tools like `sophos_get_web_control_local_site` which retrieves a single entry.

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 use this tool versus alternatives such as `sophos_get_web_control_local_site` for a single override. The description does not mention exclusions or context for pagination.

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

sophos_list_wifi_tasksA
Read-only

List management tasks for the tenant's Wi-Fi access points, with optional filtering by policy type and pagination. Tasks represent configuration changes pushed to managed access points.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (starting at 1)
typeNoFilter by policy type (e.g. macFiltering)
fieldsNoComma-separated fields to include in the response (e.g. 'accessPoints')
page_sizeNoResults per page (max 500)
tenant_idYesTenant UUID
page_totalNoWhether to include total page count in the response

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description's read-only nature is consistent. The description adds context that tasks represent configuration changes, but does not disclose further behavioral traits like pagination behavior or response format.

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 extremely concise: two sentences, no wasted words, front-loaded with purpose, and a brief explanation of what tasks are.

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 no output schema, the description adequately explains the resource and optional filtering. Annotations cover safety. It could mention return format, but overall complete enough given the tool's simplicity.

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% with all parameters having descriptions. The description summarizes optional filtering by policy type and pagination, but does not add new meaning beyond the schema. 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 action (list), resource (management tasks for Wi-Fi access points), and scope (tenant's, with optional filtering and pagination). It distinguishes itself from sibling tools like sophos_list_switch_tasks by explicitly mentioning 'Wi-Fi'.

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 Wi-Fi task listing but does not provide explicit guidance on when to use this tool versus alternatives (e.g., switch tasks) or mention any prerequisites or limitations.

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

sophos_list_xdr_queriesB
Read-only

List saved XDR query templates available for the tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNoNumber of queries per page (max 250, default 50)
tenant_idYesTenant UUID
page_from_keyNoPagination key (pages.nextKey) from a previous response

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the read-only nature is covered. However, the description adds no additional behavioral context such as pagination behavior, result ordering, or that the list is scrollable via page_from_key. The entire description merely restates the tool's function.

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 conveys the core purpose without extraneous words. Every word is necessary and efficiently communicates the tool's function.

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?

Despite good annotations, the description lacks important context for a paginated list tool. It does not mention that results are paginated, what the output looks like (e.g., an array of query templates), or how to handle pagination. The description is too sparse for a tool with 3 parameters and 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?

The input schema has 100% description coverage for all 3 parameters (tenant_id, page_size, page_from_key), so the schema already explains their meaning. The description adds no further parameter semantics beyond what is provided.

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 'saved XDR query templates' with scope 'available for the tenant'. It distinguishes from sibling tools like sophos_get_xdr_query (which retrieves a single template) and sophos_run_saved_xdr_query (which executes a query).

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. Does not mention that this is a prerequisite for running a saved query or that it returns a list for selection. The context is only implied.

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

sophos_list_xdr_query_categoriesA
Read-only

List XDR query categories available for the tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, making the non-destructive nature clear. The description adds no additional behavioral context (e.g., pagination, caching, or scope limitations) beyond what annotations provide.

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 wasted words. It directly states the action and scope, achieving high 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 one parameter and no output schema, the description is minimally adequate. However, it lacks information about the structure of returned categories or any constraints (e.g., timeouts, defaults), leaving the agent with incomplete context.

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 parameter 'tenant_id' documented as 'Tenant UUID'. The description does not add further meaning or format details beyond the schema, so 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' and resource 'XDR query categories', clearly stating the tool's function. It distinguishes itself from sibling tools like sophos_list_xdr_queries and sophos_list_live_query_categories.

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 listing available XDR query categories per tenant, but does not provide explicit guidance on when to use this tool versus alternatives (e.g., sophos_list_xdr_queries) or exclusions.

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

sophos_manage_mailbox_aliasesB

Add or remove email aliases for a mailbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
addNoAlias email addresses to add
removeNoAlias email addresses to remove
tenant_idYesTenant UUID
mailbox_idYesMailbox UUID

TDQS

B3.3/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false. The description confirms mutation (add/remove) but adds no additional behavioral context, such as side effects, permissions required, or behavior when both add and remove are specified. No contradiction with annotations.

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 of 7 words, front-loading the essential information with no filler. 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?

Given the simple tool with 4 fully described parameters and no output schema, the description adequately states the purpose. However, it lacks information on return values, error handling, and behavioral details like order of operations when both add and remove are provided.

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 each parameter has a description. The overall description adds no new meaning beyond the schema, as it merely restates the action. 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 'Add or remove email aliases for a mailbox' clearly states the verb (add/remove), the resource (email aliases), and the target (mailbox). It distinguishes from sibling tools like sophos_manage_mailbox_delegates and sophos_update_mailbox.

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 provides no guidance on when to use this tool versus alternatives, prerequisites, or constraints such as alias format or mailbox existence. The sibling list includes several mailbox-related tools, but no distinctions are made.

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

sophos_manage_mailbox_delegatesB

Add or remove delegate access for a mailbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
addNoEmail addresses of delegates to add
removeNoEmail addresses of delegates to remove
tenant_idYesTenant UUID
mailbox_idYesMailbox UUID

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already indicate this is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds only the operation type, but does not disclose edge cases (e.g., what happens if both add and remove arrays are populated, or if a delegate already exists). The behavioral information is minimal but consistent with annotations.

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 that conveys the essential operation without any extraneous words. It is efficient and front-loaded with the key action.

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

Completeness2/5

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

Given the lack of an output schema and the complexity of a mutation tool that modifies delegate access, the description is incomplete. It does not explain the cumulative effect of add/remove operations, permissions required, or what the response looks like. The agent would need to guess important behavioral details.

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 four parameters are fully described in the input schema (100% coverage). The description does not add any additional semantic information beyond what the schema provides. Baseline 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 verb 'Add or remove' and the resource 'delegate access for a mailbox', making the purpose unambiguous. However, it does not differentiate from sibling tools like sophos_manage_mailbox_aliases or sophos_manage_mailbox_dl_owners, which focus on different aspects of mailbox configuration.

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 alternatives, nor any context on prerequisites or scenarios that would necessitate using this tool. The agent receives no help in deciding between this and similar management tools.

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

sophos_manage_mailbox_dl_ownersB

Add or remove distribution list owners for a mailbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
addNoEmail addresses of DL owners to add
removeNoEmail addresses of DL owners to remove
tenant_idYesTenant UUID
mailbox_idYesMailbox UUID

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already indicate mutation (readOnlyHint=false) and non-destructive nature, but the description adds no additional behavioral context such as permissions needed or side effects beyond the stated action.

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, efficient sentence that is front-loaded and concise, though it could be expanded with structured usage notes.

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?

Lacking an output schema and additional context such as error handling or return values, the description is insufficient for a mutation tool, especially given similar sibling 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?

All parameters are fully described in the schema (100% coverage), so the description adds no extra meaning beyond what the schema provides. 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 clearly specifies adding or removing distribution list owners for a mailbox, using specific verbs and resource, which distinguishes it from sibling tools like sophos_manage_mailbox_aliases and sophos_manage_mailbox_delegates.

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 provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or context for its use.

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

sophos_mitre_attack_guideA
Read-only

Get Sophos-specific detection and hunting guidance for MITRE ATT&CK techniques. Returns detection capability, Live Discover SQL queries, policy settings, and escalation guidance.

ParametersJSON Schema
NameRequiredDescriptionDefault
technique_idYesMITRE ATT&CK technique ID

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. Description adds valuable context on output content (detection capability, queries, policies, escalation guidance), which goes beyond annotations.

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?

Single sentence covering purpose and outputs. Concise and front-loaded, but could be slightly more structured (e.g., bullet points for readability). However, it is efficient with no wasted words.

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 tool with one enum parameter and no output schema, the description completely and clearly conveys what the tool returns, leaving no unanswered questions about its functionality.

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% with clear enum and description. Description does not add any additional meaning or nuance to the technique_id parameter beyond what the schema provides.

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?

Description clearly states the verb 'Get' and resource 'Sophos-specific detection and hunting guidance for MITRE ATT&CK techniques'. It distinguishes from sibling tools by focusing on MITRE ATT&CK guidance, which is unique among the listed tools.

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 on when to use this tool versus alternatives such as sophos_playbook_* or sophos_soc_tool_guide. It does not state when not to use or provide any context for selection.

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

sophos_mobile_action_get_logsB
Read-only

Request log collection from up to 50 mobile devices for investigation purposes.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
endpoint_idsYesComma-separated device UUIDs (max 50)

TDQS

B3.2/5.0
Behavior2/5

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

Annotations declare readOnlyHint=true and destructiveHint=false, but the description does not clarify whether log collection is asynchronous, whether it triggers a background job, or what response to expect. No mention of timeframes, retries, or follow-up steps, leaving significant ambiguity about the tool's behavior.

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?

Single sentence, no redundancy, directly conveys the core action and resource. Highly efficient.

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?

No output schema forces the description to explain return values or next steps, but it does not. An agent cannot infer what the tool returns (e.g., request ID, status) or that a follow-up tool like sophos_get_forensic_log_status may be needed. Incomplete for a non-trivial action-triggering tool.

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 schema already fully documents both parameters. The description restates 'up to 50 mobile devices' but adds no semantic nuance beyond the schema's 'comma-separated device UUIDs (max 50)'. Meets baseline but no extra value.

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 requests log collection from mobile devices for investigation. It specifies the resource (mobile devices), action (request log collection), and purpose (investigation), distinguishing it from sibling actions like sync, locate, or send message.

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 on when to use this tool versus alternatives. It does not mention prerequisites, when not to use, or relationship to related tools like sophos_get_forensic_log_status. The phrase 'for investigation purposes' provides weak context but no explicit decision criteria.

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

sophos_mobile_action_locateA

Trigger a GPS location request on up to 50 mobile devices. A reason is required and will be logged in the Sophos Mobile privacy log.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonYesReason for locating the device(s) — logged in the privacy log (max 255 chars)
tenant_idYesTenant UUID
endpoint_idsYesComma-separated device UUIDs (max 50)

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate write behavior (readOnlyHint: false). Description adds that the action triggers a GPS request, is limited to 50 devices, and logs the reason. However, it omits whether the request is asynchronous and how to retrieve results, leaving behavioral gaps beyond what annotations convey.

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 efficient sentences: first identifies action and scope, second a critical constraint. No wasted words, front-loaded with essential 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, single-action tool, the description covers key aspects. However, it lacks follow-up context (e.g., checking request status via get_mobile_action) and does not connect to sibling tools for completing the workflow. With no output schema, more context on expected results 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 covers 100% of parameters with descriptions. Description reinforces the reason's logging purpose and the count limit, adding minor value. For a 3-param tool with full schema coverage, the description does not significantly enhance parameter understanding beyond the schema itself.

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?

Description clearly states the action ('trigger a GPS location request') on a specific resource ('mobile devices') with a capacity limit ('up to 50'). It distinguishes from sibling mobile actions like sync or get_logs by specifying the location intent.

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 on when to use this tool versus alternatives. While it notes a reason is required and logged in the privacy log, it does not mention prerequisites, post-action steps, or scenarios where a different action (e.g., sync) 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.

sophos_mobile_action_send_messageA

Send a push message to up to 50 mobile devices. The message is displayed as a notification on the device.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesMessage text to display on the device (max 500 chars)
tenant_idYesTenant UUID
endpoint_idsYesComma-separated device UUIDs (max 50)

TDQS

A3.6/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, which aligns with the mutation action. The description adds the limit of 'up to 50' devices, but does not disclose delivery guarantees, rate limits, or what happens to existing messages. With annotations covering safety, a 3 is appropriate.

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 concise sentences, no filler. Front-loaded with action and limit.

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 mutation tool with 3 required parameters and no output schema, the description covers the action and limit adequately. It could mention the notification behavior, but it does.

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% with each parameter described. The description reinforces the device limit already in the schema for endpoint_ids, adding minimal additional meaning. Baseline 3 is correct.

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 'Send' and the resource 'push message to up to 50 mobile devices', with a specific outcome 'displayed as a notification'. This distinguishes it from sibling mobile action tools like sophos_mobile_action_locate or sophos_mobile_action_get_logs.

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 alternatives (e.g., sync, locate, get_logs). No prerequisites or exclusions are mentioned, leaving the agent to infer usage context.

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

sophos_mobile_action_syncA

Trigger a sync action on up to 50 mobile devices — forces devices to check in with Sophos Mobile and apply pending policies.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
endpoint_idsYesComma-separated device UUIDs (max 50)

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds the constraint of up to 50 devices but does not disclose other behavioral traits such as idempotency, rate limits, or side effects. The openWorldHint=true annotation is not addressed.

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 conveys the action and its effect with no extraneous words. Every word is needed.

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 no output schema, the description adequately explains the action's purpose and effect. It covers the maximum scope (up to 50 devices) but lacks details on error handling or prerequisites. Still, for a straightforward action, it is fairly 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% with both parameters described (tenant_id and endpoint_ids). The description echoes the max 50 devices constraint but adds no new meaning beyond the schema. 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 clearly states the verb 'Trigger a sync action' on the resource 'mobile devices' with the specific purpose of forcing a check-in and applying pending policies. This distinguishes it from sibling mobile action tools like locate, send_message, and get_logs.

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 applying policies on mobile devices but provides no explicit guidance on when to use this tool vs alternatives (e.g., other mobile actions) or when not to use it. No prerequisites or exclusions are mentioned.

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

sophos_org_get_tenantB
Read-only

Get details for a specific tenant under this Sophos Central Organization account.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID

TDQS

B3.1/5.0
Behavior2/5

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

With readOnlyHint and destructiveHint annotations, the description adds no additional behavioral context. It does not explain permissions or error handling, missing opportunity to add value beyond annotations.

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?

Single sentence that directly conveys the purpose with no unnecessary words. Efficient and front-loaded.

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 one-parameter read tool with annotations, the description is minimally adequate but lacks explanation of return format or behavior when tenant is not found, especially since 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 coverage is 100% for a single parameter (tenant_id) described as 'Tenant UUID'. Description adds no additional meaning, so baseline 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?

Description clearly states the tool retrieves details for a specific tenant under the organization account. It distinguishes from list_tenants but not from sibling get_tenant, lacking explicit differentiation.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like sophos_get_tenant or sophos_list_tenants. No context provided for appropriate use cases.

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

sophos_playbook_incident_responseA
Read-only

Get SOC incident response playbook for Sophos endpoint incidents. Returns step-by-step guidance referencing exact Sophos MCP tool names.

ParametersJSON Schema
NameRequiredDescriptionDefault
incident_typeYesType of incident to get playbook for

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the agent knows it's safe. The description adds that it returns step-by-step guidance and references tool names, which provides useful behavioral context without contradicting annotations.

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, front-loaded, every word earns its place. Efficient and clear.

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 the tool's simplicity (1 param, no output schema), description is complete. It explains what it returns and its purpose. Annotations cover safety. No 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?

Input schema has one parameter with 100% coverage (enum described in schema). Description does not add extra meaning beyond schema. Baseline score of 3 is appropriate as schema already describes parameter sufficiently.

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?

Description clearly states it retrieves a playbook for specific incident types (malware, ransomware, etc.) with step-by-step guidance referencing exact tool names. It distinguishes itself from sibling playbook tools (threat hunt, malware triage) by specifying 'incident response' for endpoint incidents.

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

Usage Guidelines4/5

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

The description says when to use: for SOC incident response playbooks for endpoint incidents. It implicitly provides context for when not to use (e.g., for threat hunt or malware triage, use other playbooks). Missing explicit exclusions or alternatives, but the context is clear.

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

sophos_playbook_malware_triageB
Read-only

Get malware triage guidance for specific detection types. Returns containment decisions, evidence collection steps, recovery procedures, and IOC extraction guide.

ParametersJSON Schema
NameRequiredDescriptionDefault
detection_typeYesType of malware detected

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds no further behavioral details (e.g., latency, auth requirements). This is adequate but not above baseline.

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 sentence of about 20 words, efficiently listing the output categories. It is concise but could be slightly more structured (e.g., bullet points).

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?

With no output schema, the description adequately explains the return values (containment decisions, evidence collection, recovery procedures, IOC extraction). The single parameter is simple. Missing information about response format, but sufficient for basic usage.

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% for the single parameter, with a self-explanatory enum. The tool description adds context about return values but not parameter-specific meaning beyond the schema.

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 'Get' and the resource 'malware triage guidance for specific detection types', and lists the type of output. The name and description distinguish it from sibling playbooks like incident response and threat hunt, but does not explicitly differentiate.

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 on when to use this tool versus alternatives (e.g., sophos_playbook_incident_response or sophos_playbook_threat_hunt). No prerequisites or context for use are provided.

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

sophos_playbook_threat_huntA
Read-only

Get threat hunting playbook for Sophos Live Discover and XDR. Returns SQL queries, MITRE mappings, and isolation decision trees.

ParametersJSON Schema
NameRequiredDescriptionDefault
hunt_hypothesisYesThreat hunting hypothesis to investigate

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds value beyond annotations by specifying the playbook's content (SQL queries, MITRE mappings, isolation decision trees), enriching the agent's understanding of what the tool returns. No contradictions are present.

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 ('Get threat hunting playbook') and then lists the key content. Every word is purposeful, and there is no redundancy 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?

The tool is simple with one parameter and no output schema. The description mentions the type of content returned (SQL queries, MITRE mappings, decision trees), which provides sufficient context for an agent to understand the tool's value. However, it could be slightly more complete by hinting at the expected output structure.

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 covers the single parameter 'hunt_hypothesis' with a description and enum values. Since schema description coverage is 100% (the schema itself describes the parameter), the description adds no additional parameter information. 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 clearly states the tool's purpose: 'Get threat hunting playbook for Sophos Live Discover and XDR.' It specifies the content returned (SQL queries, MITRE mappings, isolation decision trees), which distinguishes it from sibling playbook tools like sophos_playbook_incident_response and sophos_playbook_malware_triage.

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 does not provide guidance on when to use this tool versus alternatives. While the purpose is clear, there is no mention of prerequisites, context for selection, or explicit scenarios. The sibling list includes other playbook tools, but no differentiation is made.

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

sophos_preview_post_delivery_quarantine_messageA
Read-only

Preview the content of a post-delivery quarantined message.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
message_idYesPost-delivery quarantine message UUID

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the 'Preview' action is consistent. The description does not add behavioral details beyond what the annotations provide, such as the format of the preview or any side effects. It is adequate but not enriched.

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 immediately conveys the core purpose. No wasted words; it efficiently tells the agent 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 tool is simple with only two parameters and no output schema. The description defines the action but omits what kind of content is returned (e.g., raw text, HTML). With no output schema, the agent might need more behavioral context about the preview output.

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?

Input schema coverage is 100% with descriptions for both parameters ('Tenant UUID' and 'Post-delivery quarantine message UUID'), so the schema carries the semantics. The tool description adds no additional meaning or usage hints for these parameters.

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 is a specific verb+resource: 'Preview the content of a post-delivery quarantined message.' This clearly identifies the tool's action and target, differentiating it from sibling tools like 'preview_quarantine_message' that handle regular quarantine.

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 provides no guidance on when to use this tool versus alternatives like 'preview_quarantine_message' or 'get_quarantine_message'. There is no mention of prerequisites, context, or exclusions.

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

sophos_preview_quarantine_messageA
Read-only

Preview the content (headers, body snippet) of a pre-delivery quarantined message.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
message_idYesQuarantine message UUID

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, providing a strong safety profile. The description adds that the tool returns headers and body snippet, which is useful behavioral context beyond the annotations. No contradictions. The description adds value by specifying output content, but given annotations already cover safety, the incremental transparency is moderate.

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 that efficiently conveys the tool's purpose. It is front-loaded with the verb 'Preview' and immediately specifies the resource and what is previewed. Every word earns its place with no redundancy or 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?

Given no output schema, the description provides a reasonable summary of what is returned (headers, body snippet). However, it could be more complete by mentioning potential size limits or that it's a snippet, not full body. The tool has only 2 simple parameters and no nested objects, so the description is adequate for its complexity.

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?

Input schema covers both parameters (tenant_id, message_id) with 100% coverage, so they are fully described. The description does not add any additional meaning beyond the schema; it merely references the message without detailing the parameters. 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 clearly states the tool previews headers and body snippet of a pre-delivery quarantined message, using specific verb 'Preview' and resource. It distinguishes from siblings like 'sophos_get_quarantine_message' (which likely returns full details) and 'sophos_preview_post_delivery_quarantine_message' (which handles post-delivery messages). This is a specific verb+resource combination that clearly differentiates the tool.

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 implicitly indicates the tool is for pre-delivery messages but does not explicitly state when to use it versus alternatives like the post-delivery preview tool. It provides no when-not-to-use guidance or prerequisites. The context from sibling names helps, but the description itself lacks explicit usage guidance.

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

sophos_reattach_quarantine_attachmentsB

Reattach previously stripped attachments to a quarantined message.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
message_idYesQuarantine message UUID
attachmentsYesList of attachment filenames to reattach
for_recipientsNoRecipient email addresses

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, implying modification without destruction. The description adds no extra behavioral context (e.g., side effects, authorization needs, reversibility). The word 'reattach' is redundant with the tool name.

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?

Single sentence of 8 words, directly stating the tool's purpose. No extraneous information. Front-loaded with verb and object.

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?

Lacks information about return values (no output schema), error conditions, or prerequisites. For a modification tool with 4 parameters and no output schema, the description is too sparse to be fully actionable.

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% with all parameters described. The description adds no extra meaning beyond the schema. Baseline 3 is appropriate as the description does not enhance parameter understanding.

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 action 'Reattach' and the resource 'previously stripped attachments to a quarantined message'. It is specific and distinct from sibling tools like list/download/preview quarantine attachments.

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 on when to use this tool vs alternatives. It does not mention prerequisites (e.g., message must be quarantined, attachments previously stripped) or when not to use it. Lacks explicit context for selection.

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

sophos_request_bulk_sender_privilegeB

Request bulk sender privilege for a mailbox that needs to send high volumes of email.

ParametersJSON Schema
NameRequiredDescriptionDefault
countYesNumber of messages expected to send in the period
periodYesTime period for the bulk sending
purposeYesPurpose/justification email address or description for the bulk sending privilege
tenant_idYesTenant UUID
mailbox_idYesMailbox UUID

TDQS

B3.4/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, but the description does not disclose side effects (e.g., whether it creates a ticket, requires approval, or modifies mailbox settings), permissions needed, or potential failure modes.

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, clear sentence with no unnecessary words. It is front-loaded but could include additional context without being overly 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?

The description is adequate for a simple request action with 5 parameters and no output schema, but it lacks details on prerequisites, follow-up steps, or behavior after request submission, which could be important for 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 coverage is 100%, and the description adds little beyond what the schema already provides. It implicitly links count and period to high-volume sending but does not clarify purpose further than the schema's 'justification' description.

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 requests bulk sender privilege for a mailbox, with a specific verb 'request' and resource 'bulk sender privilege'. It distinguishes from sibling mailbox tools like sophos_get_mailbox or sophos_create_mailbox, which do not handle this privilege request.

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 mailboxes needing high email volumes but does not explicitly state when to use this tool versus alternatives (e.g., updating mailbox settings). No exclusions or comparisons are provided.

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

sophos_request_memory_dumpA

Request a memory dump from an endpoint for forensic investigation. Requires specifying the dump mode and expiry time. Returns a memoryDumpRequestId to poll for status.

ParametersJSON Schema
NameRequiredDescriptionDefault
pidNoProcess ID to dump (required when mode is 'process')
modeYesMemory dump mode: process (single process), kernel, or full
expiresYesExpiry date-time for the dump request (ISO 8601 format)
passwordNoPassword to protect the dump file
tenant_idYesTenant UUID
image_nameNoProcess image name to dump (alternative to pid when mode is 'process')
endpoint_idYesEndpoint UUID

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false (write operation) and destructiveHint=false (not destructive), which align with the description's 'request a memory dump' action. The description adds useful context about returning a request ID for polling, which is beyond what annotations provide. No contradictions.

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-loaded with the core action and purpose. Every sentence adds essential information without redundancy or 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 main functionality: initiating a memory dump and providing a request ID for subsequent polling. It does not mention all parameters (e.g., tenant_id, endpoint_id) but the schema covers those. Without an output schema, the description could have elaborated on the return format, but it is adequate for an agent to understand the workflow.

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 baseline is 3. The description highlights two key parameters ('dump mode' and 'expiry time') but does not add significant meaning beyond the existing schema descriptions. The schema already fully describes all parameters, so the description provides minimal added value.

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 action ('request'), the resource ('memory dump from an endpoint'), and the purpose ('forensic investigation'). It effectively distinguishes this tool from sibling tools like sophos_get_memory_dump_status, which is for polling status rather than initiating the dump.

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

Usage Guidelines4/5

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

The description specifies required inputs ('dump mode and expiry time') and the return value ('memoryDumpRequestId to poll for status'). However, it does not explicitly state when to use this tool versus alternatives (e.g., when to use sophos_get_memory_dump_status). The implied workflow is clear but could be made more explicit.

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

sophos_run_saved_xdr_queryA
Read-only

Run a saved XDR query (from the query library) by its query ID. Returns a run ID to poll for status and results.

ParametersJSON Schema
NameRequiredDescriptionDefault
to_dateNoEnd of the query time range (ISO 8601 timestamp or duration)
query_idYesUUID of the saved XDR query to execute
from_dateNoStart of the query time range (ISO 8601 timestamp or duration)
tenant_idYesThe tenant ID to run the XDR query against
variablesNoJSON array of variable objects: [{name, dataType, value, pivotType?}]. dataType values: double|integer|text|dateTime|boolean
category_idNoCategory UUID the saved query belongs to (optional)
endpoint_idsNoComma-separated list of endpoint UUIDs to scope the query

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and destructiveHint, so the description's mention of running a query and returning a run ID does not add significant behavioral context beyond the standard read-only, non-destructive operation. No contradictions; missing details on polling flow or error states.

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 concise sentences with no filler. The most critical information (run saved query, returns run ID) is front-loaded. Every sentence adds value.

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 7 parameters, full schema descriptions, and safety annotations, the description captures the core action and return value. It could mention that the operation is asynchronous (implied by polling), but overall it is sufficient for an agent to invoke 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?

Schema description coverage is 100%, with each parameter already explained. The description does not add any additional meaning or usage hints beyond the schema, so baseline score 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 clearly states the verb 'Run', the resource 'saved XDR query', and the key output 'run ID to poll for status and results'. It distinguishes from siblings like sophos_run_xdr_query by specifying 'saved', making the purpose precise.

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 have a saved query ID from the query library, but does not explicitly state when to prefer this tool over alternatives (e.g., sophos_run_xdr_query for ad-hoc queries). No exclusion or alternative guidance is provided.

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

sophos_run_xdr_queryA
Read-only

Run an ad-hoc XDR (Extended Detection and Response) SQL query against the Sophos data lake. Returns a run ID to poll for status and results.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe SQL query string to execute (15–50000 characters)
to_dateNoEnd of the query time range. ISO 8601 timestamp or ISO 8601 duration.
from_dateNoStart of the query time range. ISO 8601 timestamp (e.g. '2024-01-01T00:00:00.000Z') or ISO 8601 duration (e.g. 'P7D')
tenant_idYesThe tenant ID to run the XDR query against
variablesNoJSON array of variable objects to substitute into the query template. Each object must have: name (string), dataType (double|integer|text|dateTime|boolean), value (string), and optionally pivotType (deviceId|deviceName|sophosPid|ipAddress|username|sha256|filePath|registryKey|url).
query_nameNoHuman-readable name for this query run (default: 'AdHoc')
endpoint_idsNoComma-separated list of endpoint UUIDs to scope the query. If omitted, the query runs against all eligible endpoints.

TDQS

A4/5.0
Behavior4/5

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

Annotations include readOnlyHint=true and destructiveHint=false. The description adds that the operation returns a run ID for polling, implying asynchronous behavior and persistence of data. It does not contradict annotations and provides extra context beyond structured fields.

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?

Single sentence, front-loaded with the core action and result. No wasted words; every part serves a purpose.

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?

Despite 7 parameters and no output schema, the description covers the key points: it runs a query, is ad-hoc, returns a run ID for polling. The sibling tools handle status and results retrieval, so the description is sufficient for an agent to understand the interaction pattern.

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 parameters are described in the input schema (100% coverage). The description adds 'ad-hoc' context but does not expand on parameter usage beyond what the schema provides. With full 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?

Description uses a specific verb ('Run'), identifies the resource ('ad-hoc XDR SQL query against the Sophos data lake'), and notes the return value ('run ID to poll for status and results'). It distinguishes from siblings like 'sophos_run_saved_xdr_query' by specifying 'ad-hoc'.

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 an ad-hoc query is needed, but does not explicitly state when to use versus alternatives (e.g., saved queries) or when not to use. Minimal guidance on context.

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

sophos_search_alertsA
Read-only

Search alerts using a POST request body. Equivalent to sophos_list_alerts but filters are sent in a JSON body — useful for filtering by multiple IDs or long lists of categories/products.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoArray of specific alert IDs to retrieve
sortNoSort order array (e.g. ['raisedAt:desc'])
fieldsNoFields to include in the response (e.g. ['severity', 'groupKey', 'allowedActions'])
productNoArray of product names to filter on (e.g. ['endpoint', 'server', 'mobile', 'wireless'])
to_dateNoReturn alerts raised before this ISO 8601 timestamp
categoryNoArray of alert categories to filter on (e.g. ['malware', 'policy', 'runtimeDetections'])
page_keyNoPagination key for fetching the next page of results
severityNoArray of severity levels to filter on (e.g. ['high', 'medium', 'low'])
from_dateNoReturn alerts raised after this ISO 8601 timestamp
group_keyNoFilter by group key for grouped alerts
page_sizeNoNumber of alerts per page (default 50)
tenant_idYesThe tenant ID to search alerts for
page_totalNoIf true, include total page count in the response

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, destructiveHint. Description adds method (POST) and equivalence to list_alerts but no additional behavioral traits like pagination or response format.

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, no redundancy, front-loaded with verb and resource.

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?

With 13 parameters and no output schema, description lacks details on pagination, response structure, or how filters combine. Annotations cover safety but not operational 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 coverage is 100%, so baseline applies. Description adds context about JSON body and large filters but does not enhance individual parameter understanding beyond schema.

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?

Description explicitly states 'Search alerts using a POST request body' and distinguishes from sibling 'sophos_list_alerts' by noting the method difference and use case for long filter lists.

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?

Clearly indicates when to use: 'useful for filtering by multiple IDs or long lists'. Implies alternative for simpler filters but does not explicitly state when not to use.

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

sophos_search_mdr_threat_feed_indicatorsA
Read-only

Search for specific indicators in a firewall's MDR threat feed by their values.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
firewall_idYesFirewall UUID
indicator_valuesYesComma-separated indicator values to search for (e.g. IPs, domains, URLs)

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, openWorldHint=true, and destructiveHint=false. The description adds the detail that search is by indicator values, which aligns with annotations but doesn't disclose additional behavioral traits like pagination or result format.

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 of 14 words efficiently conveys the purpose without redundancy.

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

Completeness2/5

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

The tool has no output schema, and the description does not explain what the search returns (e.g., list of matching indicators, count, or additional context). It does not mention pagination, exact vs partial matching, or any limits, leaving ambiguity.

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 adequate descriptions for all three parameters. The tool description adds no additional parameter information, so it meets the baseline but does not exceed.

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 (Search), resource (indicators in an MDR threat feed), and scope (by their values). It distinguishes from sibling tools like sophos_create_mdr_threat_feed_indicators (create vs search) and sophos_get_mdr_threat_feed (get feed vs search indicators).

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

Usage Guidelines3/5

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

The description implies the tool is for searching, but provides no explicit guidance on when to use it versus alternatives (e.g., when to create vs search). No when-not or alternative names are mentioned.

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

sophos_search_post_delivery_quarantineA
Read-only

Search post-delivery quarantine messages (messages that were delivered but later quarantined). Use this for clawback/post-delivery remediation workflows.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based)
sortNoSort fields, e.g. ['forRecipient:DESC']
end_dateNoEnd date ISO 8601
page_sizeNoResults per page
tenant_idYesTenant UUID
begin_dateNoStart date ISO 8601
filter_reasonNoFilter by reason (e.g. ['malware','phishing'])
filter_to_containsNoFilter: recipient address contains
filter_from_containsNoFilter: sender address contains
filter_has_attachmentNoFilter messages with attachments
filter_subject_containsNoFilter: subject contains

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the tool is safe and read-only. The description adds the behavioral trait that it searches delivered-then-quarantined messages, which is helpful but does not significantly exceed what annotations imply.

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 highly concise, consisting of two sentences that define the tool and its use case. It is front-loaded and contains no unnecessary 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?

Given the tool has 11 parameters and no output schema, the description is adequate for a search/query tool. It explains the purpose and use case but does not elaborate on return format or behavior beyond the 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 parameters. The description does not add any additional parameter-level meaning beyond the schema, meeting the baseline but not exceeding it.

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 searches post-delivery quarantine messages, distinguishing it from pre-delivery quarantine search. It specifies the use case for clawback/post-delivery remediation workflows, making the purpose unambiguous.

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

Usage Guidelines4/5

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

The description provides a clear context for when to use the tool (clawback/remediation workflows) but does not explicitly mention when not to use it or compare it directly to sibling tools like sophos_search_quarantine or sophos_list_post_delivery_quarantine_attachments.

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

sophos_search_quarantineB
Read-only

Search pre-delivery quarantine messages with structured filters. This is the primary way to list quarantined messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort fields, e.g. ['quarantinedAt:DESC']
end_dateNoEnd date ISO 8601
page_sizeNoResults per page (max 200)
tenant_idYesTenant UUID
begin_dateNoStart date ISO 8601 (e.g. 2024-01-01T00:00:00.000Z)
filter_reasonNoFilter by quarantine reason (e.g. ['impersonation','spam','malware'])
page_from_keyNoPagination key from previous response
filter_directionNoFilter by message direction
filter_to_containsNoFilter: recipient address contains
filter_from_containsNoFilter: sender address contains
filter_has_attachmentNoFilter messages that have attachments
filter_subject_containsNoFilter: subject contains
filter_attachment_name_containsNoFilter: attachment name contains

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint and destructiveHint. Description adds no behavioral context beyond 'search' and 'list'. No mention of pagination, date range behavior, or rate limits.

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, front-loaded with key purpose. No unnecessary words. Efficiently communicates the core function.

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 13 parameters and no output schema, description is adequate but could mention output structure (list of quarantined messages) and pagination behavior. Sufficient for basic understanding.

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 parameters are fully described. Description does not add any extra meaning beyond the schema. Baseline 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?

Clearly states verb 'search', resource 'pre-delivery quarantine messages', and mentions 'structured filters'. Differentiates from sibling tools like sophos_search_post_delivery_quarantine and other quarantine tools.

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 on when to use this tool vs alternatives. Only says 'primary way to list quarantined messages' but doesn't explain when to use other search or retrieval tools.

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

sophos_set_tamper_protectionB

Enable or disable tamper protection on an endpoint. When enabled, Sophos agent settings cannot be changed without the tamper protection password. Optionally regenerate the password.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYesSet to true to enable tamper protection, false to disable
tenant_idYesTarget tenant ID
endpoint_idYesEndpoint ID
regenerate_passwordNoWhether to generate a new tamper protection password

TDQS

B3.2/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, which are consistent with the mutation operation. However, the description adds no additional behavioral context such as required permissions, reversibility, or side effects. It fails to disclose beyond what annotations already imply.

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 long, front-loaded with the key verb and noun, and contains no unnecessary words. Every sentence adds value: the first states the core functionality, the second adds the optional password regeneration 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?

Given the complexity of the sibling list and the tool's clear mutation nature, the description is mostly complete. It could mention that disabling tamper protection requires the current password (if not regenerated), but the existing text is adequate for an agent to select and invoke the tool.

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% with descriptions for all four parameters. The description mentions 'optionally regenerate the password' which aligns with the schema but does not add new meaning. Baseline of 3 is appropriate as the schema provides sufficient 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 clearly states the tool enables or disables tamper protection and explains the implication (settings cannot be changed without the password). It is specific about the resource (endpoint) and action (set tamper protection), but does not explicitly differentiate from sibling sophos_get_global_tamper_protection.

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 on when to use this tool versus alternatives (e.g., getting global tamper protection settings). No exclusions or prerequisites mentioned. The description only states the action without context for decision-making.

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

sophos_snooze_health_checkA

Snooze specific health check findings for endpoint or network device categories. The snooze body mirrors the health-check response structure — specify the categories/sub-categories you want to snooze.

ParametersJSON Schema
NameRequiredDescriptionDefault
endpointNoEndpoint health check categories to snooze
tenant_idYesTenant UUID
networkDeviceNoNetwork device health check categories to snooze

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already indicate a non-destructive write (readOnlyHint=false, destructiveHint=false). The description adds that snoozing is done by specifying categories/sub-categories, but it does not disclose side effects (e.g., impact on alerting, duration, or undo capability). The input structure hint is helpful but not behavioral.

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 long, front-loaded with the purpose, and wastes no words. It efficiently communicates the action, scope, and a key structural hint.

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 the nested object parameters and no output schema, the description provides a structural hint but lacks information on expected outcomes, persistence, or how to revert a snooze. It is adequate but could be improved with brief behavioral context.

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 explaining that the endpoint and networkDevice objects should mirror the health-check response structure, providing critical contextual guidance beyond the schema's property 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?

The description clearly states the tool's action ('Snooze') and resource ('specific health check findings for endpoint or network device categories'). It differentiates the tool from sibling health-check query tools by specifying this is for suppression/action.

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 by stating the input structure mirrors the health-check response, but it does not explicitly guide when to use this tool versus others (e.g., after reviewing health scores) or when not to use it. No alternatives or prerequisites are mentioned.

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

sophos_soc_tool_guideA
Read-only

Get a guide to all Sophos MCP tools organized by SOC workflow. Includes purpose, when to use, key output fields, and warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryYesSOC workflow category to get tool guide for

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds the behavioral trait of providing a guide, which is consistent. No additional behavioral details (e.g., auth requirements, rate limits) are provided, but the annotations suffice for this read-only, non-destructive 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 that front-loads the core action ('Get a guide') and includes essential details (organized by SOC workflow, includes purpose, when to use, key output fields, warnings). No unnecessary 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 simple meta-tool with one parameter and no output schema, the description is adequate. It explains the tool's content (purpose, when to use, key output fields, warnings). However, it does not specify the output format (e.g., textual guide), which could be helpful. Still, it is comprehensive enough for the tool's simplicity.

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% with a clear description of the 'category' parameter and its enum values. The description mentions 'organized by SOC workflow', which aligns with the parameter but does not add new meaning beyond the schema. 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 clearly states the tool provides a guide to all Sophos MCP tools organized by SOC workflow. The verb 'Get a guide' and resource 'all Sophos MCP tools' are specific. It distinguishes itself from sibling tools, which are operational tools for specific actions, by being a meta-tool for guidance.

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

Usage Guidelines4/5

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

The description indicates the guide includes 'when to use' and is organized by SOC workflow, providing context for when this tool is helpful (e.g., for selecting or understanding other tools). While it does not explicitly state when not to use or list alternatives, the context is clear, and being the only guide tool among siblings differentiates it.

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

sophos_start_detections_group_queryA
Read-only

Start an async detection-groups query run. Groups detections by detection rule and device for a summary view. Returns a run ID to poll.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort order (e.g. [{field: 'lastSeenAt', direction: 'desc'}])
to_dateNoEnd of time range (ISO 8601)
severityNoArray of integer severity scores to filter on (1–10)
from_dateNoStart of time range (ISO 8601)
tenant_idYesTenant UUID
detection_ruleNoFilter by a specific detection rule ID

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate read-only, non-destructive. Description adds async behavior and polling pattern, which are valuable beyond annotations. Could mention rate limits or access scopes but acceptable.

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 concise sentences, front-loaded with action and key behavior. 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?

Covers async nature, grouping logic, return value. Lacks details on polling endpoint, error handling, but sibling tools fill some gaps. Adequate for a query-start tool.

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 baseline 3. Description does not elaborate on parameters beyond schema. No added meaning for params like severity, dates, etc.

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 starts an async detection-groups query run, groups by detection rule and device for a summary view, and returns a run ID to poll. This distinguishes it from sibling tools like sophos_start_detections_query (non-grouped) and polling tools.

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

Usage Guidelines4/5

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

The description implies usage for grouped summary views and async polling, but lacks explicit when-not-to-use or alternative recommendations. It provides clear context but no exclusions.

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

sophos_start_detections_queryA
Read-only

Start an async detections query run. Returns a run ID. Poll sophos_get_detections_query_status until status is 'finished', then retrieve results with sophos_get_detections_query_results.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort order for results. E.g. [{field: 'severity', direction: 'desc'}]
to_dateNoEnd of the time range in ISO 8601 format
severityNoArray of integer severity scores to filter on (1–10). E.g. [7,8,9,10] for high severity.
from_dateNoStart of the time range in ISO 8601 format (e.g. '2024-01-01T00:00:00.000Z')
tenant_idYesTenant UUID
detection_ruleNoFilter by a specific detection rule ID (e.g. 'WIN-PROT-BEHAVIORAL-MALWARE-EXEC-12B-T1059-001')

TDQS

A4.5/5.0
Behavior4/5

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

Explains the async nature and return value. Annotations (readOnlyHint, openWorldHint, destructiveHint) are present and consistent. No contradictions. Lacks mention of side effects like rate limits, but the core behavior is 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?

Two concise sentences that efficiently convey purpose and workflow. No unnecessary words or repetition.

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?

With perfect schema coverage, clear annotations, and a simple return value (run ID) mentioned in the description, the tool is completely documented. No output schema is needed.

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 parameters are well-described in the schema itself. The description adds no extra meaning beyond the schema, so 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 clearly states it starts an async detections query and returns a run ID. It distinguishes itself from siblings by specifying the next steps (poll and retrieve), which are named as separate tools.

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?

Explicitly instructs to poll sophos_get_detections_query_status until finished, then retrieve results with sophos_get_detections_query_results. This provides a complete usage workflow.

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

sophos_start_migrationA

Start an endpoint migration job on the sending tenant. Generates a migration job token that the receiving tenant uses to accept the migration via sophos_accept_migration.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesSending tenant ID
from_tenantYesUUID of the sending tenant (usually the same as tenant_id)
endpoint_idsYesComma-separated endpoint UUIDs to migrate

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint false (write operation) and destructiveHint false. The description adds that it generates a token, which is consistent. However, it does not disclose potential prerequisites (e.g., endpoints must be in a valid state) or side effects beyond token generation.

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 concise sentences, front-loaded with the primary purpose. No unnecessary 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?

The description explains the token generation and linking to acceptance. However, it lacks details about the response structure (the token) and any prerequisites. Given no output schema, describing the return value explicitly would improve completeness.

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 description coverage is 100%, so parameters are already documented. The description adds value by clarifying 'from_tenant' is usually the same as 'tenant_id' and that 'endpoint_ids' are comma-separated UUIDs, which is helpful beyond the schema.

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 starts an endpoint migration job and generates a token. It explicitly references the sibling tool 'sophos_accept_migration', distinguishing this tool's role in the two-step process. The verb 'start' with resource 'migration job' is specific.

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

Usage Guidelines4/5

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

The description explains when to use this tool (on the sending tenant to initiate migration) and links to the acceptance step. It implies usage context but does not explicitly state when not to use it or list alternatives.

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

sophos_take_alert_actionA

Perform an action on a specific alert. Valid actions depend on the alert type and are listed in the alert's allowedActions field. Common actions include: 'acknowledge', 'cleanPua', 'authPua', 'clearThreat', 'clearHmpa', 'sendMsgPua', 'sendMsgThreat'.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesThe action to perform. Must be one of the values in the alert's allowedActions field (e.g. 'acknowledge', 'cleanPua', 'authPua', 'clearThreat', 'clearHmpa', 'sendMsgPua', 'sendMsgThreat')
messageNoOptional human-readable message to attach to the action
alert_idYesThe alert ID to act on
tenant_idYesThe tenant ID the alert belongs to

TDQS

A4.1/5.0
Behavior3/5

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

Annotations (readOnlyHint: false, destructiveHint: false) already indicate a non-read, non-destructive mutation. The description adds that actions vary by alert type but does not detail specific behavioral side effects or response formats. No contradiction with annotations.

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, front-loaded with purpose, no unnecessary words. Every sentence adds value: first defines action, second explains action selection. Very concise.

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?

No output schema; description lacks details on return values or prerequisites (e.g., needing to retrieve the alert first for allowedActions). For a mutation with 4 params and variable actions, more context would improve completeness.

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 has 100% coverage, so baseline is 3. The description adds meaning by explaining that the action must be one of the values in allowedActions and lists common examples, which adds context beyond the schema's description.

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 'Perform an action on a specific alert' with a specific verb and resource. It lists common actions and distinguishes from sibling tools like sophos_acknowledge_alert, which is a specialized version.

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

Usage Guidelines4/5

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

The description advises that valid actions depend on the alert type and are listed in allowedActions, providing clear guidance on how to select actions. It does not explicitly contrast with all sibling tools but implies coverage of all actions beyond specialized ones.

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

sophos_unblock_addresses_bulkB

Remove multiple blocked IP address entries by their IDs in a single call.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesComma-separated blocked address UUIDs to remove, e.g. 'uuid1,uuid2'
tenant_idYesTenant UUID

TDQS

B3.1/5.0
Behavior1/5

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

Description claims 'Remove', a destructive operation, but annotations set destructiveHint: false, which is contradictory. No additional behavioral context provided. Annotation contradiction detected.

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?

Single sentence, 12 words, no fluff. Front-loaded with key action and resource. 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?

Covers primary action and parameter usage, but lacks behavioral context due to annotation contradiction. No mention of return values or where to get IDs, though acceptable given simplicity. Could be more 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 coverage is 100%, so baseline 3. Description does not add meaning beyond schema; it merely restates that removal is by IDs, which is already in the schema description for ids 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?

Description clearly states the verb 'Remove', resource 'blocked IP address entries', and scope 'multiple by their IDs in a single call'. It distinguishes from siblings like sophos_list_blocked_addresses (list) and sophos_create_blocked_item (add).

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 use this tool vs alternatives. It implies bulk removal but does not mention prerequisites or when-not to use. Missing reference to siblings for alternatives.

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

sophos_update_account_access_tokenA

Update an existing account-level access token. Supports updating the token's label and/or expiry date. At least one of label or expires_at must be provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNoNew label for the token (1-50 chars, alphanumeric, commas, hyphens and periods only)
token_idYesAccess token ID to update
tenant_idYesTenant UUID
expires_atNoNew ISO 8601 expiry date-time for the token (e.g. '2028-06-01T00:00:00Z')

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false (indicating mutation) and destructiveHint=false (non-destructive). The description adds the constraint about required fields but does not disclose any additional behavioral traits such as whether the update is immediate or if there are side effects. With annotations covering the safety profile, the description adds marginal value.

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

Conciseness5/5

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

The description is concise at two sentences, front-loaded with purpose, and every sentence adds necessary information without fluff.

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

Completeness2/5

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

The tool has no output schema, and the description does not mention the response format (e.g., updated token object or success status). For an update tool, this is a notable gap in completeness. Additionally, no prerequisites or post-conditions are described.

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 parameters. The description mentions 'label' and 'expires_at' but does not provide additional meaning beyond the schema. Baseline 3 is appropriate as 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 action ('update'), the resource ('account-level access token'), and the specific updatable fields ('label and/or expiry date'). It distinguishes from sibling tools by specifying the token type and operation, and no sibling appears to update access tokens.

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

Usage Guidelines4/5

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

The description explicitly requires 'At least one of label or expires_at must be provided', giving a clear usage constraint. However, it doesn't explicitly differentiate from creation or other modifications, but the sibling list doesn't contain similar update token tools, so context is sufficient.

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

sophos_update_adaptive_attack_protectionA

Enable or disable Adaptive Attack Protection (AAP) on an endpoint. When enabled with an expiry duration, AAP automatically disables after that period.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYesWhether to enable Adaptive Attack Protection
tenant_idYesTenant UUID
endpoint_idYesEndpoint UUID
expires_afterNoDuration (ISO 8601 format, e.g. PT4H for 4 hours) after which AAP automatically disables. Only valid when enabled is true.

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate the tool is not read-only and not destructive. The description adds value by clarifying the auto-disable behavior when expires_after is provided, which goes beyond the annotation structural hints.

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, concise and to the point with no extraneous information. It is front-loaded with the core action and additional behavior.

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 toggle tool with optional expiry, the description captures the main behavior adequately. Missing output schema is acceptable as return values are standard. No prerequisites or permissions are mentioned, but the schema covers required parameters.

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 baseline is 3. The description reiterates the auto-disable behavior already documented in the expires_after parameter description, adding minimal extra semantic value beyond the schema.

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's purpose: enabling or disabling Adaptive Attack Protection (AAP) on an endpoint. It also mentions the auto-disable behavior when an expiry duration is set, which is specific and distinguishes this tool from other Sophos management 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 explains the auto-disable feature but does not explicitly state when to use this tool versus alternatives, nor does it provide prerequisites or exclusions. The usage context is implied but not fully detailed.

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

sophos_update_allowed_itemB

Update the comment/reason on an existing globally allowed item.

ParametersJSON Schema
NameRequiredDescriptionDefault
commentYesUpdated comment/reason for allowing this item
tenant_idYesTenant UUID
allowed_item_idYesAllowed item UUID

TDQS

B3.4/5.0
Behavior2/5

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

Annotations already indicate non-readOnly and non-destructive; description adds no extra behavioral context (e.g., permissions, error handling, idempotency).

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?

Single sentence with no wasted words, but could be more structured (e.g., bullet points for clarity).

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 tool with three mandatory params and adequate annotations, the description is minimally adequate but lacks mention of return value or failure scenarios.

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 baseline 3. Description does not add meaning beyond the schema's 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?

Clearly states verb 'Update', resource 'globally allowed item', and scope 'comment/reason'. Distinguishes from siblings like create_allowed_item and list_allowed_items.

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?

Implied usage context (update existing item) but no explicit when-to-use or when-not-to-use guidance, nor alternatives named.

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

sophos_update_caseB

Update an existing case (name, type, severity, status, assignee, overview).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoUpdated case name
typeNoUpdated case type
statusNoUpdated status (e.g. 'new', 'investigating', 'onHold', 'resolved')
case_idYesCase UUID
assigneeNoUpdated assignee email
overviewNoUpdated overview/description text
severityNoUpdated severity (e.g. 'notSet', 'high', 'critical')
tenant_idYesTenant UUID

TDQS

B3.1/5.0
Behavior2/5

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

Annotations indicate this is a write operation (readOnlyHint=false) but not destructive. The description merely lists updatable fields without revealing behavioral details like whether all fields must be supplied or only changed ones, or any side effects. The description adds little beyond the annotations.

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 lists the key updatable fields without wasted words. While it is effective, it could benefit from structural elements (e.g., bullet points) to improve readability for an AI agent.

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

Completeness2/5

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

The description lacks information about required parameters (tenant_id, case_id), optional behavior, return value (no output schema), and error conditions. For a tool with 8 parameters and related sibling tools, this completeness 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 coverage is 100% with each parameter having a description in the input schema. The description's parenthetical list of field names adds marginal value beyond the schema, as it does not explain parameter interactions, constraints, or usage patterns. 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 updates an existing case and lists the specific fields (name, type, severity, status, assignee, overview). It distinguishes itself from sibling tools like sophos_create_case and sophos_get_case by focusing on update functionality.

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 alternatives such as sophos_create_case or sophos_get_case. There are no mentions of prerequisites (e.g., case must exist) or scenarios where this tool should not be used (e.g., closed cases).

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

sophos_update_cloud_security_profile_nameB

Rename a cloud security runtime detection profile.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNew name for the profile (1-50 chars)
tenant_idYesTenant UUID
profile_idYesRuntime detection profile UUID

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already indicate non-destructive and not read-only. The description adds no extra behavioral context, such as side effects or whether renaming impacts existing references. No contradiction with annotations.

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?

Single sentence is concise and front-loaded. Could include more detail without losing brevity, but is effective for such a simple tool.

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 rename operation with no output schema, the description is minimally adequate. It lacks mention of return values or error conditions, but is acceptable given low complexity.

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?

Input schema covers all 3 parameters with descriptions (100% coverage). The description does not add any meaning beyond what the schema provides, so 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 clearly states the verb 'Rename' and the specific resource 'cloud security runtime detection profile'. It correctly distinguishes from sibling tools like create, list, get, and other update operations.

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 on when to use this tool versus alternatives. There is no mention of prerequisites, when not to use it, or what to do if other profile attributes need modification.

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

sophos_update_exclusionA

Update an existing global scanning exclusion (value, comment, and/or scanMode).

ParametersJSON Schema
NameRequiredDescriptionDefault
valueNoUpdated exclusion value
commentNoUpdated comment/reason
scan_modeNoUpdated scan mode
tenant_idYesTenant UUID
exclusion_idYesExclusion UUID

TDQS

A3.5/5.0
Behavior2/5

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

Annotations already indicate it's a write operation (readOnlyHint=false) and non-destructive. The description adds no extra behavioral details such as authorization needs, side effects, or response format. It simply restates the action.

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, short sentence that is front-loaded with the core action. Every word serves a purpose, and there is 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 straightforward update tool with no output schema and moderate parameter count, the description is adequate but not thorough. It lacks information about partial updates, response contents, or broader context like how this relates to exclusion management.

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?

With 100% schema coverage, the description adds limited value beyond confirming the updatable fields. It lists the same fields as in the schema, offering no additional syntax or constraints beyond what the schema provides.

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 'Update', identifies the resource 'existing global scanning exclusion', and lists the updatable fields (value, comment, scanMode). This clearly distinguishes it from sibling tools like create_exclusion or list_exclusions.

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 this tool is for modifying existing exclusions but does not explicitly state when to use it versus alternatives like create_exclusion or when not to use it. No prerequisites or exclusions are mentioned.

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

sophos_update_exploit_mitigation_appA

Update exploit mitigation settings for an application. Can update executable paths, toggle overall protection, and enable/disable individual exploit mitigations (ASLR, DEP, SEHOP, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsNoUpdated comma-separated list of executable paths
protectedNoEnable or disable exploit mitigation protection for this application
tenant_idYesTenant UUID
mitigationsNoJSON object of individual mitigation settings, e.g. {"ASLR": true, "DEP": true, "SEHOP": false, "HeapSpray": true, "StackPivot": true, "BannedAPI": true, "BottomUpASLR": true, "DEP": true, "IAF": true, "NullCheck": true, "StackExec": true, "Caller": true}
application_idYesExploit mitigation application UUID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations indicate mutation (readOnlyHint=false) but not destructive (destructiveHint=false). The description adds what can be updated (e.g., paths, protections, mitigations) but does not disclose whether settings are merged or overwritten, nor any side effects or permission requirements. Moderate transparency beyond annotations.

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?

Two sentences: first states purpose clearly, second enriches with capabilities. No fluff, but the structure could be more front-loaded with a brief usage note. Efficient and easy to parse.

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 the tool has 5 parameters with full schema descriptions and no output schema, the description covers the main use case. However, it omits that the application must already exist (implied but not explicit) and does not mention error states or typical response. Slightly incomplete for an update operation.

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

Parameters4/5

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

Schema coverage is 100% with descriptions for all 5 parameters. The description adds value by listing example mitigation names (ASLR, DEP, SEHOP, etc.) and clarifying 'toggle overall protection' for the protected parameter, providing concrete context beyond the schema.

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 'Update exploit mitigation settings for an application' with a specific verb and resource. It lists the types of updates (paths, protection toggle, individual mitigations) and distinguishes from sibling tools like create_exploit_mitigation_app by implying an existing application.

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?

No explicit guidance on when to use this tool or when not to. It implicitly performs updates, but there is no mention of prerequisites (e.g., application must already exist) or alternatives. The use case is implied but not clearly delineated from create or other sibling tools.

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

sophos_update_firewallA

Update a firewall's attributes (name and/or geolocation). Note: name must be 3–40 characters.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoUpdated name (3–40 characters)
latitudeNoGeolocation latitude
longitudeNoGeolocation longitude (required if latitude is provided)
tenant_idYesTenant UUID
firewall_idYesFirewall UUID

TDQS

A4.1/5.0
Behavior4/5

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

Annotations indicate non-destructive (destructiveHint=false) and open world (openWorldHint=true). Description adds the name length constraint, which is helpful. However, it does not disclose what happens to unspecified attributes or the effect of partial updates.

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?

Single sentence with a note—minimal, direct, and no 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?

No output schema; description omits return semantics. While input is clear, an agent may need to know the response format (e.g., success code, updated object). Annotations provide some context but not enough for full completeness.

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 has 100% description coverage, so baseline is 3. The description adds the name character limit (3–40), which is not in the schema, slightly improving clarity. Latitude/longitude dependence is weakly implied but already in schema.

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?

Clearly states it updates a firewall's name and/or geolocation. Notes a specific character constraint, distinguishing it from sibling tools that manage firewalls in other ways (e.g., list, approve, get).

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 when to use (to update a firewall) but offers no explicit guidance on when not to use or alternatives. Siblings include read and other update operations, but no comparison is provided.

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

sophos_update_firewall_groupA

Update a firewall group — rename it and/or add/remove firewalls.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew group name (3–40 characters)
group_idYesGroup UUID
tenant_idYesTenant UUID
assign_firewallsNoComma-separated firewall UUIDs to add to the group
unassign_firewallsNoComma-separated firewall UUIDs to remove from the group

TDQS

A3.6/5.0
Behavior3/5

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

Description is consistent with annotations (readOnlyHint=false, destructiveHint=false). It discloses mutation behavior and specific actions, but adds no extra context beyond annotations regarding auth needs, rate limits, or consequences.

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 sentence, front-loaded, clear, and concise with zero 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 simple update tool with 5 parameters and no output schema, the description captures the main purpose adequately. Could mention the effect on the group or response, but not critical given schema coverage.

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 has 100% coverage for all 5 parameters, so baseline is 3. Description briefly maps to parameters but does not add new meaning beyond what schema descriptions already provide.

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 (update), resource (firewall group), and specific actions (rename, add/remove firewalls). It distinguishes from sibling tools like sophos_create_firewall_group and sophos_get_firewall_group.

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 use this tool versus alternatives, no prerequisites, no exclusions. Implicit use case is modifying an existing group, but no clear direction.

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

sophos_update_ips_exclusionB

Update an IPS exclusion (direction, remote addresses, ports, or comment).

ParametersJSON Schema
NameRequiredDescriptionDefault
commentNoUpdated reason/comment
directionNoUpdated traffic direction
tenant_idYesTenant UUID
local_portsNoUpdated comma-separated local port numbers
exclusion_idYesIPS exclusion UUID
remote_portsNoUpdated comma-separated remote port numbers
remote_addressesNoUpdated comma-separated remote IP addresses or URLs

TDQS

B3.2/5.0
Behavior2/5

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

Annotations indicate readOnlyHint: false, destructiveHint: false, and openWorldHint: true. The description adds no additional behavioral context beyond confirming it is an update operation. No details on update semantics (partial vs full), required permissions, error handling, or side effects are provided.

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 of 12 words, efficiently conveying the core functionality without any unnecessary words or redundancy.

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

Completeness2/5

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

The description lacks details about return values, error scenarios, update behavior (e.g., whether it's a partial update or full replacement), and the context of required parameters. For a tool with 7 parameters and no output schema, this is insufficient for complete understanding.

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 baseline is 3. The description mentions some updatable fields but generalizes 'ports' into one term while the schema has two separate parameters (local_ports, remote_ports). It does not add significant new semantics beyond the schema 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?

The description clearly states the action 'Update' and the resource 'IPS exclusion' along with specific fields (direction, remote addresses, ports, or comment). The tool name itself includes 'ips', distinguishing it from other update exclusion tools like sophos_update_exclusion or sophos_update_isolation_exclusion.

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 provides no guidance on when to use this tool versus alternatives, no prerequisites, and no context on when not to use it. It only states what it does, leaving the agent without decision support.

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

sophos_update_isolation_exclusionB

Update an isolation exclusion (direction, remote addresses, ports, or comment).

ParametersJSON Schema
NameRequiredDescriptionDefault
commentNoUpdated reason/comment
directionNoUpdated traffic direction
tenant_idYesTenant UUID
local_portsNoUpdated comma-separated local port numbers
exclusion_idYesIsolation exclusion UUID
remote_portsNoUpdated comma-separated remote port numbers
remote_addressesNoUpdated comma-separated remote IP addresses or URLs

TDQS

B3.3/5.0
Behavior2/5

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

The description says 'Update' which implies mutation, consistent with readOnlyHint=false and destructiveHint=false annotations. However, it provides no additional behavioral context beyond the annotations, such as required permissions, idempotency behavior, or side effects (e.g., whether partial updates are allowed or if the entire exclusion is replaced).

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, concise sentence that effectively summarizes the tool's action and the key updatable fields. It has no unnecessary words or fluff, making it 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?

While the description covers the main updatable fields, it omits mention of the required parameters (tenant_id, exclusion_id) which are essential context for using the tool. With no output schema, the description could also benefit from noting any response expectations. However, the tool's relatively simple purpose and high schema coverage mitigate the gaps, resulting in a moderate score.

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 covers all 7 parameters with 100% description coverage, listing each parameter's purpose (e.g., 'Updated traffic direction'). The description's mention of 'direction, remote addresses, ports, or comment' adds no new meaning beyond what the schema already provides, so a 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 clearly states the verb 'Update' and the resource 'isolation exclusion', and lists the specific fields that can be updated (direction, remote addresses, ports, or comment). This distinguishes it from sibling tools like create, list, or get, which have different verbs or purposes.

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 alternatives (e.g., when an update is needed, or when to use create/delete instead). There is no mention of prerequisites, such as needing an existing exclusion ID, or context like 'use this after getting an exclusion'.

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

sophos_update_mailboxB

Update a mailbox's display name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNew display name for the mailbox
tenant_idYesTenant UUID
mailbox_idYesMailbox UUID

TDQS

B3.3/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false and destructiveHint=false, so the description's 'update' implies a non-destructive mutation. The description adds that it only updates the display name, which is helpful, but does not disclose any side effects, return values, or permission requirements. With annotations covering safety, a score of 3 is appropriate.

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 wasted words. It is front-loaded and directly states the tool's action. 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?

For a simple update tool with three required parameters and no output schema, the description is minimally adequate. However, it does not specify that the mailbox is in the context of a tenant (tenant_id is required) or mention any prerequisites. Given the sibling tools and schema coverage, the description is functional but lacks full context.

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 are fully described in the schema (100% coverage). The description does not add additional meaning or constraints. Baseline 3 is correct as the schema already provides clear parameter descriptions.

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 'update' and the resource 'mailbox's display name', specifying exactly what field is modified. It distinguishes from sibling tools like sophos_create_mailbox, sophos_manage_mailbox_aliases, and sophos_get_mailbox, which have different purposes.

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 on when to use this tool versus alternatives (e.g., for aliases or delegates). No context on prerequisites like authentication or tenant selection. The description does not mention exclusions or when not to use it.

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

sophos_update_mdr_threat_feed_settingsB

Update the MDR threat-feed settings for a specific firewall (enable/disable, action mode).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNoAction when a threat-feed indicator is matched
enabledNoEnable or disable the MDR threat feed
tenant_idYesTenant UUID
firewall_idYesFirewall UUID

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds no additional behavioral context beyond stating it updates settings. It is consistent but does not disclose side effects, requirements, or asynchronous behavior.

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 of 12 words with no waste. It effectively communicates the tool's action and scope.

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

Completeness2/5

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

For a mutation tool with 4 parameters and no output schema, the description lacks information on return values, immediacy, or side effects. It is minimally viable but could be more 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 schema fully documents parameters. The description adds value by summarizing the purpose ('enable/disable, action mode'), but does not detail tenant_id or firewall_id. Baseline is 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 clearly states the verb 'Update', the resource 'MDR threat-feed settings for a specific firewall', and the scope 'enable/disable, action mode'. It distinguishes from sibling tools like sophos_get_mdr_threat_feed and sophos_create_mdr_threat_feed_indicators.

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 vs alternatives, nor any prerequisites or exclusions. The description only implies usage for updating settings.

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

sophos_update_mobile_app_groupA

Update a mobile app group's name or apps list (PATCH — only provided fields are updated).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew app group name (max 255 chars)
apps_jsonNoJSON array of app objects — replaces the existing app list
tenant_idYesTenant UUID
app_group_idYesApp group UUID

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide basic safety traits. The description adds value by specifying the PATCH method and partial update behavior. However, it does not disclose authorization requirements or other side effects beyond what annotations offer, which is acceptable given annotation coverage.

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 extremely concise: one sentence with a clarifying parenthetical. Every word contributes meaning. It is front-loaded with the action verb and efficiently communicates the core behavior.

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 the schema coverage (100%), annotations, and no output schema, the description is sufficient. It captures the essential behavior (PATCH update of specific fields). It could optionally include an example or note about return value, but that is not required.

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 provides full descriptions for all 4 parameters, so the baseline is 3. The description adds no additional parameter-level information, but the schema already covers max length and JSON format.

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 'Update' and the resource 'mobile app group', specifies what can be updated ('name or apps list'), and includes the HTTP method 'PATCH' with partial update semantics. It effectively distinguishes from sibling tools like create and get.

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

Usage Guidelines4/5

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

The description implies usage for updating specific fields of an existing mobile app group. It does not explicitly state when not to use or list alternatives, but the context of sibling tools (create, get, list) makes the intended use clear.

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

sophos_update_mobile_device_groupA

Update a mobile device group. This is a full PUT replacement — all required fields must be provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDevice group name
group_idYesDevice group UUID
tenant_idYesTenant UUID
descriptionNoGroup description
ios_auto_enrollment_enabledNoWhether this group is used for iOS auto-enrollment
employee_compliance_policy_idYesUUID of the compliance policy for employee-owned devices
corporate_compliance_policy_idYesUUID of the compliance policy for corporate-owned devices
ios_auto_enrollment_install_smcNoWhether the SMC app is installed via MDM during iOS auto-enrollment

TDQS

A3.7/5.0
Behavior3/5

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

Annotations indicate mutation and no destruction; the description adds the 'full PUT replacement' behavior, but omits details on side effects, permissions, or handling of optional fields.

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 concise sentences: first states purpose, second adds critical behavioral warning. No wasted 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?

For a mutation tool with 8 parameters and no output schema, the description covers the core behavior but lacks guidance on optional fields, response format, and prerequisites.

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 covers 100% of parameters with descriptions; the description adds no additional meaning beyond the schema, thus meeting 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 clearly states the action (Update) and resource (mobile device group), and distinguishes the method as a full PUT replacement, which is specific and helpful.

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 explicitly notes that all required fields must be provided, giving a key usage constraint, but does not provide guidance on when to use this tool versus alternatives or prerequisites.

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

sophos_update_policyA

Update an existing endpoint policy. You can modify its name, enabled state, priority, and/or settings.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew name for the policy
enabledNoEnable or disable the policy
priorityNoNew priority (lower number = higher priority)
settingsNoUpdated policy settings as a JSON string. Structure depends on policy type.
policy_idYesPolicy ID to update
tenant_idYesTarget tenant ID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate a write operation (readOnlyHint=false) and non-destructive nature. The description adds the list of modifiable fields but no additional behavioral traits like authentication needs or side effects.

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 efficiently communicates the core purpose and modifiable fields without superfluous 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 straightforward update tool with well-documented parameters in the schema, the description adequately covers the action and scope. However, it omits details like partial update behavior or error handling, which are not critical given the tool's simplicity.

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?

With 100% schema coverage, the description merely restates parameter names (name, enabled, priority, settings) without adding new semantic detail beyond schema descriptions. Baseline score 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 clearly specifies the verb 'Update' and the resource 'existing endpoint policy', listing the modifiable aspects (name, enabled state, priority, settings). This distinguishes it from sibling tools like sophos_create_policy.

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 updating an existing policy but does not explicitly state when to use this tool over alternatives or provide exclusions. No guidance on prerequisites or when not to use.

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

sophos_update_software_commentA

Set or update the user comment for a specific static software package (full replace with PUT).

ParametersJSON Schema
NameRequiredDescriptionDefault
commentYesComment text to set for this software package
tenant_idYesTenant UUID
package_idYesStatic package UUID

TDQS

A3.9/5.0
Behavior4/5

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

The description adds behavioral context beyond annotations by noting it is a 'full replace with PUT', clarifying that the operation overwrites the entire comment. Annotations already indicate a write operation (readOnlyHint=false) and non-destructive nature (destructiveHint=false). The description confirms and elaborates on this.

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, efficient sentence. It is front-loaded with the verb 'Set or update' and specifies the resource and method, with no wasted 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?

No output schema exists, and the description does not explain return values or potential errors. Given the simplicity of the operation, this is adequate but could be improved by mentioning the response (e.g., updated comment object).

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 coverage is 100%, so the description does not need to add parameter details. The description mentions 'user comment', which aligns with the 'comment' parameter, but does not provide additional semantics beyond the schema.

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 action ('Set or update the user comment'), the resource ('static software package'), and the method ('full replace with PUT'). It is specific and distinguishes from sibling tools like sophos_get_software_comment and sophos_list_software_comments.

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 by specifying the PUT method and full replace behavior, but it does not explicitly state when to use this tool versus alternatives like sophos_add_software_package or sophos_get_software_comment. No exclusion or contextual guidance is provided.

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

sophos_update_switch_mac_filterA

Update the MAC filter settings for a tenant's managed switches. Provide a list of MAC addresses to allow or block on switch ports. Replaces the existing MAC address list. Maximum 256 entries.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
mac_addressesYesComma-separated list of MAC addresses to set on the filter (e.g. 'AA:BB:CC:DD:EE:FF,11:22:33:44:55:66'). Maximum 256 entries. Send an empty string to clear the filter.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, and the description adds key behavioral details: the update is a full replacement and allows clearing with an empty string. The replacement behavior is explicitly stated, which goes beyond annotation hints.

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 long, no fluff, and front-loads the main action (update). Every sentence contributes useful 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?

The description explains replacement, max entries, and clearing, but does not clarify if the update applies to all switches or specific ones (no switch identifier parameter). Lack of output schema and side effect details slightly reduce completeness.

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% but the description adds value by noting the maximum 256 entries for mac_addresses and the ability to clear the filter with an empty string. These details enhance understanding beyond the schema alone.

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 that the tool updates MAC filter settings for managed switches, specifying verb (Update), resource (MAC filter settings), and scope (tenant's managed switches). It effectively distinguishes from sibling tools like sophos_get_switch_mac_filter and sophos_update_wifi_mac_filter.

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 by stating it 'Replaces the existing MAC address list' and provides a maximum entry limit, but does not explicitly state when to use this tool over alternatives or mention prerequisites (e.g., existing switch configuration).

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

sophos_update_tenant_adminB

Update a tenant administrator's details (name or email).

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoUpdated email address
admin_idYesAdmin UUID
last_nameNoUpdated last name
tenant_idYesTenant UUID
first_nameNoUpdated first name

TDQS

B3.4/5.0
Behavior3/5

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

Description (update) aligns with annotations (readOnlyHint=false). No additional behavioral context beyond mutation; does not disclose side effects, idempotency, or permission requirements. Annotations already indicate write 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?

Single sentence, 9 words, front-loaded with verb 'Update'. Every word earns its place; no waste.

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?

No output schema, but description does not mention return value, error handling, or what happens on partial updates. Lacks completeness for a 5-param write operation.

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% with descriptions for all 5 params. Description adds only a summary ('name or email'), not extending meaning beyond schema. 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?

Description clearly states the verb 'Update' and resource 'tenant administrator's details', specifying updatable fields ('name or email'), distinguishing from create/list siblings.

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 on when to use this tool versus alternatives (e.g., sophos_create_tenant_admin, sophos_get_tenant_admin). Does not mention prerequisites or when to prefer this over other admin tools.

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

sophos_update_tenant_roleB

Update a tenant-level custom role's name or description.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoUpdated role name
role_idYesRole UUID
tenant_idYesTenant UUID
descriptionNoUpdated role description

TDQS

B3.3/5.0
Behavior2/5

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

The description adds no behavioral context beyond what annotations already convey. Annotations indicate a non-read, non-destructive write operation; the description merely restates 'update'. It does not disclose side effects or prerequisites.

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, concise sentence that front-loads the core function. No extraneous information is included.

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 minimal and does not explain the return value (no output schema), partial update behavior, or required permissions. For a simple update tool, the basic information is present but could be more 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?

The input schema covers 100% of parameters with descriptions. The tool description adds no additional meaning or constraints 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 clearly states the action (update), the resource (tenant-level custom role), and the specific fields (name or description). It distinguishes from sibling tools like sophos_create_tenant_role and sophos_get_tenant_role.

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 alternatives. For example, it does not mention that this tool modifies existing roles whereas sophos_create_tenant_role creates new ones.

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

sophos_update_tls_decryption_settingsB

Update Web Control TLS decryption settings. Pass a JSON array of category objects with id and decryptionEnabled fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
categoriesYesJSON array of category objects, e.g. [{"id": 10, "decryptionEnabled": true}]. Category IDs from sophos_get_tls_decryption_settings.

TDQS

B3.4/5.0
Behavior2/5

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

Annotations indicate it is a write operation (readOnlyHint=false) and non-destructive. The description mentions updating settings but does not clarify whether the provided list replaces all existing categories or merges with them. This lack of detail on the update behavior is a significant gap.

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 sentence that is concise and front-loaded with the action. It avoids unnecessary words but could benefit from a bit more structure to convey the update semantics.

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 tool with two parameters and full schema coverage, the description is adequate but lacks details on the update behavior (full replace vs. partial update) and the response format. Since no output schema exists, a note about the return value 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 coverage is 100%, so the description adds minimal value beyond the schema. It repeats the format for the categories parameter (JSON array), which is already in the schema description. 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 clearly states 'Update Web Control TLS decryption settings', specifying the verb and resource. It distinguishes from sibling tools like sophos_get_tls_decryption_settings (read) and sophos_list_web_control_categories (list).

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 provides clear context that a JSON array of category objects is required, implying prior retrieval of category IDs. However, it does not mention when to use this tool versus alternatives, nor any exclusions or prerequisites.

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

sophos_update_tls_excluded_websitesA

Add or remove websites from TLS decryption exclusions in a single call. Pass JSON arrays for 'add' and/or 'remove'.

ParametersJSON Schema
NameRequiredDescriptionDefault
addNoJSON array of sites to add, e.g. [{"value": "10.50.100.100", "comment": "Internal server"}]
removeNoJSON array of sites to remove, e.g. [{"value": "10.50.100.100", "comment": "No longer needed"}]
tenant_idYesTenant UUID

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint: false and destructiveHint: false. The description adds the behavior of handling both add and remove in a single call but provides no further behavioral context such as idempotency, rate limits, or auth requirements.

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-loaded with the action, and contains no unnecessary 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?

While the description explains the operation and parameters, it lacks details on response format, error conditions, and whether changes are incremental or replace the list. Given no output schema and a mutation operation, more completeness would be beneficial.

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% with descriptions for all parameters. The description reinforces the JSON array format and the ability to use both add and remove, which adds marginal value over the schema.

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 (add/remove) and resource (websites from TLS decryption exclusions) and distinguishes from sibling tools like sophos_list_tls_excluded_websites by specifying 'update in a single call'.

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

Usage Guidelines4/5

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

The description gives context by mentioning 'single call' and the ability to pass arrays for add and/or remove, but does not explicitly state when to use this tool versus alternatives, though no direct alternative exists for combined add/remove.

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

sophos_update_userB

Update a directory user's details.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoUpdated email
user_idYesUser UUID
last_nameNoUpdated last name
tenant_idYesTenant UUID
first_nameNoUpdated first name
exchange_loginNoUpdated Exchange login

TDQS

B3.2/5.0
Behavior2/5

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

The description adds no behavioral information beyond what annotations provide. Annotations already indicate it is a non-read-only, non-destructive mutation, but the description does not disclose prerequisites (e.g., user must exist) or side effects.

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 unnecessary words. It efficiently conveys the core purpose.

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

Completeness2/5

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

Given the mutation nature, six parameters, and no output schema, the description is too minimal. It does not explain expected output or prerequisites, which is inadequate for a tool in a large sibling set.

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 each parameter having a descriptive label. The description 'Update a directory user's details' adds no additional meaning beyond the schema, meeting the baseline 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 clearly states the action 'Update' and the resource 'a directory user's details', which is specific and distinct from sibling tools like sophos_get_user or sophos_create_user.

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 on when to use this tool versus alternatives, such as sophos_create_user for new users or sophos_add_user_to_groups for group changes. The description lacks context for selection.

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

sophos_update_user_groupB

Update a directory user group's name or description.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoUpdated name
group_idYesUser group UUID
tenant_idYesTenant UUID
descriptionNoUpdated description

TDQS

B3.2/5.0
Behavior2/5

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

Annotations indicate a write operation (readOnlyHint=false) that is not destructive (destructiveHint=false). The description adds no additional behavioral details such as permissions required, idempotency, or effects beyond the field updates.

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 concise sentence with no waste. However, it could be slightly expanded with 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?

The description is adequate for a simple update tool, but it omits expected return value or confirmation behavior. With no output schema, a brief note on success indicators 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 coverage is 100% with parameter descriptions. The description restates the purpose of the optional parameters (name, description) but does not add new meaning beyond the schema. 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 explicitly states 'Update a directory user group's name or description,' which clearly identifies the verb (update) and resource (user group), and distinguishes it from create or list siblings.

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 alternatives like create_user_group, list_user_groups, or add_users_to_group. The description does not specify prerequisites or exclusions.

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

sophos_update_web_control_local_siteB

Update a Web Control local site override (URL, categoryId, and/or comment).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoUpdated URL or domain
commentNoUpdated reason/comment
tenant_idYesTenant UUID
category_idNoUpdated category ID (integer)
local_site_idYesLocal site UUID

TDQS

B3.1/5.0
Behavior2/5

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

Annotations indicate non-readOnly and non-destructive, but description adds no behavioral context (e.g., partial update semantics, authorization needs). The 'update' verb aligns with annotations but no extra insight.

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?

Single sentence, no fluff, front-loaded with action and resource. Efficient for an agent to parse.

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 no output schema and full parameter descriptions, the description is adequate but lacks context on required fields (tenant_id, local_site_id) and how to obtain them. Relies on schema and sibling 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 coverage is 100%, so the description adds minimal value. It lists three updatable fields but doesn't explain their relationship or constraints beyond the schema.

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

Purpose4/5

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

The description clearly states the action 'Update' and the resource 'Web Control local site override', and lists the updatable fields. It distinguishes from sibling tools like create_web_control_local_site by verb, though it doesn't explicitly contrast.

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 on when to use this tool versus alternatives (e.g., create vs update). No mention of prerequisites like needing the local_site_id from a list operation.

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

sophos_update_wifi_mac_filterA

Update the MAC filter settings for a tenant's managed Wi-Fi access points. Provide a list of MAC addresses to allow or block. Replaces the existing MAC address list. Maximum 256 entries.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesTenant UUID
mac_addressesYesComma-separated list of MAC addresses to set on the filter (e.g. 'AA:BB:CC:DD:EE:FF,11:22:33:44:55:66'). Maximum 256 entries. Send an empty string to clear the filter.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false (write operation) and destructiveHint=false. The description adds value by disclosing that it replaces the existing list (a behavioral trait beyond annotations) and specifies a maximum entry limit. This helps the agent understand the impact of the 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 concise with three short sentences. The first sentence states the core purpose, the second provides usage instruction, and the third clarifies replacement behavior and limits. No unnecessary 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?

Given the tool has only two parameters with full schema coverage and no output schema, the description covers the essential aspects: purpose, how to provide input, replacement behavior, entry limit, and clear option. It lacks details on return values or errors, but that's acceptable for a simple update tool with no output schema.

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% (both parameters described). The description adds meaning beyond the schema by stating the purpose of the filter ('to allow or block') and explicitly mentioning that an empty string clears the filter. This enhances understanding for the agent.

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

Purpose5/5

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

The description clearly states the verb 'Update' and the resource 'MAC filter settings for a tenant's managed Wi-Fi access points'. It explicitly mentions the action of providing a list of MAC addresses to allow or block, and that it replaces the existing list. This distinguishes it from sibling tools like sophos_get_wifi_mac_filter (read) and sophos_update_switch_mac_filter (switch vs Wi-Fi).

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

Usage Guidelines4/5

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

The description specifies that the tool replaces the existing MAC address list and imposes a maximum of 256 entries. It also mentions clearing by sending an empty string. While it doesn't explicitly state when not to use or list alternatives, it provides sufficient context for typical usage (setting a new filter).

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. 100 tool updatesv1.1.0
    • Removedsophos_apply_firmware_upgrade
    • Removedsophos_block_addresses_bulk
    • Removedsophos_bulk_delete_endpoints
    • Removedsophos_bulk_delete_mailboxes
    • Removedsophos_bulk_isolate_endpoints
    • Removedsophos_cancel_firmware_upgrade
    • Removedsophos_clawback_email
    • Removedsophos_clone_policy
    • Removedsophos_create_account_access_token
    • Removedsophos_create_admin
    • Removedsophos_create_mobile_device_group
    • Removedsophos_create_role_assignment
    • Removedsophos_deisolate_endpoint
    • Removedsophos_delete_all_mdr_threat_feed_indicators
    • Removedsophos_delete_allowed_item
    • Removedsophos_delete_blocked_item
    • Removedsophos_delete_case
    • Removedsophos_delete_cloud_security_profiles
    • Removedsophos_delete_endpoint
    • Removedsophos_delete_endpoint_group
    • Removedsophos_delete_exclusion
    • Removedsophos_delete_exploit_mitigation_app
    • Removedsophos_delete_firewall
    • Removedsophos_delete_firewall_group
    • Removedsophos_delete_ips_exclusion
    • Removedsophos_delete_isolation_exclusion
    • Removedsophos_delete_mailbox
    • Removedsophos_delete_mdr_threat_feed_indicators
    • Removedsophos_delete_mobile_action
    • Removedsophos_delete_mobile_app_group
    • Removedsophos_delete_mobile_device
    • Removedsophos_delete_mobile_device_group
    • Removedsophos_delete_mobile_device_property
    • Removedsophos_delete_partner_admin
    • Removedsophos_delete_partner_admin_role_assignment
    • Removedsophos_delete_partner_role
    • Removedsophos_delete_policy
    • Removedsophos_delete_post_delivery_quarantine_messages
    • Removedsophos_delete_quarantine_messages
    • Removedsophos_delete_role_assignment
    • Removedsophos_delete_software_comment
    • Removedsophos_delete_tenant
    • Removedsophos_delete_tenant_admin
    • Removedsophos_delete_tenant_role
    • Removedsophos_delete_tenant_role_assignment
    • Removedsophos_delete_user
    • Removedsophos_delete_user_group
    • Removedsophos_delete_web_control_local_site
    • Removedsophos_dns_delete_custom_domain
    • Removedsophos_dns_delete_location
    • Removedsophos_dns_delete_policy
    • Removedsophos_force_update_check
    • Removedsophos_get_adaptive_attack_protection
    • Removedsophos_get_billing_usage
    • Removedsophos_get_clawback_status
    • Removedsophos_get_endpoint
    • Removedsophos_get_isolation_status
    • Removedsophos_get_licenses
    • Removedsophos_get_mobile_device_location
    • Removedsophos_get_peripheral
    • Removedsophos_get_policy
    • Removedsophos_get_tamper_protection
    • Removedsophos_isolate_endpoint
    • Removedsophos_list_account_access_tokens
    • Removedsophos_list_admins
    • Removedsophos_list_endpoint_groups
    • Removedsophos_list_endpoint_migrations
    • Removedsophos_list_group_endpoints
    • Removedsophos_list_mobile_actions
    • Removedsophos_list_mobile_device_apps
    • Removedsophos_list_mobile_device_properties
    • Removedsophos_list_mobile_device_scan_results
    • Removedsophos_list_mobile_device_violations
    • Removedsophos_list_partner_admin_role_assignments
    • Removedsophos_list_peripherals
    • Removedsophos_list_permission_sets
    • Removedsophos_list_policies
    • Removedsophos_list_roles
    • Removedsophos_list_xdr_query_runs
    • Removedsophos_mobile_action_lock
    • Removedsophos_mobile_action_scan
    • Removedsophos_mobile_action_unenroll
    • Removedsophos_mobile_action_wipe
    • Removedsophos_org_list_tenants
    • Removedsophos_release_post_delivery_quarantine_messages
    • Removedsophos_release_quarantine_messages
    • Removedsophos_remove_endpoints_from_group
    • Removedsophos_remove_user_from_groups
    • Removedsophos_remove_users_from_group
    • Removedsophos_request_forensic_logs
    • Removedsophos_revoke_account_access_token
    • Removedsophos_run_live_query
    • Removedsophos_run_saved_live_query
    • Removedsophos_scan_endpoint
    • Removedsophos_strip_quarantine_attachments
    • Removedsophos_update_endpoint_group
    • Removedsophos_update_mobile_device
    • Removedsophos_update_mobile_device_property
    • Removedsophos_update_partner_role
    • Removedsophos_whoami
  2. 334 tool updatesv1.0.0
    • First observedsophos_accept_migration
    • First observedsophos_acknowledge_alert
    • First observedsophos_add_endpoints_to_group
    • First observedsophos_add_software_package
    • First observedsophos_add_user_to_groups
    • First observedsophos_add_users_to_group
    • First observedsophos_apply_firmware_upgrade
    • First observedsophos_approve_firewall
    • First observedsophos_authenticate
    • First observedsophos_block_addresses_bulk
    • First observedsophos_bulk_add_mailboxes
    • First observedsophos_bulk_delete_endpoints
    • First observedsophos_bulk_delete_mailboxes
    • First observedsophos_bulk_isolate_endpoints
    • First observedsophos_cancel_firmware_upgrade
    • First observedsophos_cancel_live_query_run
    • First observedsophos_cancel_xdr_query_run
    • First observedsophos_check_firmware_upgrades
    • First observedsophos_clawback_email
    • First observedsophos_clone_policy
    • First observedsophos_create_account_access_token
    • First observedsophos_create_admin
    • First observedsophos_create_admin_role_assignment
    • First observedsophos_create_allowed_item
    • First observedsophos_create_blocked_item
    • First observedsophos_create_case
    • First observedsophos_create_cloud_security_profile
    • First observedsophos_create_endpoint_group
    • First observedsophos_create_exclusion
    • First observedsophos_create_exploit_mitigation_app
    • First observedsophos_create_firewall_group
    • First observedsophos_create_ips_exclusion
    • First observedsophos_create_isolation_exclusion
    • First observedsophos_create_mailbox
    • First observedsophos_create_mdr_threat_feed_indicators
    • First observedsophos_create_mobile_app_group
    • First observedsophos_create_mobile_device
    • First observedsophos_create_mobile_device_group
    • First observedsophos_create_mobile_device_property
    • First observedsophos_create_partner_admin_role_assignment
    • First observedsophos_create_partner_role
    • First observedsophos_create_policy
    • First observedsophos_create_role_assignment
    • First observedsophos_create_tenant
    • First observedsophos_create_tenant_admin
    • First observedsophos_create_tenant_role
    • First observedsophos_create_user
    • First observedsophos_create_user_attestation
    • First observedsophos_create_user_group
    • First observedsophos_create_web_control_local_site
    • First observedsophos_deisolate_endpoint
    • First observedsophos_delete_all_mdr_threat_feed_indicators
    • First observedsophos_delete_allowed_item
    • First observedsophos_delete_blocked_item
    • First observedsophos_delete_case
    • First observedsophos_delete_cloud_security_profiles
    • First observedsophos_delete_endpoint
    • First observedsophos_delete_endpoint_group
    • First observedsophos_delete_exclusion
    • First observedsophos_delete_exploit_mitigation_app
    • First observedsophos_delete_firewall
    • First observedsophos_delete_firewall_group
    • First observedsophos_delete_ips_exclusion
    • First observedsophos_delete_isolation_exclusion
    • First observedsophos_delete_mailbox
    • First observedsophos_delete_mdr_threat_feed_indicators
    • First observedsophos_delete_mobile_action
    • First observedsophos_delete_mobile_app_group
    • First observedsophos_delete_mobile_device
    • First observedsophos_delete_mobile_device_group
    • First observedsophos_delete_mobile_device_property
    • First observedsophos_delete_partner_admin
    • First observedsophos_delete_partner_admin_role_assignment
    • First observedsophos_delete_partner_role
    • First observedsophos_delete_policy
    • First observedsophos_delete_post_delivery_quarantine_messages
    • First observedsophos_delete_quarantine_messages
    • First observedsophos_delete_role_assignment
    • First observedsophos_delete_software_comment
    • First observedsophos_delete_tenant
    • First observedsophos_delete_tenant_admin
    • First observedsophos_delete_tenant_role
    • First observedsophos_delete_tenant_role_assignment
    • First observedsophos_delete_user
    • First observedsophos_delete_user_group
    • First observedsophos_delete_web_control_local_site
    • First observedsophos_dns_create_custom_domain
    • First observedsophos_dns_create_location
    • First observedsophos_dns_create_policy
    • First observedsophos_dns_delete_custom_domain
    • First observedsophos_dns_delete_location
    • First observedsophos_dns_delete_policy
    • First observedsophos_dns_get_custom_domain
    • First observedsophos_dns_get_location
    • First observedsophos_dns_get_policy
    • First observedsophos_dns_list_custom_domains
    • First observedsophos_dns_list_locations
    • First observedsophos_dns_list_policies
    • First observedsophos_dns_update_custom_domain
    • First observedsophos_dns_update_location
    • First observedsophos_dns_update_policy
    • First observedsophos_download_post_delivery_quarantine_attachments
    • First observedsophos_download_quarantine_attachments
    • First observedsophos_export_xdr_query_results
    • First observedsophos_force_update_check
    • First observedsophos_get_account_health
    • First observedsophos_get_adaptive_attack_protection
    • First observedsophos_get_alert
    • First observedsophos_get_allowed_item
    • First observedsophos_get_audit_event
    • First observedsophos_get_billing_usage
    • First observedsophos_get_blocked_item
    • First observedsophos_get_case
    • First observedsophos_get_case_detection
    • First observedsophos_get_case_impacted_entities
    • First observedsophos_get_case_mitre_summary
    • First observedsophos_get_clawback_status
    • First observedsophos_get_cloud_security_profile
    • First observedsophos_get_detected_exploit
    • First observedsophos_get_detection_counts
    • First observedsophos_get_detections_group_query_status
    • First observedsophos_get_detections_group_results
    • First observedsophos_get_detections_query_results
    • First observedsophos_get_detections_query_status
    • First observedsophos_get_endpoint
    • First observedsophos_get_endpoint_group
    • First observedsophos_get_exclusion
    • First observedsophos_get_exploit_mitigation_app
    • First observedsophos_get_firewall_group
    • First observedsophos_get_firewall_group_sync_status
    • First observedsophos_get_firewall_licenses
    • First observedsophos_get_firewall_transaction
    • First observedsophos_get_forensic_log_status
    • First observedsophos_get_global_tamper_protection
    • First observedsophos_get_health_scores_history
    • First observedsophos_get_installer_downloads
    • First observedsophos_get_ips_exclusion
    • First observedsophos_get_isolation_exclusion
    • First observedsophos_get_isolation_status
    • First observedsophos_get_licenses
    • First observedsophos_get_live_query_category
    • First observedsophos_get_live_query_endpoint_statuses
    • First observedsophos_get_live_query_results
    • First observedsophos_get_live_query_status
    • First observedsophos_get_mailbox
    • First observedsophos_get_mdr_threat_feed
    • First observedsophos_get_memory_dump_status
    • First observedsophos_get_migration_job
    • First observedsophos_get_mobile_action
    • First observedsophos_get_mobile_app_group
    • First observedsophos_get_mobile_device
    • First observedsophos_get_mobile_device_group
    • First observedsophos_get_mobile_device_location
    • First observedsophos_get_mobile_ixm_enrollment
    • First observedsophos_get_mobile_operating_system
    • First observedsophos_get_partner_admin
    • First observedsophos_get_partner_level
    • First observedsophos_get_partner_role
    • First observedsophos_get_peripheral
    • First observedsophos_get_policy
    • First observedsophos_get_post_delivery_quarantine_download_status
    • First observedsophos_get_quarantine_download_status
    • First observedsophos_get_quarantine_message
    • First observedsophos_get_quarantine_message_urls
    • First observedsophos_get_quote
    • First observedsophos_get_recommended_packages
    • First observedsophos_get_regional_health_scores
    • First observedsophos_get_saved_live_query
    • First observedsophos_get_siem_alerts
    • First observedsophos_get_siem_events
    • First observedsophos_get_software_comment
    • First observedsophos_get_software_package
    • First observedsophos_get_switch_mac_filter
    • First observedsophos_get_tamper_protection
    • First observedsophos_get_tenant
    • First observedsophos_get_tenant_admin
    • First observedsophos_get_tenant_role
    • First observedsophos_get_tls_decryption_settings
    • First observedsophos_get_user
    • First observedsophos_get_user_attestation
    • First observedsophos_get_user_group
    • First observedsophos_get_web_control_local_site
    • First observedsophos_get_wifi_mac_filter
    • First observedsophos_get_xdr_query
    • First observedsophos_get_xdr_query_results
    • First observedsophos_get_xdr_query_status
    • First observedsophos_invite_tenant_admin
    • First observedsophos_isolate_endpoint
    • First observedsophos_list_account_access_tokens
    • First observedsophos_list_admin_role_assignments
    • First observedsophos_list_admins
    • First observedsophos_list_alerts
    • First observedsophos_list_allowed_items
    • First observedsophos_list_audit_events
    • First observedsophos_list_blocked_addresses
    • First observedsophos_list_blocked_items
    • First observedsophos_list_case_detections
    • First observedsophos_list_cases
    • First observedsophos_list_cloud_security_default_contents
    • First observedsophos_list_cloud_security_profiles
    • First observedsophos_list_detected_exploits
    • First observedsophos_list_downloads
    • First observedsophos_list_endpoint_groups
    • First observedsophos_list_endpoint_migrations
    • First observedsophos_list_endpoints
    • First observedsophos_list_exclusions
    • First observedsophos_list_exploit_mitigation_apps
    • First observedsophos_list_exploit_mitigation_categories
    • First observedsophos_list_firewall_groups
    • First observedsophos_list_firewalls
    • First observedsophos_list_group_endpoints
    • First observedsophos_list_ips_exclusions
    • First observedsophos_list_isolation_exclusions
    • First observedsophos_list_live_query_categories
    • First observedsophos_list_live_query_runs
    • First observedsophos_list_mailboxes
    • First observedsophos_list_migration_endpoints
    • First observedsophos_list_mobile_actions
    • First observedsophos_list_mobile_app_groups
    • First observedsophos_list_mobile_device_apps
    • First observedsophos_list_mobile_device_groups
    • First observedsophos_list_mobile_device_policies
    • First observedsophos_list_mobile_device_properties
    • First observedsophos_list_mobile_device_scan_results
    • First observedsophos_list_mobile_device_violations
    • First observedsophos_list_mobile_devices
    • First observedsophos_list_mobile_operating_systems
    • First observedsophos_list_partner_admin_role_assignments
    • First observedsophos_list_peripherals
    • First observedsophos_list_permission_sets
    • First observedsophos_list_policies
    • First observedsophos_list_policy_endpoints
    • First observedsophos_list_post_delivery_quarantine_attachments
    • First observedsophos_list_quarantine_attachments
    • First observedsophos_list_quotes
    • First observedsophos_list_role_assignments
    • First observedsophos_list_roles
    • First observedsophos_list_saved_live_queries
    • First observedsophos_list_software_comments
    • First observedsophos_list_software_packages
    • First observedsophos_list_switch_tasks
    • First observedsophos_list_tenant_admins
    • First observedsophos_list_tenant_admins_paged
    • First observedsophos_list_tenant_permission_sets
    • First observedsophos_list_tenant_roles
    • First observedsophos_list_tenants
    • First observedsophos_list_tls_excluded_websites
    • First observedsophos_list_user_groups
    • First observedsophos_list_users
    • First observedsophos_list_users_in_group
    • First observedsophos_list_web_control_categories
    • First observedsophos_list_web_control_local_sites
    • First observedsophos_list_wifi_tasks
    • First observedsophos_list_xdr_queries
    • First observedsophos_list_xdr_query_categories
    • First observedsophos_list_xdr_query_runs
    • First observedsophos_manage_mailbox_aliases
    • First observedsophos_manage_mailbox_delegates
    • First observedsophos_manage_mailbox_dl_owners
    • First observedsophos_mitre_attack_guide
    • First observedsophos_mobile_action_get_logs
    • First observedsophos_mobile_action_locate
    • First observedsophos_mobile_action_lock
    • First observedsophos_mobile_action_scan
    • First observedsophos_mobile_action_send_message
    • First observedsophos_mobile_action_sync
    • First observedsophos_mobile_action_unenroll
    • First observedsophos_mobile_action_wipe
    • First observedsophos_org_get_tenant
    • First observedsophos_org_list_tenants
    • First observedsophos_playbook_incident_response
    • First observedsophos_playbook_malware_triage
    • First observedsophos_playbook_threat_hunt
    • First observedsophos_preview_post_delivery_quarantine_message
    • First observedsophos_preview_quarantine_message
    • First observedsophos_reattach_quarantine_attachments
    • First observedsophos_release_post_delivery_quarantine_messages
    • First observedsophos_release_quarantine_messages
    • First observedsophos_remove_endpoints_from_group
    • First observedsophos_remove_user_from_groups
    • First observedsophos_remove_users_from_group
    • First observedsophos_request_bulk_sender_privilege
    • First observedsophos_request_forensic_logs
    • First observedsophos_request_memory_dump
    • First observedsophos_revoke_account_access_token
    • First observedsophos_run_live_query
    • First observedsophos_run_saved_live_query
    • First observedsophos_run_saved_xdr_query
    • First observedsophos_run_xdr_query
    • First observedsophos_scan_endpoint
    • First observedsophos_search_alerts
    • First observedsophos_search_mdr_threat_feed_indicators
    • First observedsophos_search_post_delivery_quarantine
    • First observedsophos_search_quarantine
    • First observedsophos_set_tamper_protection
    • First observedsophos_snooze_health_check
    • First observedsophos_soc_tool_guide
    • First observedsophos_start_detections_group_query
    • First observedsophos_start_detections_query
    • First observedsophos_start_migration
    • First observedsophos_strip_quarantine_attachments
    • First observedsophos_take_alert_action
    • First observedsophos_unblock_addresses_bulk
    • First observedsophos_update_account_access_token
    • First observedsophos_update_adaptive_attack_protection
    • First observedsophos_update_allowed_item
    • First observedsophos_update_case
    • First observedsophos_update_cloud_security_profile_name
    • First observedsophos_update_endpoint_group
    • First observedsophos_update_exclusion
    • First observedsophos_update_exploit_mitigation_app
    • First observedsophos_update_firewall
    • First observedsophos_update_firewall_group
    • First observedsophos_update_ips_exclusion
    • First observedsophos_update_isolation_exclusion
    • First observedsophos_update_mailbox
    • First observedsophos_update_mdr_threat_feed_settings
    • First observedsophos_update_mobile_app_group
    • First observedsophos_update_mobile_device
    • First observedsophos_update_mobile_device_group
    • First observedsophos_update_mobile_device_property
    • First observedsophos_update_partner_role
    • First observedsophos_update_policy
    • First observedsophos_update_software_comment
    • First observedsophos_update_switch_mac_filter
    • First observedsophos_update_tenant_admin
    • First observedsophos_update_tenant_role
    • First observedsophos_update_tls_decryption_settings
    • First observedsophos_update_tls_excluded_websites
    • First observedsophos_update_user
    • First observedsophos_update_user_group
    • First observedsophos_update_web_control_local_site
    • First observedsophos_update_wifi_mac_filter
    • First observedsophos_whoami

TDQS

B3/5.0

Scored across 234 tools

Disambiguation3/5

Most tools target distinct resources, but there are deliberate aliases/equivalents such as sophos_search_alerts vs sophos_list_alerts, sophos_list_tenant_admins_paged vs sophos_list_tenant_admins, and sophos_acknowledge_alert vs sophos_take_alert_action. Near-identical quarantine, mailbox, and role tools also require careful reading, though descriptions generally do enough to resolve ambiguity.

Naming Consistency3/5

The sophos_ verb_noun pattern dominates and is mostly readable, but conventions are mixed: sophos_mobile_action_sync inverts the usual verb-first style, sophos_playbook_* and *_guide tools are noun-style, and variants like add_user_to_groups vs add_users_to_group vs manage_mailbox_aliases break consistency. The universal sophos_ prefix keeps the set navigable despite these deviations.

Tool Count1/5

At 234 tools, this is an extreme mismatch for a single MCP server and far exceeds the 50+ threshold. Even for a broad security platform, the surface should be split into focused servers by domain such as endpoints, email, firewall, mobile, and administration to remain practically usable by agents.

Completeness2/5

Coverage is broad across many Sophos Central domains, but lifecycle coverage has significant gaps: there is no way to start/run a Live Discover query despite having status, results, and cancel tools, and many resources like exclusions, allowed/blocked items, endpoint groups, mailboxes, users, and roles lack delete/remove operations. Some surfaces also lack basic list operations, notably policies and endpoint groups, creating agent dead ends.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    Enables AI agents to interact seamlessly with Splunk environments through 20+ tools for search, analytics, data discovery, administration, and health monitoring. Features AI-powered troubleshooting workflows and supports multiple Splunk instances with production-ready security.
    57
    27
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Integrates SOAR (Security Orchestration, Automation and Response) capabilities into AI clients, enabling security playbook execution, event management, and threat intelligence queries. Provides a complete security incident response platform through natural language interactions.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Brings the full AlertLogic MDR platform into AI assistants, exposing 473+ tools for incident response, log search, SOAR automation, and multi-account security operations at MSSP scale.
    MIT