Skip to main content
Glama
am3cramirez

Datto RMM MCP Server

by am3cramirez

Datto RMM MCP Server

A Model Context Protocol server for the Datto RMM API v2, giving AI assistants full read/write access to devices, sites, alerts, audits, jobs, variables, filters, and activity logs.

Inspired by wyre-technology/datto-rmm-mcp (8 tools), this server covers the complete v2 API surface with 46 tools, plus OAuth token caching, automatic 401 re-auth, and 429 rate-limit retry with backoff.

Tools

Account

Tool

Description

datto_get_account

Account details

datto_list_devices

All devices, filterable by hostname, type, OS, site name, or filter ID

datto_list_sites

All sites, filterable by name

datto_list_users

Authentication users

datto_list_components

Automation components (for quick jobs)

datto_list_dnet_site_mappings

Datto Networking site mappings

datto_list_account_variables / datto_create_account_variable / datto_update_account_variable / datto_delete_account_variable

Account variable CRUD

Sites

Tool

Description

datto_get_site

Site details with device counts

datto_create_site / datto_update_site

Create or update sites

datto_list_site_devices

Devices in a site

datto_list_site_network_interfaces

Device network interface info for a site

datto_get_site_settings

Site settings

datto_list_site_filters

Device filters visible for a site

datto_set_site_proxy / datto_delete_site_proxy

Site proxy management

datto_list_site_variables / datto_create_site_variable / datto_update_site_variable / datto_delete_site_variable

Site variable CRUD

Devices

Tool

Description

datto_get_device / datto_get_device_by_id / datto_get_device_by_mac

Look up devices by UID, numeric ID, or MAC

datto_run_quickjob

Run a component on a device (with input variables)

datto_move_device

Move a device to another site

datto_set_device_udf

Set user-defined fields (udf1–udf30)

datto_set_device_warranty

Set warranty expiration date

Alerts

Tool

Description

datto_list_alerts

Open/resolved alerts, scoped to account, site, or device

datto_get_alert

Single alert details

datto_resolve_alert

Resolve an alert

Audit

Tool

Description

datto_get_device_audit

Full device audit (hardware, OS, network, patches)

datto_get_device_software

Installed software list

datto_get_esxi_audit / datto_get_printer_audit

ESXi host / printer audits

datto_get_audit_by_mac

Audit lookup by MAC address

Jobs

Tool

Description

datto_get_job

Job status and details

datto_get_job_components

Job components

datto_get_job_results

Per-device job results

datto_get_job_stdout / datto_get_job_stderr

Job output streams

Other

Tool

Description

datto_list_filters

Default or custom device filters

datto_list_activity_logs

Activity log search (date range, entities, free-text query)

datto_get_system_info

Platform status, pagination config, or current rate-limit usage

Related MCP server: Autotask MCP Server

Setup

1. Get API credentials

In Datto RMM: Setup > Users > [your user] > API keys. Note your platform from your Datto RMM URL (e.g. merlot.centrastage.netmerlot).

2. Configure

Environment variables:

Variable

Required

Description

DATTO_API_KEY

yes

API access key

DATTO_API_SECRET

yes

API secret key

DATTO_PLATFORM

yes*

One of pinotage, merlot, concord, vidal, zinfandel, syrah

DATTO_API_URL

no

Full base URL; overrides DATTO_PLATFORM

MCP_TRANSPORT

no

stdio (default) or http

PORT

no

HTTP port when MCP_TRANSPORT=http (default 3000)

3. Run

npm install
npm run build

Claude Desktop / Claude Code (claude_desktop_config.json or .mcp.json):

{
  "mcpServers": {
    "datto-rmm": {
      "command": "node",
      "args": ["/path/to/dattormm-mcp/dist/index.js"],
      "env": {
        "DATTO_API_KEY": "your-key",
        "DATTO_API_SECRET": "your-secret",
        "DATTO_PLATFORM": "merlot"
      }
    }
  }
}

Docker (Streamable HTTP):

docker build -t dattormm-mcp .
docker run -p 3000:3000 \
  -e DATTO_API_KEY=your-key \
  -e DATTO_API_SECRET=your-secret \
  -e DATTO_PLATFORM=merlot \
  -e MCP_TRANSPORT=http \
  dattormm-mcp

The HTTP transport runs stateless at POST / with a GET /health endpoint.

Notes

  • Rate limits: Datto allows 600 reads and 100 writes per 60 seconds. The client retries once on 429 honoring Retry-After; check live usage with datto_get_system_info (request_rate).

  • Pagination: list endpoints return at most 250 records per page — responses include pageDetails with next-page info; pass page/max to the tools.

  • Auth: OAuth tokens (100 h lifetime) are cached in-memory and transparently refreshed on expiry or 401.

  • The POST /v2/user/resetApiKeys endpoint is intentionally not exposed — it would invalidate the credentials the server is running with.

  • Alert mute/unmute endpoints are omitted: Datto removed alert muting in RMM 8.9.0.

License

MIT

Available Tools

46 tools
datto_create_account_variableCreate account variableC

Create an account-level variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesVariable name
valueYesVariable value
maskedNoMask (hide) the value in the UI

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description must convey behavior. It only says 'create', leaving the agent unaware of idempotency, uniqueness constraints, side effects, or error conditions. This is insufficient for a mutation tool.

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 a single sentence, which is concise but overly minimal. It lacks necessary detail to be truly useful, bordering on under-specification rather than efficient 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?

Given the tool's simplicity (3 params, no output schema), the description is incomplete. It fails to mention return value, error handling, or relationship with sibling tools like update/delete. The agent lacks critical 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 descriptions for all three parameters. The description adds no extra meaning beyond the schema, meeting the baseline. No additional constraints or formatting guidance are provided.

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 (create) and the resource (account-level variable). It distinguishes from siblings like datto_create_site_variable by specifying 'account-level'. However, it does not elaborate on what an account variable is or its purpose.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., site-level variable). There are no prerequisites, conditions, or usage scenarios mentioned.

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

datto_create_siteCreate siteC

Create a new site in the account.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSite name
notesNoSite notes
onDemandNoCreate as an On-Demand site
descriptionNoSite description
splashtopAutoInstallNoAuto-install Splashtop on site devices

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states 'Create a new site' without mentioning prerequisites (e.g., account existence), idempotency, side effects, or what happens on duplicate names. Minimal transparency for a mutation 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 immediately states the action and resource. Every word is necessary; no fluff. It is efficiently 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?

Given 5 parameters and no output schema, the description is too minimal. It does not explain what a 'site' represents, what happens upon creation (e.g., returns an ID), or any behavioral nuances. A more detailed description is needed for a create tool with multiple optional 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% with descriptions for all 5 parameters. The tool description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate. No new insights are provided.

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 (create) and resource (site) with context (in the account). However, it does not distinguish from sibling tools like datto_create_site_variable or datto_create_account_variable, which create different entities. The specificity is good but lacks 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 siblings. For example, there is no mention that datto_update_site is for modifying existing sites, or that datto_list_sites is for viewing existing sites. The description offers no contextual usage advice.

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

datto_create_site_variableCreate site variableC

Create a variable in a site.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesVariable name
valueYesVariable value
maskedNoMask (hide) the value in the UI
siteUidYesSite UID

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states 'Create' implying mutation, but does not disclose any side effects, permissions, or reversibility. This is insufficient for a mutation tool.

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 a single short sentence, which is concise but borderline under-specified. It lacks any structured breakdown of behavior, which would improve usefulness.

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 covers the bare minimum. With no output schema and no annotations, it does not explain return values, error conditions, or behavior beyond creation. For a tool with 4 parameters, 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 description coverage is 100%, and the schema's property descriptions are adequate. The tool description adds no additional meaning beyond what is already in 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.

Purpose3/5

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

The description 'Create a variable in a site' clearly identifies the action and resource, but it is generic and does not differentiate from sibling tools like datto_create_account_variable. The purpose is vague given the many similar create 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 datto_create_account_variable. No context about prerequisites or exclusions, leaving an agent to infer usage from the name and schema alone.

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

datto_delete_account_variableDelete account variableB

Delete an account-level variable by its numeric ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
variableIdYesVariable ID

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states 'Delete', implying destruction, but does not specify whether the action is reversible, requires permissions, or affects other resources.

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 9 words. It is extremely concise with no redundancy. Every word 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?

For a simple deletion tool with one parameter and no output schema, the description provides the essential information. It could optionally mention that the variable must exist, but this is implied. Overall, 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?

Schema coverage is 100%, so baseline is 3. The description reinforces that the ID is numeric ('by its numeric ID'), but this is already implied by the integer type in the schema. No new semantic value added.

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 'Delete', the resource 'account-level variable', and the identifier 'by its numeric ID'. This is specific and distinguishes it from sibling tools like 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 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., delete_site_variable). There is no mention of prerequisites, conditions, 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.

datto_delete_site_proxyDelete site proxyB

Delete the proxy settings of a site.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteUidYesSite UID

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It does not disclose any behavioral traits like irreversibility, permission requirements, or side effects. Minimal insight beyond the action itself.

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, no redundancy. Front-loads action and resource efficiently. Could benefit from slight expansion for clarity but remains 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 tool with one parameter and no output schema, the description is adequate but minimal. Lacks context on implications of deletion, such as whether it affects running operations or requires specific permissions.

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 'siteUid' described as 'Site UID'. The description 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?

Description clearly states the action (Delete) and the resource (proxy settings of a site). It distinguishes from sibling tools like datto_set_site_proxy which sets proxy 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?

No guidance on when to use this tool versus alternatives such as datto_set_site_proxy or other delete tools. Lacks contextual cues for appropriate usage.

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

datto_delete_site_variableDelete site variableB

Delete a site variable by its numeric ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteUidYesSite UID
variableIdYesVariable ID

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states the delete action without disclosing potential side effects, permissions required, irreversibility, or whether the operation is destructive.

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 with no wasted words. It is concise but lacks structural elements like separators for purpose, parameters, or behavior.

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 delete operation with two required parameters and no output schema, the description is moderately complete. It does not mention return values, error conditions, or prerequisites (e.g., site existence).

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 with basic descriptions. The description adds the phrase 'numeric ID' for variableId, which reinforces the integer type, but adds minimal value beyond the schema. Baseline 3 due to 100% schema coverage.

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

Purpose5/5

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

The description clearly states the action ('Delete') and the resource ('site variable') with a specific identifier ('by its numeric ID'). This distinguishes it from sibling tools like create or update site variables.

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., datto_delete_account_variable). The description does not provide context for prerequisites or scenarios.

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

datto_get_accountGet accountA

Get the authenticated Datto RMM account's details (name, UID, currency, descriptors).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Description clearly indicates read-only behavior and specifies returned fields. Though no annotations exist, the description adequately discloses the operation's nature without 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 with no unnecessary words. Information is front-loaded and every part is valuable.

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 no output schema, the description lists the returned fields sufficiently. Could be slightly more detailed about the 'descriptors' field, but overall complete.

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 in schema, so description adds no param info, but baseline for 0 params is 4. The schema is fully documented by its emptiness.

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 gets the authenticated Datto RMM account details and lists specific fields (name, UID, currency, descriptors). Distinguishes from sibling get tools which target other resources.

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

Usage Guidelines4/5

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

While no explicit when/when-not guidance is given, the tool is self-explanatory for its simple read-only purpose, and no alternative tool exists for getting account details. 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.

datto_get_alertGet alertA

Get details of a single alert by its UID.

ParametersJSON Schema
NameRequiredDescriptionDefault
alertUidYesAlert UID

TDQS

A4.1/5.0
Behavior4/5

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

No annotations are provided, so the description fully bears the burden. It correctly implies a read-only operation without side effects, which is sufficient for a simple retrieval tool. No mention of permissions or response structure, but not critical.

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 an 11-word single sentence with no wasted 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 retrieval tool with one required parameter and no output schema, the description is fully complete. It tells the agent exactly what to do and how to identify the alert.

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 alertUid parameter described as 'Alert UID'. The description adds no further meaning beyond what the schema already provides, achieving 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 verb 'Get', the resource 'alert', and the identifier 'by its UID'. It effectively distinguishes from sibling tools like datto_resolve_alert and datto_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?

No explicit guidance on when to use this tool vs alternatives. While the purpose is clear, it does not mention that datto_list_alerts should be used first to obtain UIDs, or that datto_resolve_alert is for acting on alerts.

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

datto_get_audit_by_macGet device audit by MAC addressB

Get audit data of the device(s) matching a MAC address. Format: 12 hex characters, no separators.

ParametersJSON Schema
NameRequiredDescriptionDefault
macAddressYesMAC address, e.g. 001A2B3C4D5E

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided. Description does not explain what 'audit data' includes, whether it returns a single item or list, or any side effects. With no annotations, the description carries the full burden but only gives format.

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 plus format note; no wasted words. Could be slightly more structured but is 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, and description does not clarify return value structure, error handling, or pagination. For a simple tool, it omits expected output 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 coverage is 100% for the single parameter. Description adds format rule and example, reinforcing the schema's pattern. Adds minimal extra 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?

Clearly states the action ('Get audit data') and resource ('device(s) matching a MAC address'). Distinguishes from sibling tools like datto_get_device_audit and datto_get_device_by_mac by combining both 'audit' and 'by mac'.

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 datto_get_device_audit or datto_get_device_by_mac. Only provides format constraint, not context for selection.

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

datto_get_deviceGet deviceA

Get details of a device by its UID.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceUidYesDevice UID

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits. It only states the obvious read operation and adds no information about authentication, error handling, rate limits, or side effects. The description is minimal and does not add value beyond 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?

The description is a single sentence of 8 words, with no redundant information. 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 tool (one required parameter, no output schema), the description is sufficient to understand its purpose. It does not explain return format, but for a retrieval tool with high schema coverage, 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?

Since schema description coverage is 100% (the parameter 'deviceUid' already has a description), the description adds no new meaning. It repeats the parameter concept ('by its UID') which the schema already covers. 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'), the resource ('device'), and the key identifier ('by its UID'). It is specific and distinguishes from sibling tools like 'datto_get_device_by_id' and 'datto_get_device_by_mac' that use different identifiers.

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: when you have a device UID. However, it does not explicitly mention alternatives or when not to use it, but the context is clear enough for an AI agent given the sibling tool names.

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

datto_get_device_auditGet device auditA

Get the full audit data of a device (hardware, OS, network, disks, installed patches, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceUidYesDevice UID

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, description carries full burden. It indicates a read operation ('get') and specifies the data returned, but lacks details about side effects, rate limits, or authentication requirements. Adequate but not thorough.

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 wasted words. Directly conveys purpose and scope of data.

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 one parameter and no output schema, the description is sufficiently complete. It explains what the tool returns, meeting the needs for selection and invocation.

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

Parameters3/5

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

Schema coverage is 100% and defines the single parameter. Description does not add further meaning to the parameter beyond what the schema provides (Device UID). Baseline of 3 applies.

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

Purpose5/5

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

Description clearly states the verb 'get' and resource 'audit data of a device', and lists specific categories (hardware, OS, network, disks, installed patches). This effectively distinguishes it from sibling tools that retrieve other device-related data.

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. Does not provide context for when to use datto_get_device_audit vs. datto_get_device or other audit tools.

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

datto_get_device_by_idGet device by IDA

Get details of a device by its numeric device ID (as opposed to its UID).

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesNumeric device ID

TDQS

A3.6/5.0
Behavior2/5

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

No annotations, and description omits behavioral context like read-only nature, response details, or any prerequisites. Only identifier clarification provided. Falls short for a get 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?

Extremely concise, single sentence clearly states purpose and key distinction. 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?

For a straightforward get tool with one parameter and no output schema, the description is adequate. It clarifies the identifier type. Could mention error behavior, but not strictly 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 already describes the parameter fully. Description adds slight clarification about UID distinction, but no additional constraints or format details. 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?

Clearly states the action (get details) and distinguishes the identifier type (numeric device ID vs UID), setting it apart from sibling tools like datto_get_device_by_mac.

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 when numeric device ID is available, but lacks explicit guidance on when to choose this over datto_get_device or datto_get_device_by_mac. No when-not or alternative mentions.

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

datto_get_device_by_macGet device by MAC addressB

Get the device(s) matching a MAC address. Format: 12 hex characters, no separators (XXXXXXXXXXXX).

ParametersJSON Schema
NameRequiredDescriptionDefault
macAddressYesMAC address, e.g. 001A2B3C4D5E

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only mentions the format requirement and that it returns device(s), but fails to disclose behavior like what happens on no match, multiplicity handling, or any 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 extremely concise with two short sentences. It front-loads the purpose and then provides the format. 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 with one parameter and no output schema. The description covers the basic purpose and format but lacks information about return values, error cases, and behavior when multiple devices match. Adequate but with 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% with the parameter fully described (pattern, example). The description repeats the format requirement redundantly but adds a slight clarification. Baseline 3 is appropriate as the description adds minimal 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 action ('Get') and the resource ('device(s) matching a MAC address'), and it distinguishes from sibling tools like 'datto_get_device' and 'datto_get_device_by_id' by specifying the unique lookup criteria.

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 such as 'datto_get_device' or 'datto_get_device_by_id'. It only implies usage when a MAC address is available, but no explicit when-not or comparison is given.

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

datto_get_device_softwareGet device software auditC

List the audited software installed on a device.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoResults per page (max 250)
pageNoPage number, starting at 0
deviceUidYesDevice UID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It does not mention that the tool returns a paginated list, requires a deviceUid, or that 'audited software' implies a specific scope. Key aspects like pagination behavior are omitted.

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 communicates the core function. It is front-loaded and efficient, though it could include slightly more detail without becoming verbose.

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 three parameters (including pagination) and no output schema, the description is insufficiently complete. It does not explain the output format, pagination behavior, or what constitutes 'audited software', making it harder for the agent to use 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?

All three parameters have descriptions in the schema (100% coverage). The description adds no additional meaning beyond what is already in 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 uses a specific verb ('List') and resource ('audited software installed on a device'), clearly indicating the tool's purpose. It differentiates from sibling tools like datto_get_device_audit by focusing specifically on software, though it does not explicitly distinguish itself.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as datto_get_device or datto_get_device_audit. The description lacks context about prerequisites or typical use cases, leaving the agent to infer from the name and parameters.

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

datto_get_esxi_auditGet ESXi host auditC

Get the audit data of an ESXi host device.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceUidYesESXi host device UID

TDQS

C2.9/5.0
Behavior2/5

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

The description lacks any disclosure of behavioral traits such as read-only nature, required permissions, or side effects. Without annotations, the description fails to convey important operational 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 without redundant information. It is 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.

Completeness2/5

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

Given no output schema and a need to differentiate from many sibling audit tools, the description lacks details on what 'audit data' comprises, how it differs from other audits, or any formatting or limitations.

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 and the description does not add extra semantic value beyond the parameter's own description. The baseline 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 ('Get') and the specific resource ('audit data of an ESXi host device'), distinguishing it from sibling tools targeting other resources like printers or general 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 is provided on when to use this tool versus similar siblings (e.g., datto_get_device_audit), nor any prerequisites 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.

datto_get_jobGet jobA

Get the status and details of a job by its UID.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobUidYesJob UID

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description must carry full behavioral disclosure, but it only states the action ('Get') without mentioning read-only behavior, error handling (e.g., job not found), permissions, or idempotency.

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, lean sentence that efficiently conveys the tool's 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?

For a simple retrieval tool with one well-documented parameter, the description is nearly complete. It could optionally mention the return format, but the absence does not severely hinder usability.

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 (jobUid described as 'Job UID'), so the description adds no extra 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 ('Get') and resource ('job'), and specifies the key identifier ('by its UID'), which distinguishes it from sibling tools like datto_get_job_components or datto_get_job_results that focus on sub-aspects of a job.

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 job UID and need status/details, but it does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives among the many sibling get tools.

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

datto_get_job_componentsGet job componentsB

List the components of a job.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobUidYesJob UID

TDQS

B3.1/5.0
Behavior3/5

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

The description implies a read-only operation ('list'), which is consistent with the tool's name. However, with no annotations, it does not disclose any side effects, rate limits, or access requirements. The behavior is basic but not fully transparent.

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—only 6 words—and front-loads the key action and resource. While it could benefit from a bit more detail, it avoids any unnecessary 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 and minimal description, the agent has no information about what the 'components' are (e.g., their structure, type, or relation to jobs). This is incomplete for a tool with a single parameter and no 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?

The input schema has 100% description coverage for the single parameter 'jobUid', which the schema describes as 'Job UID'. The tool description adds no additional meaning beyond this.

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 the resource ('components of a job'). It is specific enough to distinguish from sibling tools like 'datto_get_job' (returns job details) and 'datto_list_components' (likely lists all components globally), but it could explicitly note the job-specific 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 alternatives like 'datto_list_components' or 'datto_get_job_results'. The description does not indicate prerequisites or typical use cases.

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

datto_get_job_resultsGet job results for a deviceB

Get the results of a job on a specific device.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobUidYesJob UID
deviceUidYesDevice UID

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states 'get the results,' which implies a read operation, but it does not specify any constraints like pagination, data volume, or side effects. The description adds no behavioral context beyond the implicit read-only nature.

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 succinct sentence with no wasted words. It is appropriately sized for a simple getter, though it could include a bit more detail without sacrificing conciseness. Front-loaded with the 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?

For a tool with 2 simple parameters and no output schema, the description is minimally complete. However, it lacks context on what 'results' entails (e.g., format, whether it includes full output or status codes). Given the simplicity, it is adequate but could be better.

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 jobUid and deviceUid have descriptions). The description adds no extra meaning beyond the schema's 'Job UID' and 'Device UID.' Baseline score of 3 is appropriate as per guidelines since schema already documents the parameters sufficiently. 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 'Get the results of a job on a specific device.' It uses a specific verb ('Get') and resource ('results of a job') and distinguishes from sibling tools like datto_get_job (job metadata) and datto_get_job_stdout (specific output). Purpose is 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 (e.g., datto_get_job, datto_get_job_stdout). Does not mention any prerequisites or context. Minimal information leaves the agent to infer usage without support.

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

datto_get_job_stderrGet job stderrB

Get the standard error output of a job's run on a specific device.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobUidYesJob UID
deviceUidYesDevice UID

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It discloses a read operation ('Get') but omits any behavioral traits such as authentication needs, rate limits, data format, 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 extraneous words. Every word adds value, making it 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 simple 2-parameter tool with no output schema, the description minimally covers the purpose. However, it lacks details on return format, error handling, or performance, leaving gaps in completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already documented. The description adds no additional meaning beyond the schema, earning the baseline score.

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

Purpose4/5

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

The description clearly states the tool retrieves 'standard error output' for a job run, using a specific verb and resource. It implicitly distinguishes from siblings like datto_get_job_stdout and datto_get_job_results, but does not explicitly contrast them.

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. The description does not mention prerequisites, context, or exclusions, leaving the agent to infer usage from the name alone.

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

datto_get_job_stdoutGet job stdoutB

Get the standard output of a job's run on a specific device.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobUidYesJob UID
deviceUidYesDevice UID

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for disclosing behavioral traits. It only states the basic action without mentioning any side effects, output format, size limits, or authentication requirements. This is insufficient for an unannotated tool.

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

Conciseness4/5

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

The description is a single sentence with no wasted words. It is efficient, though somewhat terse. It could be slightly expanded 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?

Given the tool's simplicity (2 parameters, no output schema, no annotations), the description is minimally adequate. It states the tool retrieves stdout for a job run on a device, but does not mention return format or error conditions. More context would be helpful.

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 fully documents both parameters with simple descriptions ('Job UID', 'Device UID'). The description adds no additional meaning or context beyond what is already in 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 uses the specific verb 'Get' and explicitly names the resource 'standard output of a job's run on a specific device'. This clearly distinguishes it from siblings like `datto_get_job_stderr` which gets stderr instead.

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 retrieving stdout, but provides no guidance on when to use this tool versus alternatives such as `datto_get_job_results` or `datto_get_job_components`. No exclusions or context are given for 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.

datto_get_printer_auditGet printer auditB

Get the audit data of a printer device.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceUidYesPrinter device UID

TDQS

B3.1/5.0
Behavior2/5

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

The description only states the function of the tool without disclosing behavioral traits. Since no annotations are provided, the description should cover aspects like read-only nature, authentication requirements, or potential side effects, but it does not.

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 superfluous information. It is front-loaded and 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?

For a simple tool with one parameter and no output schema, the description provides the basic function. However, it lacks details about the return structure or what the audit data contains, which would be helpful for an agent invoking it.

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 'deviceUid' with a description 'Printer device UID'. The tool description does not add any additional meaning or usage hints beyond what the schema already provides. Baseline for 100% coverage is 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 action 'Get' and the resource 'audit data of a printer device'. It distinguishes from sibling tools like 'datto_get_audit_by_mac' and other get tools by specifying the resource type. However, it could be more specific about what audit data includes.

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 'datto_get_audit_by_mac' or 'datto_get_device_audit'. There are no indications 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.

datto_get_siteGet siteA

Get details of a site (including device counts) by its UID.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteUidYesSite UID

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool returns site details including device counts, but does not mention whether it is a read-only operation, idempotent, or what happens if the UID is invalid. This is insufficient for a tool with no annotation backup.

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 superfluous information. It is front-loaded with the purpose and includes a useful detail about device counts.

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 simple get operation with one parameter and no output schema, the description is fairly complete: it states the resource, input, and a key return value (device counts). It could hint at other typical details returned, but for a straightforward lookup 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?

The schema coverage is 100% (parameter 'siteUid' has a description 'Site UID'). The description adds 'by its UID', which reinforces the parameter but does not add new meaning beyond the schema. Baseline 3 is appropriate given high schema coverage.

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

Purpose5/5

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

The description clearly states the action ('get details of a site') and the resource ('site by its UID'), including a specific piece of information returned ('device counts'). This distinguishes it from sibling tools like 'datto_list_sites' (lists all sites) and 'datto_get_site_settings' (gets settings only).

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 details of a specific site, but it does not explicitly state when to use this tool over alternatives such as 'datto_list_sites' or 'datto_get_site_settings'. 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.

datto_get_site_settingsGet site settingsB

Get the settings of a site (proxy, privacy mode, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
siteUidYesSite UID

TDQS

B3.4/5.0
Behavior3/5

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

The description implies a read-only operation ('Get'), but without annotations, it doesn't explicitly state it's non-destructive or require specific permissions. It adds some context about the settings returned (proxy, privacy mode).

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 illustrative examples, no wasted words, and the key 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 simple tool with one required parameter and no output schema, the description adequately explains the tool's purpose and scope of returned settings. It could mention that the operation is read-only (implicit in 'Get').

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 (siteUid) is fully described in the schema (100% coverage), and the description adds no additional meaning 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.

Purpose4/5

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

The description clearly states it gets site settings (proxy, privacy mode, etc.), distinguishing it from sibling tools that get entire sites (datto_get_site) or other entities. However, it could more explicitly differentiate from similar 'get' 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 like datto_get_site, or any prerequisites for the siteUid. The agent lacks context to decide between this and other retrieval tools.

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

datto_get_system_infoGet system infoA

Get platform system information: 'status' (version, uptime), 'pagination' (page size limits), or 'request_rate' (current API rate-limit usage for this account).

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoWhich system resource to fetchstatus

TDQS

A4.1/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It fails to mention that this is a read-only operation with no side effects, required permissions, or rate limits. It only describes the output content vaguely, leaving the agent guessing about safety and impact.

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-loads the purpose and uses a concise list structure with quotes for clarity. 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.

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 and lack of output schema, the description adequately hints at return values (version, uptime, page size limits, rate-limit usage). It could optionally mention the output format (e.g., JSON), but not strictly required. Slightly incomplete for a tool with no output schema, hence a 4.

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

Parameters5/5

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

Schema describes the single parameter 'type' with enum values. The description adds significant meaning by detailing what each enum value returns: 'status' gives version/uptime, 'pagination' gives page size limits, 'request_rate' gives API rate-limit usage. This goes well beyond the schema's generic 'which system resource to fetch'.

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 'Get platform system information' and lists three distinct types ('status', 'pagination', 'request_rate') with brief explanations. The tool name and description uniquely identify it among many sibling tools focused on specific CRUD operations.

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 implicitly defines usage by being the only tool for system info. No explicit when/not-to or alternatives are needed as there are no competing siblings. However, it lacks explicit guidance on prerequisites or context, hence not a 5.

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

datto_list_account_variablesList account variablesB

List the account-level variables (usable in components and policies).

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoResults per page (max 250)
pageNoPage number, starting at 0

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavior. It only says 'list' but does not mention pagination, authentication requirements, rate limits, or that it is a read-only operation.

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 the key action and resource front-loaded. It could be slightly more informative without being verbose.

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

Completeness3/5

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

For a simple list tool with pagination parameters, the description is minimal. It does not mention return format, pagination behavior, or any edge cases, which would be helpful.

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.

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 'account-level variables', and adds context 'usable in components and policies', which distinguishes it from site-level variable 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 implies usage for account-level variables but does not explicitly state when to use this tool versus alternatives like datto_list_site_variables. 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.

datto_list_activity_logsList activity logsA

Search the account's activity logs (audit trail of user and system actions). Defaults to the last 24 hours unless 'from' is set. Use searchAfter from the previous response page for cursor-based pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
fromNoUTC start date, format yyyy-MM-ddTHH:mm:ssZ
sizeNoNumber of records to return
orderNoOrder by creation date
untilNoUTC end date, format yyyy-MM-ddTHH:mm:ssZ
actionsNoFilter by action (e.g. create, update, delete)
siteIdsNoFilter by site IDs
userIdsNoFilter by user IDs
entitiesNoFilter by entity type (e.g. device, site, user)
categoriesNoFilter by category
searchAfterNoCursor from the previous page's response for pagination
searchQueryNoFree-text query; supports phrases, wildcards, and boolean operators

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description mentions it's an audit trail and covers pagination, but lacks details on side effects, authentication needs, or output structure. Adequate but not thorough.

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, and no extraneous information. 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 list tool with 11 parameters and no output schema, the description covers key usage aspects (time defaults, pagination) but could be more complete with response format hints.

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 description adds value by explaining default behavior for 'from' and pagination mechanism for 'searchAfter', enhancing understanding beyond 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 tool searches the account's activity logs (audit trail), which is a specific and distinct resource among siblings like datto_list_alerts or datto_list_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?

Provides useful guidance on default time range (last 24 hours unless 'from' is set) and pagination using searchAfter, but does not explicitly contrast with sibling tools or 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.

datto_list_alertsList alertsA

List open or resolved alerts. Scope to the whole account (default), a single site (siteUid), or a single device (deviceUid).

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoResults per page (max 250)
pageNoPage number, starting at 0
mutedNoFilter by muted state (account scope only)
statusNoAlert status to listopen
siteUidNoLimit to a site (UID)
deviceUidNoLimit to a device (UID); takes precedence over siteUid

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses that deviceUid takes precedence over siteUid and that the default is whole account. However, it omits mention of read-only behavior and default status (open from schema), which could be more 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 sentences, no redundant words. Efficiently conveys the tool's action and key scoping options.

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 (6 optional params, no output schema), the description covers the primary purpose and scoping behavior. Pagination details are in the schema, so the description is sufficiently complete.

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, but the description adds context beyond the schema by explaining scoping semantics (deviceUid precedence, default scope). This helps the agent understand how parameters interact.

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 open or resolved alerts with explicit scoping options (account, site, device). It distinguishes from siblings like datto_get_alert (single alert) and datto_resolve_alert (resolve operation).

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 scope to a site or device versus the whole account, implying usage contexts. It does not explicitly list when not to use or provide alternatives, but it 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.

datto_list_componentsList componentsA

List the account's components (scripts/automation components). Use a component's UID with datto_run_quickjob.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoResults per page (max 250)
pageNoPage number, starting at 0

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It indicates a read operation ('list') but does not disclose additional behavioral traits such as authentication requirements, rate limits, or pagination details. The schema shows pagination parameters, but the description does not elaborate on the 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?

The description is extremely concise with two sentences. The first sentence states the purpose, and the second provides a usage reference. No extraneous information is present, making it 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 that there is no output schema, the description could have elaborated on the return structure or content. It only mentions listing components but does not specify what fields are returned (e.g., UID, name). While the input schema is complete, the output is left unspecified, which may cause ambiguity for the 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 description coverage is 100%, with both parameters having clear schema descriptions (max and page). The tool description adds no further meaning beyond what the schema already provides. Baseline 3 is appropriate given the high schema coverage.

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

Purpose5/5

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

The description clearly states it lists the account's components (scripts/automation components), using the verb 'list' and specifying the resource. It also distinguishes itself from siblings by being specifically for components and hints at a common follow-up action with datto_run_quickjob.

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 guidance by mentioning that a component's UID can be used with datto_run_quickjob, implying a typical workflow. However, it does not explicitly state when to use this tool versus other list tools (e.g., datto_list_filters) 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.

datto_list_devicesList devicesA

List all devices in the account, with optional filters. Filter text params use SQL LIKE matching (use * as wildcard). Paginated; check pageDetails in the response for more pages.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoResults per page (max 250)
pageNoPage number, starting at 0
filterIdNoDevice filter ID (from datto_list_filters); if set, it exclusively determines results
hostnameNoFilter by hostname (LIKE match)
siteNameNoFilter by site name (LIKE match)
deviceTypeNoFilter by device type, e.g. Desktop, Laptop, Server (LIKE match)
operatingSystemNoFilter by operating system (LIKE match)

TDQS

A4.4/5.0
Behavior4/5

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

Discloses pagination behavior and SQL LIKE matching with wildcard syntax. No annotations, so description carries full burden; it covers read-only nature implicitly.

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, front-loaded with purpose, then filter details, then pagination. No 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?

Covers essential context: pagination and filter behavior. No output schema, but hints at pageDetails. Could mention response includes device list explicitly.

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 all params (100%), description adds value by explaining wildcard usage in LIKE matching and pagination response details.

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 all devices in the account' with optional filters, distinct from sibling tools like datto_get_device or datto_list_site_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?

Implied usage for account-wide listing with optional filters, but no explicit guidance on when to use vs. alternatives like datto_list_site_devices.

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

datto_list_dnet_site_mappingsList Datto Networking site mappingsB

List sites with their mapped Datto Networking (DNET) network IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoResults per page (max 250)
pageNoPage number, starting at 0

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It does not disclose read-only nature, permission requirements, potential latency, or any side effects. The description is too minimal to inform an agent about behavioral traits.

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

Conciseness4/5

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

The description is a single efficient sentence that conveys the core purpose without wasted words. It could be slightly more informative without harming conciseness, but it is well-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's simplicity and lack of output schema, the description is adequate for basic understanding but lacks details on pagination behavior or output format. It does not fully inform an agent 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 clear descriptions for both parameters (max, page). The tool description adds no extra meaning beyond the schema, so 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') and the specific resource ('sites with their mapped Datto Networking (DNET) network IDs'), distinguishing it from sibling tools like datto_list_sites which list all sites without network mapping context.

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., datto_list_sites). The description does not specify prerequisites, when not to use, or any context that would help an agent decide between related tools.

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

datto_list_filtersList device filtersA

List device filters. 'default' returns the built-in filters; 'custom' returns filters created in the account (requires administrator role). Filter IDs can be used with datto_list_devices and datto_list_site_devices.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoResults per page (max 250)
pageNoPage number, starting at 0
typeNoWhich set of filters to listdefault

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description must cover behavior. It discloses the admin role requirement for custom filters and that IDs can be reused. However, it lacks details on response format, pagination behavior, or potential errors. The description is adequate but not rich.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the main action, and contains no extraneous information. 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 simple tool (3 params, no output schema), the description covers purpose, parameters, and downstream usage. It does not mention pagination behavior, but the schema already documents max/page. It adequately equips an agent to use the 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 description coverage is 100% (all parameters documented in schema). The tool description adds value beyond the schema by explicitly tying the custom parameter to administrator role requirement, which is not in the schema. This provides useful context for parameter selection.

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 device filters, distinguishing between default and custom filters. It also explains how filter IDs can be used with sibling tools datto_list_devices and datto_list_site_devices, providing concrete purpose and context.

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 tells when to use default vs custom and notes the admin role requirement. It also describes downstream usage of filter IDs. However, it does not explicitly exclude any alternatives or provide 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.

datto_list_site_devicesList site devicesB

List the devices of a site.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoResults per page (max 250)
pageNoPage number, starting at 0
siteUidYesSite UID
filterIdNoDevice filter ID (from datto_list_filters)

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It only states the action without disclosing pagination, return format, 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.

Conciseness5/5

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

Single sentence, no unnecessary words. Efficient and to the point.

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 4 parameters and no output schema, the description omits pagination and filtering details. Incomplete for effective 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%, so the schema already documents all parameters. The description adds no additional semantics beyond what is 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 'List the devices of a site' uses a specific verb and resource, clearly distinguishing it from sibling tools like list_all_devices or get_device.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like datto_list_devices or datto_get_device. Lacks context on expected scenarios.

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

datto_list_site_filtersList site device filtersB

List the device filters visible for a site.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoResults per page (max 250)
pageNoPage number, starting at 0
siteUidYesSite UID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are present, so the description carries full burden. It only states the action without disclosing behavioral traits such as read-only nature, pagination, error handling, 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.

Conciseness4/5

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

The description is a single sentence with no unnecessary words. It is appropriately sized but could be slightly more informative while remaining 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 no output schema and three parameters, the description is incomplete. It does not mention return format, pagination behavior, or error cases, leaving gaps for an AI agent to infer correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter already has a description. The tool description does not add any additional meaning beyond the schema, meeting the baseline for high coverage 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 verb 'List' and the resource 'device filters visible for a site', which distinguishes it from sibling tools like datto_list_filters (broader scope) and datto_list_site_devices (lists devices, not filters).

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 are there any exclusions or prerequisites mentioned. The description simply states what it does without context.

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

datto_list_site_network_interfacesList site device network interfacesA

List shortened device records with network interface information (IP/MAC) for a site.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoResults per page (max 250)
pageNoPage number, starting at 0
siteUidYesSite UID

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It mentions 'shortened' device records, indicating it is not a full device list, and specifies IP/MAC information. However, it does not disclose whether the tool is read-only, auth requirements, or potential limitations beyond those in the schema (e.g., max 250 per page, which is in the schema but not in the description).

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 efficient and front-loads the key information: list device records with network interface info for a site. It contains 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 the tool's simplicity and no output schema, the description adequately explains what the tool returns (list of device records with IP/MAC) and notes 'shortened' records. Pagination is covered by schema parameters. A more complete description could mention that results are paginated, but this is already inferred from the `max` and `page` 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 the baseline is 3. The description does not add significant meaning beyond the schema; it simply says 'for a site', which aligns with the `siteUid` parameter. No additional context for `max` or `page` parameters is provided.

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 that the tool lists shortened device records with network interface information (IP/MAC) for a site. It distinguishes from sibling tools like `datto_list_site_devices` which likely list full device records, 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 when needing device records with network interface info for a site, but provides no explicit guidance on when to use this tool versus alternatives like `datto_list_site_devices` or `datto_list_devices`. No exclusions are mentioned.

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

datto_list_sitesList sitesA

List all sites in the account. Optionally filter by site name (LIKE match).

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoResults per page (max 250)
pageNoPage number, starting at 0
siteNameNoFilter by site name (LIKE match)

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses core behavior but omits details like pagination, data order, or limits, relying on schema for pagination 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 concise sentences with no wasted words, efficiently conveying 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?

The description is adequate but lacks mention of return format (e.g., array of site objects) since no output schema is provided. It covers essential behavior but could be more complete.

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. The description adds value by clarifying that siteName uses a LIKE match, enhancing parameter 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 lists all sites and provides an optional filter, distinguishing it from siblings like datto_get_site.

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 listing all or filtered sites but does not explicitly state when not to use or mention alternatives like datto_get_site for a single site.

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

datto_list_site_variablesList site variablesC

List the variables of a site.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoResults per page (max 250)
pageNoPage number, starting at 0
siteUidYesSite UID

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states the basic action. It does not disclose pagination behavior (max/page parameters) or any side effects, rate limits, or ordering. The schema hints at pagination, but the description adds no transparency.

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 a single short sentence, which is concise but under-specified. It is front-loaded but does not earn its place because it omits essential behavioral and usage details. It balances brevity and completeness poorly.

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 and low complexity, the description still fails to indicate return format, pagination details, or error handling. For a list tool, it should at least mention that it returns an array of variable objects. The description is insufficiently 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 baseline is 3. The description adds no additional meaning to the parameters (max, page, siteUid) beyond what the schema already provides. No clarifications on how to combine parameters or typical usage patterns.

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 'variables of a site', matching the name. However, it does not distinguish from sibling list tools like datto_list_account_variables or datto_list_site_devices, leaving differentiation to the tool name alone.

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., datto_get_site or datto_list_site_devices), nor any conditions or prerequisites. The description lacks any contextual or conditional advice.

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

datto_list_usersList usersB

List the authentication users of the account.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoResults per page (max 250)
pageNoPage number, starting at 0

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It implies a read-only operation by using 'list', but does not disclose pagination behavior or any other behavioral traits beyond what the schema infers. Adequate but not thorough.

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 extraneous 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.

Completeness2/5

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

The tool is simple but lacks an output schema, so the description should provide context about the return format or what 'authentication users' means. The minimal description leaves the agent guessing about the 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?

Schema coverage is 100% (both 'max' and 'page' have descriptions). The description adds no additional parameter semantics 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 the verb 'list' and the resource 'authentication users of the account'. It is specific and distinguishes it from sibling tools like list_devices or list_sites.

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 context about prerequisites or when not to use it. Given the many sibling list tools, this is a gap.

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

datto_move_deviceMove device to siteB

Move a device from its current site to another site.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteUidYesDestination site UID
deviceUidYesDevice UID

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states the move action but fails to mention whether it destroys data, requires special permissions, is reversible, or any side effects on device configuration.

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 core functionality with no unnecessary words, achieving high 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?

The tool is an action with no output schema; the description should explain expected outcomes or side effects. It lacks completeness—e.g., whether the move is immediate, what happens to device data, or how to verify success.

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 are described), so the baseline is 3. The description adds no additional semantic 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?

The description clearly states the action ('Move') and the resource ('device') along with the destination ('another site'), making the tool's purpose unambiguous and distinguishing it from sibling tools which are create/delete/get/list/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 is provided on when to use this tool vs alternatives (e.g., when a device is already at the target site, or prerequisites like ensuring site exists). The description offers no context about appropriate usage conditions.

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

datto_resolve_alertResolve alertB

Resolve (close) an alert by its UID.

ParametersJSON Schema
NameRequiredDescriptionDefault
alertUidYesAlert UID

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. 'Resolve (close)' implies a state change, but no details are given about permissions required, 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.

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. While efficient, it could benefit from slightly more detail given the lack of annotations.

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 one param and no output schema, the description is adequate in purpose but incomplete in behavioral context, which is more important without 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 schema already describes alertUid as 'Alert UID'. The description adds no extra meaning beyond what the schema provides, earning 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 'Resolve (close) an alert by its UID.' clearly states the action (resolve/close) and the resource (alert) with its identifier. It effectively distinguishes from siblings like datto_get_alert (retrieve) and datto_list_alerts (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 is provided on when to use this tool versus alternatives (e.g., when to close vs. retrieve an alert). There is no mention of prerequisites or context.

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

datto_run_quickjobRun quick jobA

Run a component as a quick job on a device. Find component UIDs with datto_list_components. Returns the created job; poll it with datto_get_job and fetch output with datto_get_job_stdout.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobNameYesName for the job
deviceUidYesDevice UID
variablesNoInput variables to pass to the component
componentUidYesUID of the component to run (from datto_list_components)

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description must fully disclose behavior. It reveals that the tool returns a created job for polling, implying an asynchronous workflow. However, it does not mention permissions, destructiveness, or rate limits. The behavioral context is adequate but not thorough.

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: one for purpose and one for pre/post steps. No filler, 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?

The description covers the full workflow: how to prepare (list components), execute (run quick job), and follow up (poll and fetch output). It does not elaborate on error handling or optional parameters like variables, but the schema covers those. For a simple action tool, this is complete enough.

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

Parameters3/5

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

The input schema has 100% description coverage for all four parameters. The tool description adds no additional parameter semantics beyond referencing componentUid as coming from datto_list_components, 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 the tool runs a component as a quick job on a device. It distinguishes from sibling tools by explicitly mentioning related tools for obtaining component UIDs and polling job 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?

The description provides clear context on when to use the tool (running a component as a quick job) and gives sequential steps: find component UIDs with a specific sibling tool, then poll results with other sibling tools. It does not explicitly state when not to use it, but the guidance is sufficient.

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

datto_set_device_udfSet device UDFsA

Set user-defined fields (UDFs) on a device. Provide only the fields to change, keyed udf1 through udf30.

ParametersJSON Schema
NameRequiredDescriptionDefault
udfsYesUDF values keyed by field name, e.g. {"udf1": "value", "udf5": "other"}
deviceUidYesDevice UID

TDQS

A3.9/5.0
Behavior2/5

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

The description indicates the tool mutates device UDFs but does not disclose any potential side effects, permissions required, idempotency, or error conditions. With no annotations provided, the description carries the full burden, and it falls short by omitting important behavioral traits.

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

Conciseness5/5

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

The description is very concise, consisting of two sentences with no unnecessary words. The key information is front-loaded, making it easy for an agent to quickly understand the tool's purpose and usage.

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's simplicity and the presence of sibling tools, the description provides adequate context for selection. However, it does not mention the return value or error handling, which would be beneficial for a mutation tool. The lack of output schema further necessitates some description of what to expect after invocation.

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

Parameters4/5

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

Although the input schema already documents the two parameters with 100% coverage, the description adds critical context by specifying the allowed keys as 'udf1 through udf30' for the 'udfs' object. This constrains the permissive additional properties schema, adding significant 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 action 'Set' and the resource 'user-defined fields on a device', providing a specific verb and resource. It also distinguishes from siblings by specifying the scope (UDFs) and hinting at partial updates ('Provide only the fields to change').

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 guidance by stating 'Provide only the fields to change', which suggests partial updates. However, it does not explicitly state when to use or when not to use this tool compared to alternatives, such as the sibling 'datto_set_device_warranty'.

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

datto_set_device_warrantySet device warrantyC

Set the warranty expiration date of a device.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceUidYesDevice UID
warrantyDateYesWarranty expiration date (YYYY-MM-DD)

TDQS

C2.9/5.0
Behavior2/5

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

The description only notes 'Set' implying a write operation, but lacks details on behavioral traits such as idempotency, permissions, rate limits, or side effects. With no annotations, the description does little to inform the agent about potential impacts.

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 short sentence with no extraneous information. It is concise, though it could benefit from additional context without losing conciseness. Still, it effectively communicates 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 tool is a mutation (set operation) with no output schema and no annotations, the description should provide more context about expected behavior, such as whether the date overwrites or appends, error conditions, or response. It is insufficiently 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 schema description coverage is 100%, so the schema already documents both parameters. The description adds no additional meaning beyond the schema (e.g., no explanation of valid date ranges or effect on existing warranties). 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 action (set) and the resource (warranty expiration date of a device). It distinguishes from sibling tools like datto_set_device_udf, which handles other device attributes. However, it doesn't explicitly contrast with similar set 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 is provided on when to use this tool versus alternatives. For example, it doesn't mention that datto_set_device_udf could be used for other device settings, or any prerequisites or conditions.

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

datto_set_site_proxySet site proxyB

Create or update the proxy settings for a site.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYesProxy host
portYesProxy port
typeYesProxy type
siteUidYesSite UID
passwordNoProxy password
usernameNoProxy username

TDQS

B3.2/5.0
Behavior2/5

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

Without annotations, the description is the sole source of behavioral context. It states 'Create or update' but does not disclose whether the operation is idempotent, what happens if the site does not exist, or how existing settings are merged. Essential behavioral traits are missing.

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 short and to the point, but could benefit from slightly 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 tool has 6 parameters, no output schema, and no annotations, the description is barely adequate. It confirms the action but omits key context like return value, error handling, or effect on existing settings. It is sufficient for a simple tool but lacks depth.

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 each parameter already has a basic description. The tool description adds no extra meaning beyond what the schema provides, such as relationships between parameters (e.g., username/password are optional). 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 or update') and the resource ('proxy settings for a site'), which distinguishes it from sibling tools like datto_delete_site_proxy and datto_get_site_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 versus alternatives, no prerequisites, and no exclusions. It does not mention required site existence or scenarios where other tools (like datto_update_site) might be preferable.

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

datto_update_account_variableUpdate account variableB

Update an existing account-level variable by its numeric ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew variable name
valueNoNew variable value
maskedNoMask (hide) the value in the UI
variableIdYesVariable ID

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided. Description only states 'Update' without disclosing side effects, permissions, error handling, or behavior for non-existent IDs.

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, under 20 words, front-loaded. 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?

No output schema, no annotations. Description lacks details on return values, error conditions, or permissions for mutation 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%, baseline at 3. Description only adds that update is 'by numeric ID', which is already clear from required variableId.

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 verb 'Update' and resource 'existing account-level variable by its numeric ID'. Differentiates from sibling tools like create, delete, and 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?

No explicit when-to-use or when-not-to-use guidance, but context with sibling tools implies usage. Lacks prerequisites or alternative recommendations.

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

datto_update_siteUpdate siteB

Update an existing site's name, description, or notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSite name (required by the API even when unchanged)
notesNoSite notes
siteUidYesSite UID
descriptionNoSite description

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits like partial vs. full update, effects of missing siteUid, and any required permissions. The description only states what fields can be updated without describing behavior 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?

The description is a single efficient sentence that front-loads the key action and object. No extraneous words or redundant information.

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 4-parameter update tool with no output schema and no annotations, the description is too minimal. It omits important context such as the required nature of 'name' for unchanged use, return value, and error 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 the schema already describes each parameter. The description merely echoes the field names without adding new meaning or clarifying nuances (e.g., 'name' is required even when unchanged).

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 ('update') and resource ('existing site') and lists the modifiable fields (name, description, notes). This clearly distinguishes it from sibling tools like datto_create_site (create new) and datto_get_site (read).

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 update vs. create or delete). No prerequisites or exclusions are mentioned, leaving the agent to infer 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.

datto_update_site_variableUpdate site variableB

Update an existing site variable by its numeric ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew variable name
valueNoNew variable value
maskedNoMask (hide) the value in the UI
siteUidYesSite UID
variableIdYesVariable ID

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, and the description only says 'update.' It does not disclose side effects, authorization needs, or behavior when the variable does not exist. For a mutation tool, 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.

Conciseness5/5

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

Single sentence, no wasted words. Front-loaded with the key action and identifier.

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?

Minimally adequate: conveys the core action but lacks context on prerequisites, parameter roles (though schema covers them), and return behavior. No output schema needed, but more context 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 baseline is 3. The description adds no parameter-specific guidance 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 an existing site variable by its numeric ID,' specifying the verb 'Update' and the resource 'site variable.' This distinguishes it from sibling tools like create, list, and delete.

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, delete). The description does not 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.

Tool Schema Changelog

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

  1. 46 tool updatesv1.0.0
    • First observeddatto_create_account_variable
    • First observeddatto_create_site
    • First observeddatto_create_site_variable
    • First observeddatto_delete_account_variable
    • First observeddatto_delete_site_proxy
    • First observeddatto_delete_site_variable
    • First observeddatto_get_account
    • First observeddatto_get_alert
    • First observeddatto_get_audit_by_mac
    • First observeddatto_get_device
    • First observeddatto_get_device_audit
    • First observeddatto_get_device_by_id
    • First observeddatto_get_device_by_mac
    • First observeddatto_get_device_software
    • First observeddatto_get_esxi_audit
    • First observeddatto_get_job
    • First observeddatto_get_job_components
    • First observeddatto_get_job_results
    • First observeddatto_get_job_stderr
    • First observeddatto_get_job_stdout
    • First observeddatto_get_printer_audit
    • First observeddatto_get_site
    • First observeddatto_get_site_settings
    • First observeddatto_get_system_info
    • First observeddatto_list_account_variables
    • First observeddatto_list_activity_logs
    • First observeddatto_list_alerts
    • First observeddatto_list_components
    • First observeddatto_list_devices
    • First observeddatto_list_dnet_site_mappings
    • First observeddatto_list_filters
    • First observeddatto_list_site_devices
    • First observeddatto_list_site_filters
    • First observeddatto_list_site_network_interfaces
    • First observeddatto_list_site_variables
    • First observeddatto_list_sites
    • First observeddatto_list_users
    • First observeddatto_move_device
    • First observeddatto_resolve_alert
    • First observeddatto_run_quickjob
    • First observeddatto_set_device_udf
    • First observeddatto_set_device_warranty
    • First observeddatto_set_site_proxy
    • First observeddatto_update_account_variable
    • First observeddatto_update_site
    • First observeddatto_update_site_variable

TDQS

B3.3/5.0

Scored across 46 tools

Disambiguation4/5

Most tools have clearly distinct purposes, but some overlap exists (e.g., datto_get_device vs datto_get_device_by_id, datto_list_devices vs datto_list_site_devices). Descriptions help differentiate, but the similarity could cause occasional misselection.

Naming Consistency5/5

All tools follow a consistent ‘datto_verb_noun’ pattern using snake_case. Verbs like get, list, create, delete, update, set, move, resolve, run are used uniformly. No mixing of conventions.

Tool Count4/5

46 tools is high, but the Datto RMM domain is complex with many entities (sites, devices, alerts, jobs, variables, etc.). The count is slightly above ideal but still reasonable given the API’s breadth. Each tool serves a distinct purpose.

Completeness3/5

The set covers most core workflows (CRUD for sites and variables, listing and managing devices, alerts, jobs), but notable gaps exist: no tool to delete a site, no tool to manage components beyond listing, and no user management beyond listing. These gaps may require workarounds.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides comprehensive access to the Kaseya VSAX (VSA 10) REST API v3 through 67 specialized tools. It enables users to manage devices, run workflows, execute scripts, and oversee organizational data using natural language and OData query support.
    1
    MIT
  • A
    license
    C
    quality
    C
    maintenance
    Provides AI assistants with direct access to Autotask PSA for MSP operations. Enables natural language interaction for ticket management, time logging, company lookups, project tracking, and billing review through 39 comprehensive tools.
    100
    17
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables interaction with N-able RMM (N-sight) API to manage clients, sites, devices, and retrieve monitoring data such as checks, patches, and performance history.
    Apache 2.0