Skip to main content
Glama

contabo-mcp

License: MIT

An MCP server that gives AI agents the entire Contabo API: VPS/VDS instances, snapshots, images, object storage, private networks, firewalls, DNS, domains, secrets, users, tags and troubleshooting. It is generated from Contabo's official OpenAPI spec, so every one of the 158 operations is available as a tool.

  • One tool per API operation, with typed JSON-schema inputs and readOnly / destructive annotations

  • OAuth2 handled for you: token fetched, cached, refreshed on expiry and on 401

  • Safety switches: read-only mode, tool groups, exclusion list

  • Resilient: timeouts, retry with backoff on 429/5xx for reads, response size cap

  • Works with Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, Cline, Codex, Gemini CLI, Zed, OpenCode and any stdio MCP client

Quick start

Requires Node.js 18.17+ and Contabo API credentials (my.contabo.com → Account → Security & Access → API: Client ID, Client Secret, API user, API password).

git clone https://github.com/Kirad20/contabo-mcp
cd contabo-mcp
npm install
npm test        # offline smoke test, no credentials needed

Then register the server in your agent. Example for Claude Code:

claude mcp add contabo \
  -e CONTABO_CLIENT_ID=... -e CONTABO_CLIENT_SECRET=... \
  -e CONTABO_API_USER=... -e CONTABO_API_PASSWORD=... \
  -e CONTABO_READ_ONLY=1 \
  -- node /absolute/path/to/contabo-mcp/src/index.js

Ready-made configs for every supported agent are in examples/ and explained in docs/CONFIGURATION.md.

Start read-only. CONTABO_READ_ONLY=1 exposes only the 72 GET tools. Remove it only when you want the agent to create, change or delete resources (which can cost money or destroy data).

Related MCP server: Cloudways MCP Server

Try it

Once connected, ask your agent things like:

  • "List my Contabo instances and their status."

  • "Which of my VPS have no firewall assigned?"

  • "Create a snapshot of instance 12345 called before-upgrade."

  • "Add an A record for app.example.com pointing to my instance IP."

More in docs/USAGE.md.

Configuration at a glance

Variable

Purpose

CONTABO_CLIENT_ID, CONTABO_CLIENT_SECRET, CONTABO_API_USER, CONTABO_API_PASSWORD

Required. API credentials

CONTABO_READ_ONLY=1

Only GET tools

CONTABO_GROUPS=dns,firewalls

Only these tool groups

CONTABO_EXCLUDE_AUDITS=1

Drop the 17 audit-log tools

CONTABO_EXCLUDE_TOOLS=delete_tag,...

Drop specific tools

CONTABO_COMPACT=1

Shorter schemas (~45% fewer tokens)

CONTABO_TIMEOUT_MS, CONTABO_MAX_RETRIES, CONTABO_MAX_RESPONSE_CHARS

Network behaviour

Full list and details: docs/CONFIGURATION.md. The complete tool list is in docs/TOOLS.md.

Why filter tools?

All 158 tools together weigh ~165 KB of schema, which is a lot of context for the model. Pick the groups you need (CONTABO_GROUPS), enable CONTABO_COMPACT, or both. For example CONTABO_GROUPS="compute instances" CONTABO_COMPACT=1 loads 25 small tools.

Documentation

Doc

Contents

CONFIGURATION.md

Credentials, every env var, setup per agent

USAGE.md

Calling conventions, pagination, example workflows

TOOLS.md

All 158 tools by group

SECURITY.md

Credential handling, least privilege, risks

TROUBLESHOOTING.md

Common errors and fixes

DEVELOPMENT.md

Architecture, updating the spec, tests

CHANGELOG.md

Release notes

Disclaimer

Unofficial community project, not affiliated with Contabo GmbH. You are responsible for any resources created, changed or deleted through your credentials.

License

MIT, see LICENSE.

Available Tools

158 tools
assign_instance_firewallC

Add instance to a firewall [POST /v1/firewalls/{firewallId}/instances/{instanceId}] Add a specific instance to a firewall

NameRequiredDescriptionDefault
firewallIdYesThe identifier of the firewall
instanceIdYesThe identifier of the instance
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true and destructiveHint=false, so the mutation profile is covered. The description adds nothing beyond the endpoint path: no statement of what happens if the instance is already assigned, no error behavior, and no note that the call is non-idempotent.

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?

Very short and front-loaded, but the second line repeats the first almost verbatim ('Add instance to a firewall' vs 'Add a specific instance to a firewall'), so one sentence is wasted.

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

Completeness3/5

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

Adequate minimum for a simple 2-required-param mutation with full schema coverage and annotations, and no output schema to explain. It falls short on lifecycle questions an agent would care about — idempotency on repeat calls and error conditions — that neither the schema nor annotations cover.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 both firewallId and instanceId are documented in the schema, including the int64 type of instanceId. The description adds no meaning beyond the endpoint template, so the baseline of 3 applies.

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

Purpose4/5

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

Clearly states the verb and resource: add a specific instance to a firewall, plus the REST endpoint POST /v1/firewalls/{firewallId}/instances/{instanceId}. The pairing with the sibling unassign_instance_firewall is inferable from the name, though the description never names it.

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 versus alternatives such as unassign_instance_firewall or the private-network equivalent assign_instance_private_network, and no stated prerequisites (e.g., firewall and instance must already exist). Usage is only implied by the name.

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

assign_instance_private_networkB

Add instance to a Private Network [POST /v1/private-networks/{privateNetworkId}/instances/{instanceId}] Add a specific instance to a Private Network

NameRequiredDescriptionDefault
instanceIdYesThe identifier of the instance
x-trace-idNoIdentifier to trace group of requests.
privateNetworkIdYesThe identifier of the Private Network

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the description need only add operational context — but it adds essentially nothing beyond restating the endpoint path. It does not say what happens if the instance is already a member, whether the action is reversible, what errors can occur, or what is returned.

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?

It is short, but the first line duplicates the title and the second line restates the first, so roughly half the text is redundant. The endpoint is front-loaded, which is good, but the space is spent on repetition rather than new information.

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

Completeness3/5

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

For a simple two-parameter assignment operation with full schema documentation and annotations, the definition is adequate to invoke the tool correctly. However, with no output schema, the description should indicate what comes back (the private network, the instance, or nothing) and whether repeated calls are meaningful, given idempotentHint=false.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 both required parameters (privateNetworkId, instanceId) plus x-trace-id are already fully documented in the input schema. The description only echoes them via the URL template; baseline 3 applies since the schema does the work.

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

Purpose4/5

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

The description gives a specific verb and resource ("Add instance to a Private Network") and includes the concrete HTTP endpoint, so the agent knows exactly which API operation it wraps. The one clear sibling, unassign_instance_private_network, is implicitly distinguished by the verb, though it's never named.

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

Usage Guidelines3/5

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

Usage is only implied by the operation name: assign an instance when it needs to join a private network. There is no explicit when-to-use guidance, no prerequisites (e.g. instance must exist, be in the same region), and no reference to the unassign sibling as the inverse operation.

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

assign_ipB

Assign a VIP to an VPS/VDS/Bare Metal [POST /v1/vips/{ip}/{resourceType}/{resourceId}] Assign a VIP to a VPS/VDS/Bare Metal using the machine id.

NameRequiredDescriptionDefault
ipYesThe ip you want to add the instance to
resourceIdYesThe identifier of the resource
x-trace-idNoIdentifier to trace group of requests.
resourceTypeYesThe resourceType using the VIP.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnly=false, idempotent=false, destructive=false, and openWorld=true, so the safety profile is largely covered. The description adds the HTTP POST route and target resource types, but it does not explain preconditions, whether an IP can be reassigned, or what happens if the VIP is already assigned.

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 short and front-loads the operation, but the first sentence is nearly repeated by the second. The bracketed endpoint adds useful detail, but the duplication prevents it from being maximally 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 mutation tool with full schema coverage and annotations, the description is adequate but incomplete. It lacks important operational context such as preconditions, response expectations, and behavior when the VIP is already assigned or the resource is unavailable.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters, including the `resourceType` enum. The description adds a small amount of meaning by clarifying that resourceId is the machine id, but otherwise it does not go meaningfully beyond the schema.

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

Purpose4/5

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

The description states a specific verb and resource: assigning a VIP to a VPS/VDS/Bare Metal resource. It also exposes the endpoint path, making the operation concrete. However, it does not explicitly distinguish this from the sibling `unassign_ip` alternative.

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

Usage Guidelines2/5

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

The description gives no explicit when-to-use guidance beyond restating the operation. It does not mention prerequisites, duplicate-assignment behavior, or when to use `unassign_ip` instead. The only contextual hint is that assignment is done using the machine id.

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

bulk_delete_dns_zone_recordsB
DestructiveIdempotent

Bulk delete DNS zone records [DELETE /v1/dns/zones/{zoneName}/records/bulk] Delete multiple zone records from a DNS Zone

NameRequiredDescriptionDefault
bodyYesJSON request body
zoneNameYesZone name
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so the description adds nothing about safety. For a bulk destructive operation it omits whether the delete is atomic, what happens on partial/invalid record IDs, or whether deletion is recoverable.

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

Conciseness4/5

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

Two short sentences, front-loaded with the action. The bracketed HTTP path is mildly redundant with the tool name but harmless.

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?

A destructive, nested-body bulk mutation with no output schema needs more than an endpoint echo: no note on irreversibility, batch limits, or error semantics. Adequate to identify the tool, insufficient to call it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 both required parameters plus the trace header are documented inline, so the schema carries the burden. The description adds no meaning beyond the schema, which is baseline 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?

States a specific verb and resource ('bulk delete DNS zone records') and the 'bulk' qualifier implicitly contrasts with the single-record sibling delete_dns_zone_record. Clear, though it never names the single-record alternative explicitly.

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

Usage Guidelines3/5

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

Usage is only implied by the word 'bulk' and the endpoint path. There is no explicit guidance on when to choose this over repeated calls to delete_dns_zone_record, nor any prerequisite or limit guidance.

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

cancel_domainC

Cancel a specific domain [POST /v1/domains/{domain}/cancel] Cancel a specific domain

NameRequiredDescriptionDefault
bodyYesJSON request body
domainYesDomain Name
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description contributes nothing beyond that: it does not explain what happens to the domain after cancellation, whether the cancellation is scheduled at cancelDate, or that a cancellation can later be reversed via revoke_cancel_domain.

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?

It is short and front-loaded, but the sentence 'Cancel a specific domain' appears twice — once as prose and once as the endpoint label — which is pure redundancy rather than earned content.

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

Completeness2/5

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

For a mutation tool with a required nested request body, no output schema, and a closely related undo tool in the sibling list, the description should at minimum explain the cancellation lifecycle and point to revoke_cancel_domain. None of that is present, leaving the agent under-informed about consequences.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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%, including the nested body with the reason enum, cancelDate, reasonText and x-trace-id, so the baseline of 3 applies. The description mentions no parameters at all and therefore adds zero meaning beyond the schema.

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

Purpose2/5

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

The description merely restates the tool name ('Cancel a specific domain') and appends the raw endpoint path. It names a verb and resource but adds no differentiation from neighbors like revoke_cancel_domain or update_domain, so an agent learns nothing beyond the title.

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

Usage Guidelines2/5

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

There is no statement of when this tool should be used instead of revoke_cancel_domain, cancel_instance, or cancel_object_storage, nor any prerequisites such as domain ownership or pending-transfer state. Usage is only implied by the verb 'cancel'.

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

cancel_ext_checkC

Cancel check [PATCH /v1/troubleshooting/checks/{checkId}] Cancel check

NameRequiredDescriptionDefault
bodyYesJSON request body
checkIdYesCheck's id
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare the mutation and safety profile: readOnlyHint=false, destructiveHint=false, openWorldHint=true, idempotentHint=false. The description adds no behavioral context beyond the HTTP endpoint—it does not say what happens on cancellation, whether a completed check can be cancelled, or what the body must contain.

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

Conciseness2/5

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

The description is short but redundant: “Cancel check” appears twice, and the endpoint line is the only extra information. The repetition does not earn its place, and the overall brevity comes at the cost of under-specification rather than efficient clarity.

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 that this is a mutation tool with annotations, a nested request body, and no output schema, the description is too thin. It omits what a check is, the effect of cancellation, prerequisite states, and any indication of return behavior or error conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 checkId, body, and x-trace-id. The description only exposes checkId through the endpoint path and adds no meaning beyond that baseline.

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 states the action and resource with the endpoint path, but the visible text is essentially the same as the tool name/title repeated twice. It identifies that this cancels a check, yet gives no scope or qualitative detail about what kind of check or what cancellation means.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus siblings such as get_ext_check, start_ext_check, or cancel_ext_check_collection. The description only restates the action and does not mention prerequisites, valid states, or alternatives.

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

cancel_ext_check_collectionC

Cancel check collection [PATCH /v1/troubleshooting/check-collections/{checkCollectionId}] Cancel check collection

NameRequiredDescriptionDefault
bodyYesJSON request body
x-trace-idNoIdentifier to trace group of requests.
checkCollectionIdYesCheck collection's id

TDQS

C2.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is covered, but the description adds nothing beyond it. It never says what cancelling does to in-flight checks, whether the collection's status becomes terminal, or whether the operation can be reversed — meaningful gaps for a state-changing cancel.

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

Conciseness2/5

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

The same phrase appears twice and the bracketed HTTP route is embedded in prose, so the text is redundant rather than efficient. Nothing is front-loaded beyond the tool name, and no sentence earns extra place by conveying new 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 mutating, non-idempotent cancel operation with no output schema, the description omits the essential semantics: what state the collection ends in, what happens to checks inside it, and whether a re-cancel is an error. Annotations and schema cover the request shape but not the effect.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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%: checkCollectionId, body.status (enum restricted to 'cancelled') and x-trace-id are all documented in the schema itself. The description adds no meaning beyond that, so the baseline 3 applies.

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

Purpose2/5

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

The text restates the tool name and annotation title verbatim ('Cancel check collection') twice, adding only the raw HTTP path. It gives no indication of what a 'check collection' is or how cancelling a collection differs from cancelling a single check, despite siblings like cancel_ext_check, start_ext_check_collection and get_ext_check_collection.

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

Usage Guidelines2/5

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

There is no when-to-use guidance and no mention of alternatives, even though cancel_ext_check is an obvious adjacent choice the agent must discriminate against. The agent is left to infer the relationship purely from the tool name.

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

cancel_ext_remedyC

Cancel remedy [PATCH /v1/troubleshooting/remedies/{remedyId}] Cancel remedy

NameRequiredDescriptionDefault
bodyYesJSON request body
remedyIdYesRemedy's id
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.5/5.0
Behavior2/5

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

Annotations declare this is a mutating (readOnlyHint=false), non-idempotent, open-world operation, but the description adds nothing beyond the HTTP path. It does not say that cancelling is effectively final, what happens to in-flight remediation steps, or that the only permitted transition is to status 'cancelled'.

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?

It is short, but 'Cancel remedy' is printed twice (once before and once after the endpoint), which is pure redundancy. Front-loaded verb is fine, but the payload carries no extra 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 state-changing cancellation endpoint with no output schema, an agent needs to know preconditions (remedy must be running/pending) and post-effects. Neither is provided, leaving the definition thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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% – remedyId, the x-trace-id header, and the body.status enum are all documented in the schema. The description adds no parameter meaning, so baseline 3 applies.

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 states the verb and resource ('Cancel remedy') and gives the endpoint path, so the basic action is identifiable. But it merely restates the name/title twice and does nothing to distinguish it from siblings such as get_ext_remedy, list_ext_remedies, start_ext_remedy, or cancel_ext_check.

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

Usage Guidelines2/5

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

There is no guidance on when to cancel a remedy versus retrieving it or starting a new one, no prerequisites, and no mention of which remedy states can be cancelled. The agent is left to infer this from the sibling names.

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

cancel_instanceB

Cancel specific instance by id [POST /v1/compute/instances/{instanceId}/cancel] Your are free to cancel a previously created instance at any time.

NameRequiredDescriptionDefault
bodyYesJSON request body
instanceIdYesThe identifier of the instance
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare the safety profile: readOnly false, openWorld true, idempotent false, and destructive false. The description adds only that cancellation can happen at any time for a previously created instance, without explaining the resulting state, reversibility, or how cancellation differs behaviorally from stopping or shutting down.

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 action is front-loaded and the description is short. There is a typo in 'Your are' and the second sentence adds limited value, but it remains concise and structurally easy to parse.

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

Completeness3/5

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

The parameter schema is fully documented and annotations provide a safety profile, but the description does not resolve the important ambiguity between canceling, stopping, and shutting down an instance. For a lifecycle mutation with a nested request body and no output schema, that gap leaves the definition only minimally complete.

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

Parameters3/5

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

Schema description coverage is 100%, so parameter meanings are already documented, including instanceId and the nested body with cancelDate. The description adds no syntax or semantic detail beyond the schema's coverage, so the baseline of 3 is appropriate.

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

Purpose4/5

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

The description states a specific verb and resource: cancel a specific instance by id, and includes the endpoint. It is clear what the tool does, but it does not differentiate cancellation from nearby instance lifecycle actions such as instance_stop or instance_shutdown.

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

Usage Guidelines3/5

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

The phrase 'previously created instance' and 'at any time' gives some implied usage context. However, it does not explicitly say when to use this instead of instance_stop, instance_shutdown, or other lifecycle alternatives, nor does it state exclusions or preconditions.

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

cancel_object_storageB

Cancels the specified object storage at the next possible date [PATCH /v1/object-storages/{objectStorageId}/cancel] Cancels the specified object storage at the next possible date. Please be aware of your contract periods.

NameRequiredDescriptionDefault
bodyYesJSON request body
x-trace-idNoIdentifier to trace group of requests.
objectStorageIdYesThe identifier of the object storage.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=true, so the safety profile is partly covered. The description adds genuinely non-annotated behavior: the cancellation is scheduled for the next possible date rather than immediate, and timing depends on contract periods. It still doesn't say whether data is retained until the cancellation date, whether the action is reversible, or what state the storage enters.

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 core sentence is efficient and front-loaded, but it is immediately restated verbatim after the endpoint line, and the redundant 'Cancels the specified object storage at the next possible date' phrasing appears three times across description and annotation title. The PATCH endpoint reference is useful; the duplication is dead weight.

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 single-action mutation tool with full schema coverage and no output schema, the description covers what it does, the scheduling semantics, and the contract-related caveat. What remains missing is the resulting resource state and reversibility, which are secondary but relevant for a cancellation operation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents objectStorageId, the nested body.cancelDate, and x-trace-id; baseline 3 applies. The description could clarify that cancelDate is a requested date constrained by contract terms, but it adds nothing about parameters beyond the schema.

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

Purpose4/5

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

States a specific verb and resource ('Cancels the specified object storage') plus the timing scope ('at the next possible date'), which distinguishes it from sibling cancellation tools like cancel_instance, cancel_domain, and cancel_ext_check. It stops short of naming those siblings or contrasting their effects, so an agent must infer the distinction from the resource name.

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 warning 'Please be aware of your contract periods' implies that contract term affects when cancellation takes effect, which is useful context. However, there is no explicit when-to-use guidance, no mention of prerequisites such as permissions or whether a scheduled cancellation can be revoked (compare revoke_cancel_domain), leaving the agent to infer the workflow.

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

check_set_new_hostA
Read-onlyIdempotent

Check if the instance can be moved to another host [GET /v1/compute/instances/{instanceId}/regionChange/check] Verifies preconditions with CMS before relocating the instance from its current host. Returns no content when the check succeeds. When CMS responds with an error list, returns that payload with the same HTTP status as CMS.

NameRequiredDescriptionDefault
instanceIdYesThe identifier of the instance
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, open-world, and non-destructive behavior. The description adds meaningful behavioral detail beyond annotations: it returns no content on success and mirrors CMS error payloads with the CMS HTTP status when preconditions fail.

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 short and front-loaded, with the purpose stated first and return behavior immediately after. The inline endpoint is slightly redundant but not harmful, and every sentence contributes useful context.

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

Completeness4/5

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

With annotations covering safety and idempotency and no output schema, the description appropriately explains the success and error return behavior. It is nearly complete for an agent, though it could explicitly name the related relocation operation for clearer workflow context.

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

Parameters3/5

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

Schema description coverage is 100%, and both parameters are documented directly in the schema. The description mentions the instance context through the endpoint path but adds no additional parameter semantics beyond what the schema already provides.

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

Purpose4/5

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

The description states a specific verb and resource: checking whether an instance can be moved to another host, with the exact GET endpoint. It clearly frames this as a precondition check before relocation, though it does not explicitly name the sibling relocation action (e.g., request_region_change) it pairs with.

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

Usage Guidelines3/5

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

The phrase 'before relocating the instance from its current host' implies the intended usage context: run this check prior to a relocation operation. However, it does not explicitly say when not to use it or name the sibling action to use afterward, so guidance is implied rather than explicit.

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

confirm_domain_transfer_outC

Confirm transfer out for a domain [POST /v1/domains/{domain}/transfer-out] Confirm transfer out for a domain

NameRequiredDescriptionDefault
domainYesDomain Name
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, and destructiveHint=false. The description adds only the POST path and otherwise does not disclose permissions required, what confirmation actually does, whether the action is reversible, or what response to expect, so it adds little beyond the structured safety profile.

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

Conciseness3/5

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

The description is short and front-loaded, but it repeats the same phrase 'Confirm transfer out for a domain' twice, with the second sentence adding no new information. The endpoint line is useful but does not compensate for the duplication.

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 mutating confirmation action with no output schema, the description should explain what confirmation means and any important lifecycle effects. Although annotations and full schema coverage reduce the burden, the description omits essential usage and consequence context that an agent needs before invoking a non-idempotent POST operation.

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

Parameters3/5

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

Schema description coverage is 100%, so both the required domain and optional x-trace-id parameters are already documented in the schema. The description only repeats 'domain' through the path template and adds no extra meaning such as format, constraints, or trace-id purpose, making the baseline 3 appropriate.

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

Purpose4/5

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

The description states a specific verb, 'Confirm transfer out', and resource, 'a domain', and includes the POST endpoint path. However, it does not distinguish this action from the sibling revoke_domain_transfer_out or explain what 'confirm' means in the transfer lifecycle, so sibling differentiation is left to inference.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool, when not to use it, or how it relates to alternatives such as revoke_domain_transfer_out or cancel_domain. The only context is the HTTP endpoint, which does not tell an agent when this confirmation is appropriate.

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

create_assignmentB

Create a new assignment for the tag [POST /v1/tags/{tagId}/assignments/{resourceType}/{resourceId}] Create a new tag assignment. This marks the specified resource with the specified tag for organizing purposes or to restrict access to that resource.

NameRequiredDescriptionDefault
tagIdYesThe identifier of the tag.
resourceIdYesThe identifier of the resource id
x-trace-idNoIdentifier to trace group of requests.
resourceTypeYesThe identifier of the resource type. Resource type is one of `instance|image|object-storage`.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description adds the POST endpoint and the persistence effect of the marking, but says nothing about what happens if the assignment already exists (a real concern given idempotentHint=false) or about permission requirements for the access-restriction use case.

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?

Front-loaded with the action and resource, and the trailing sentence adds genuine explanatory value. There is mild redundancy between the title line, the bracketed endpoint, and 'Create a new tag assignment', but nothing harmful.

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

Completeness3/5

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

For a mutation tool with full parameter documentation, no output schema, and complete annotations, the core is present. Still missing are the duplicate-assignment behavior, any precondition that the tag/resource must exist, and whether the call returns the created assignment — reasonable gaps for an agent forming its first call.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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% — tagId, resourceId, resourceType, and x-trace-id are each documented, including the resourceType enum values in the description ('instance|image|object-storage'). The prose adds nothing beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Create a new assignment for the tag') and then explains what an assignment semantically does — marks a resource with a tag for organization or access restriction. That explanation meaningfully distinguishes it from create_tag and delete_assignment, though no sibling is named explicitly.

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

Usage Guidelines3/5

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

The phrase 'for organizing purposes or to restrict access to that resource' hints at two use cases, but there is no explicit when-to-use guidance, no prerequisites (the tag presumably must already exist), and no routing toward create_tag vs. create_assignment for an agent unsure which to call.

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

create_custom_imageA

Provide a custom image [POST /v1/compute/images] In order to provide a custom image please specify an URL from where the image can be directly downloaded. A custom image must be in either .iso or .qcow2 format. Other formats will be rejected. Please note that downloading can take a while depending on network speed resp. bandwidth and size of image. You can check the status by retrieving information about the image via a GET request. Download will be rejected if you have exceeded your limits.

NameRequiredDescriptionDefault
bodyYesJSON request body
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.8/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false) the description discloses that the operation is asynchronous and slow, that unsupported formats are rejected, and that downloads fail when quota limits are exceeded. Those are genuine behavioral traits an agent needs. It stops short of describing what is returned or whether re-submitting the same URL duplicates the image, which matters given idempotentHint=false.

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 purpose and endpoint are front-loaded, and each subsequent sentence contributes new information (formats, async duration, status polling, quota rejection). There is minor padding: the bracketed endpoint tag and the restatement in 'In order to provide a custom image please specify...' duplicate the title.

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 create tool with no output schema, the description covers format validation, async timing, limit-based rejection and the follow-up status check — enough to call it correctly. The one remaining gap is that it does not say the response yields an image identifier the agent can then poll with retrieve_image.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds real meaning to the `url` parameter — it must be a direct-download link and must resolve to .iso or .qcow2 content, with other formats rejected. That constraint is not stated in the schema's 'URL from where the image has been downloaded / 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 states a specific verb and resource — providing a custom image via a downloadable URL — with the endpoint noted. It is clearly distinct from the retrieval/mutation siblings such as retrieve_image_list, update_image and delete_image, though it never names an alternative explicitly.

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

Usage Guidelines3/5

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

It gives preconditions (URL must be a direct download link, format must be .iso or .qcow2) and points to a GET/retrieve_image step for checking status, which is useful implied routing. But it does not say when to use this versus creating an instance with an existing image, or when a custom image is the wrong choice.

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

create_dns_zoneB

Create DNS zone [POST /v1/dns/zones] Creates a new DNS zone for a customer

NameRequiredDescriptionDefault
bodyYesJSON request body
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description is consistent with those annotations and adds the endpoint and customer scope, but it does not disclose behavior such as duplicate-zone handling, permissions, or side effects.

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

Conciseness4/5

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

The description is short and front-loaded with the action and endpoint. It is efficient overall, though the second sentence largely restates the first without adding substantive detail.

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 create operation with two parameters and full schema coverage, plus annotations covering mutability and safety, the description is minimally adequate. It could do more to explain uniqueness expectations, customer scoping, or what the response will contain.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 both parameters are documented in the schema, including the nested body.zoneName field. The description adds no parameter-level meaning beyond the schema, so the baseline of 3 is appropriate.

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

Purpose4/5

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

The description states a specific verb and resource: creating a DNS zone, and adds the HTTP endpoint POST /v1/dns/zones. It is clear enough to distinguish this from retrieve_dns_zone or delete_dns_zone, though it does not explicitly differentiate from create_dns_zone_record.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as create_dns_zone_record, nor any prerequisites or constraints. The description only establishes that it creates a zone, leaving usage decisions to the agent.

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

create_dns_zone_recordC

Create DNS zone record [POST /v1/dns/zones/{zoneName}/records] Create resource record in a zone

NameRequiredDescriptionDefault
bodyYesJSON request body
zoneNameYesZone name
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare that this is a non-read-only, non-idempotent, open-world, non-destructive operation, so the safety profile is covered. The description adds almost no behavioral context beyond the endpoint path—nothing about duplicate handling, permission requirements, or what happens when a record with the same name already exists.

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

Conciseness4/5

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

The description is very short and front-loads the operation name and endpoint. The second sentence is redundant with the first, but there is no padding or wandering prose.

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?

This is a mutation tool with a nested request body and no output schema, yet the description only restates the name and endpoint. It leaves out operational context such as whether the call fails on duplicate records, permission expectations, and how this differs from update_dns_zone_record, which is important for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents zoneName and all nested body fields including record type, TTL, priority, and data. The description only implicitly indicates that zoneName is a path parameter and otherwise adds no meaning beyond the schema, matching the baseline for high-coverage schemas.

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?

It clearly states a specific verb and resource ('Create DNS zone record') and includes the POST endpoint, which distinguishes it from sibling operations like update_dns_zone_record or create_dns_zone. The second sentence is largely repetitive, but the core 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?

The description gives no guidance on when to use this tool versus alternatives such as update_dns_zone_record or create_dns_zone, and it does not mention prerequisites such as existing zone requirements or duplicate-record behavior. It assumes the agent already knows the DNS API context.

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

create_firewallB

Create a new firewall definition [POST /v1/firewalls] Create a new firewall definition by specifying its name and a set of rules. The status of the firewall determines whether the rules are active or not.

NameRequiredDescriptionDefault
bodyYesJSON request body
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true). The description adds modest value by explaining that firewall status gates whether rules are active, but says nothing about what is returned, whether creation fails on duplicate names, or what permissions are required.

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

Conciseness3/5

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

Front-loaded and short, but the second sentence largely duplicates the schema's own 'status' description, and the bracketed endpoint repeats the title. Two of three sentences carry real information.

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

Completeness3/5

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

No output schema exists, so the description would ideally indicate what a successful creation returns (e.g., an identifier) and any duplicate-name behavior. For a nested-object create operation, the description covers the shape but not the outcome.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 deeply documented (nested rule objects, CIDR, protocol enums, port lists). The description's mention of name, rules, and status merely restates what the schema already explains verbatim, adding no new semantics.

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

Purpose4/5

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

States a specific verb and resource ('Create a new firewall definition') plus the endpoint POST /v1/firewalls, and notes the inputs (name, rules). It doesn't differentiate from sibling write tools like put_firewall or patch_firewall, so an agent must infer create-vs-replace from the 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 Guidelines3/5

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

Usage is only implied by the verb 'create'; there is no explicit statement of when to use this instead of put_firewall (full replacement) or patch_firewall (partial update). No prerequisites, limits, or exclusions are given.

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

create_handleC

Create specific handle [POST /v1/domains/handles] Create specific handle

NameRequiredDescriptionDefault
bodyYesJSON request body
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=true, so the description needs only to add context beyond that — and it adds none. It doesn't mention that re-posting creates a duplicate handle (non-idempotent), that .it/.fr/.nl contacts have jurisdiction-specific required fields, or what the response contains. No contradiction, but pure restatement of the title.

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

Conciseness2/5

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

It's short, but not concise: the sentence 'Create specific handle' is repeated verbatim after the endpoint annotation, so half the text is pure duplication. Front-loading is fine only because there is almost no content.

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?

This is a create tool with a deeply nested 20+ field body, no output schema, and jurisdiction-dependent required fields — a case where the description should carry real weight. It says nothing about what a successful response returns (handle ID, validation state) or which fields matter for which TLD, leaving the agent to reverse-engineer the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the nested body fields (handleType, pin, legalStatus, nicItEntityType, etc.) are already documented in-schema, making 3 the baseline. The description contributes nothing about the body — no example payload, no conditional requirements, and no explanation of the x-trace-id header.

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 has a verb (Create) and a resource (handle), and the HTTP endpoint POST /v1/domains/handles confirms it's a registrant-handle creation call. But 'specific' is filler and the sentence is duplicated, so there's no differentiation from siblings like update_handle or create_user beyond the noun 'handle'.

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

Usage Guidelines2/5

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

No when-to-use guidance, no preconditions, and no mention of alternatives (e.g. update_handle for existing handles, list_handles to check for duplicates). The agent must infer from the name alone that this is the creation path.

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

create_instanceC

Create a new instance [POST /v1/compute/instances] Create a new instance for your account with the provided parameters. ProductIdProductDisk Size V153Cloud VPS 4100 GB SSD V154Cloud VPS 6200 GB SSD V155Cloud VPS 8300 GB SSD V156Cloud VPS 12400 GB SSD V157Cloud VPS 16<td...

NameRequiredDescriptionDefault
bodyYesJSON request body
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. Beyond that the description adds almost nothing behavioral: it does not mention that the chosen `period` commits to a 1/12/24-month billing contract, that the call provisions a billable resource, or whether retrying creates duplicates (relevant given idempotentHint=false). The one addition, a product/disk-size table, is selection data rather than behavior.

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

Conciseness2/5

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

The first sentence is duplicated almost verbatim by the second, and raw HTML <table> markup is pasted into the description. Worst of all it is cut off mid-cell ("<td>400 GB SSD</td><tr><td>V157</td>..."), so space is consumed without delivering the complete information it starts to.

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?

This is a heavy creation tool with a nested body object, ~12 properties, and no output schema, so the description should carry more weight. Key omissions remain: what the response contains (instance id? status?), whether provisioning is asynchronous, and the billing/permission implications. The product table partially compensates for productId, but nowhere near enough for the overall complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents every parameter, making 3 the baseline. The product table does add meaning the schema lacks for productId (which is described only as "Default is V153") by mapping V153–V157 to Cloud VPS tiers and disk sizes. However the table is truncated mid-row, so it stops short of being a reliable reference.

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

Purpose4/5

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

The description names a specific verb and resource ("Create a new instance") and includes the exact endpoint POST /v1/compute/instances, plus account scoping ("for your account"). It is clearly distinguishable from siblings like retrieve_instance, patch_instance, or upgrade_instance, though it does not state those distinctions explicitly.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus reinstall_instance, upgrade_instance, or create_object_storage, nor any stated prerequisites (e.g. that sshKeys/rootPassword reference pre-existing secretIds from Secrets Management). The embedded product table implies product selection but never says how to choose a product or what happens after creation.

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

create_object_storageA

Create a new object storage [POST /v1/object-storages] Create / purchase a new object storage in your account. Please note that you can only buy one object storage per location. You can actually increase the object storage space via POST to /v1/object-storages/{objectStorageId}/resize

NameRequiredDescriptionDefault
bodyYesJSON request body
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already state readOnly=false, openWorld=true, idempotent=false, and destructive=false. The description adds useful behavioral context beyond annotations: creation is a purchase that may incur cost, only one object storage per location is allowed, and space increases should use the resize endpoint rather than this 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 short and front-loaded with the core action and endpoint. The repeated "Create a new object storage" phrasing is slightly redundant, but the one-per-location note and resize path are relevant and efficiently stated.

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

Completeness4/5

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

For a create/purchase mutation with rich schema descriptions and annotations, the description covers the key agent-facing concerns: what it creates, that it is a purchase, the one-per-location limit, and where to go for resizing. It does not describe the response shape, but the schema and annotations carry enough support that this is a minor gap.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all parameters in detail. The description lightly reinforces that region/location and purchased space matter, especially via the one-per-location rule, but it does not add syntax or constraints beyond what the schema provides.

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

Purpose4/5

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

The description gives a specific verb and resource: "Create / purchase a new object storage." It also adds the important constraint that only one object storage can be bought per location, though it does not explicitly name sibling tools such as retrieve_object_storage or upgrade_object_storage for differentiation.

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

Usage Guidelines3/5

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

Usage is implied by "Create / purchase a new object storage in your account" and clarified by the one-per-location constraint. It also points to a resize endpoint for increasing space, but it does not explicitly compare this tool with alternatives like upgrade_object_storage or update_object_storage.

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

create_private_networkC

Create a new Private Network [POST /v1/private-networks] Create a new Private Network in your account.

NameRequiredDescriptionDefault
bodyYesJSON request body
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the mutation profile is covered structurally. The description adds nothing beyond that: it does not say what happens on duplicate names, whether creation is asynchronous, what permissions are required, or what identifier is returned.

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?

Two sentences that restate the same fact: the title line ('Create a new Private Network') is repeated verbatim as the body sentence. Short and front-loaded, but redundant rather than 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?

There is no output schema, and the description never indicates what a successful call returns (e.g. the new network's ID or region) or whether the operation is immediate. For a creation tool with a nested request body and no output contract, the description leaves a real gap.

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

Parameters3/5

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

Schema description coverage is 100%, including the nested body fields (name, region with an EU default, description), so the baseline is 3. The description contributes no additional parameter meaning whatsoever, so it cannot exceed the baseline.

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

Purpose4/5

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

The description names a specific verb ('Create') and resource ('Private Network') and even cites the REST endpoint POST /v1/private-networks, so an agent can distinguish it from siblings like retrieve_private_network or patch_private_network. It stops short of explicitly differentiating scope from other create_* tools, but the resource noun does that work implicitly.

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?

It never says when to use this versus alternatives (e.g. versus create_firewall or patch_private_network), nor does it state prerequisites such as required account permissions or quotas. The only usage context is 'in your account', which is not real guidance.

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

create_ptr_recordB

Create a new PTR Record using ip address [POST /v1/dns/ptrs] Create a new PTR Record using ip address. Only IPv6 can be created

NameRequiredDescriptionDefault
bodyYesJSON request body
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description adds the IPv6-only constraint, which is genuine behavioral value not present in the annotations, but it says nothing about failure behavior for IPv4 input, conflicts, or rate limits.

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

Conciseness3/5

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

The opening clause and endpoint are front-loaded and useful, but the body is restated almost verbatim ('Create a new PTR Record using ip address' appears twice), wasting the one additional sentence slot that could have carried guidance or return-value context.

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

Completeness3/5

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

For a creation tool with no output schema, the definition covers what to send (via a fully described schema) and the key IPv6 restriction. It does not indicate what the call returns (the created record), whether creation is idempotent on retry, or how duplicate PTR entries are handled, leaving modest gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so ip, ptr, ttl and x-trace-id are all documented in the schema itself. The description only echoes the ip parameter ('using ip address') and adds no format, range, or relationship detail beyond what the schema provides; 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 states a specific verb and resource ('Create a new PTR Record') and gives the endpoint (POST /v1/dns/ptrs), which cleanly separates it from update_ptr_record, delete_ptr_record and retrieve_ptr_record. It does not explicitly name those siblings, but the create verb plus the IPv6 constraint makes the intent unambiguous.

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

Usage Guidelines3/5

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

'Only IPv6 can be created' is a real eligibility rule that tells an agent when this tool applies, which is more than most create tools offer. However there is no explicit routing guidance versus alternatives such as create_dns_zone_record, and no mention of prerequisites or what to do when the address is IPv4.

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

create_roleA

Create a new role [POST /v1/roles] Create a new role. In order to get a list availbale api enpoints (apiName) and their actions please refer to the GET api-permissions endpoint. For specifying resources please enter tag ids. For those to take effect please assign them to a resource in the tag management api.

NameRequiredDescriptionDefault
bodyYesJSON request body
x-trace-idNoIdentifier to trace group of requests.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare a non-read-only, non-idempotent, open-world create operation. The description adds meaningful caveats: apiName/actions should come from the api-permissions endpoint, and resource tag ids only take effect after tag assignment.

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 front-loaded and appropriately short for the tool. There is minor repetition of 'Create a new role' and a few typos, but no major structural issue.

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

Completeness4/5

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

Given a richly described nested schema and clear annotations, the description covers the non-obvious permission and resource setup dependencies. It does not discuss response format or auth requirements, but the schema carries most of the remaining burden.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already documents parameters well. The description still adds value by pointing to the api-permissions endpoint for apiName/actions and clarifying that `resources` are tag ids with a tag-management dependency.

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 specific action and resource: create a new role, with the HTTP endpoint. It distinguishes creation from sibling retrieval/update/delete role tools only by implication, not by naming alternatives.

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

Usage Guidelines4/5

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

It explains prerequisites for filling permissions and resources, including consulting GET api-permissions and using tag ids that must be assigned in tag management. It does not explicitly state when not to use this tool or name sibling alternatives.

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

create_secretB

Create a new secret [POST /v1/secrets] Create a new secret in your account with attributes name, type and value. Attribute type can be password or ssh.

NameRequiredDescriptionDefault
bodyYesJSON request body
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly=false, idempotent=false, destructive=false and openWorld=true, so the safety profile is covered. The description adds the endpoint and the password/ssh type distinction, but says nothing about sensitivity of the stored value, whether it can be read back, required permissions, or that a repeat call creates a duplicate (non-idempotent).

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

Conciseness4/5

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

Two short sentences, front-loaded with the action and endpoint. Slight redundancy: 'Create a new secret' is repeated verbatim as the opening of both sentences, and the title annotation duplicates it again.

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

Completeness3/5

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

For a mutation tool with a nested body object and no output schema, the description covers what is created but omits what the response contains and any note about the sensitivity or irreversibility of the stored secret. Adequate but with clear gaps for a credentials-related write operation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents name, type enum, and the value pattern rules. The description paraphrases the same fields ('attributes name, type and value... type can be password or ssh') without adding format or constraint detail beyond the schema, which is the baseline-3 case.

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?

States a specific verb and resource ('Create a new secret') plus the endpoint POST /v1/secrets, and names the three attributes it accepts. The create/retrieve/update/delete siblings are trivially distinguishable from the verb, though it never explicitly contrasts with 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?

There is no guidance on when to use this versus related tools in a large sibling set (generate_client_secret, reset_password, create_user) and no prerequisites or when-not conditions. The agent must infer usage entirely from the name.

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

create_snapshotB

Create a new instance snapshot [POST /v1/compute/instances/{instanceId}/snapshots] Create a new snapshot for instance, with name and description attributes

NameRequiredDescriptionDefault
bodyYesJSON request body
instanceIdYesThe identifier of the instance
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already disclose that this is a non-read-only, non-idempotent, non-destructive, open-world operation. The description adds the HTTP endpoint, which is useful context, but does not explain snapshot creation side effects, permissions, or response behavior beyond what annotations and schema provide.

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 short and front-loads the core action and endpoint. The second sentence largely repeats the first and lists attributes already covered by the schema, so not every sentence adds new value.

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

Completeness3/5

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

The schema and annotations are rich enough to support invocation, but the description is minimal for a mutation tool with no output schema. It does not clarify return behavior or any operational constraints around creating a snapshot.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 nested body, name, description, instanceId, and trace header are already well documented. The description only repeats that name and description attributes are used, adding no format or constraint details beyond the schema.

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

Purpose4/5

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

The description states a specific verb and resource: create a new instance snapshot. It also includes the POST endpoint, making the operation clear. However, it does not explicitly differentiate this tool from adjacent snapshot/image tools such as rollback_snapshot or create_custom_image.

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 explains what the tool does but gives no guidance on when to use it versus alternatives like rollback_snapshot, update_snapshot, or create_custom_image. There are also no stated prerequisites or exclusions.

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

create_tagB

Create a new tag [POST /v1/tags] Create a new tag in your account with attribute name and optional attribute color.

NameRequiredDescriptionDefault
bodyYesJSON request body
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare non-readonly, openWorld, non-idempotent, and non-destructive behavior. The description adds the POST endpoint and account scope, but omits duplicate-name behavior, permission requirements, and rate limits, and it mislabels color as optional despite the schema requiring it.

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 short and front-loads the endpoint, with no extraneous detail. However, 'Create a new tag' is repeated in both sentences, which is a minor redundancy.

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

Completeness3/5

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

For a simple create operation with full schema coverage and annotations covering safety, the description gives endpoint and account context. It still lacks duplicate/uniqueness semantics and misstates color optionality, so it is adequate but not complete.

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

Parameters2/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 name, color, description, and x-trace-id in detail. The description adds only a high-level mention of name and color and incorrectly calls color optional when the schema marks it required, which makes it less reliable than the baseline schema-only case.

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?

States a specific verb and resource ('Create a new tag') plus the POST endpoint, so the operation is unambiguous. It does not explicitly differentiate from siblings such as update_tag or delete_tag, but the creation verb itself distinguishes it.

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 update_tag, retrieve_tag, or retrieve_tag_list, and no prerequisites or alternatives are mentioned. Usage is only implied by the verb.

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

create_userA

Create a new user [POST /v1/users] Create a new user with required attributes firstName, lastName, email, enabled, totp (=Two-factor authentication 2FA), admin (=access to all endpoints and resources), accessAllResources and roles. You can't specify any password / secrets for the user. For security reasons the user will have to specify secrets on his own.

NameRequiredDescriptionDefault
bodyYesJSON request body
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, and openWorldHint=true. The description adds important security behavior beyond annotations: no password/secrets can be supplied, and the user must set secrets personally. It does not state required auth/role, but it adds substantive 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 front-loaded and compact, providing the endpoint and key constraints early. There is minor redundancy in repeating 'Create a new user' and a long required-attributes sentence, but it remains readable.

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 create mutation with a rich schema and annotations, it covers the important password/secret restriction. However, the required-attribute prose is misaligned with the schema by omitting locale and adding admin/accessAllResources, so an agent relying on the description could form an invalid request body.

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

Parameters2/5

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

Schema coverage is 100%, so the baseline is 3, but the description's required-attribute list conflicts with the schema. It says admin and accessAllResources are required although they are absent from the schema, says roles is required although schema marks it optional, and omits the required locale field, making the prose misleading.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 explicit verb 'Create' with the resource 'user' and even includes the endpoint POST /v1/users. It clearly distinguishes this tool from sibling operations like retrieve_user, update_user, and delete_user.

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

Usage Guidelines3/5

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

It implies use when provisioning a new user and gives a negative constraint: you cannot specify password/secrets. However, it does not explicitly compare with update_user or state prerequisites such as admin permissions, so guidance is only partial.

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

delete_assignmentA
DestructiveIdempotent

Delete existing tag assignment [DELETE /v1/tags/{tagId}/assignments/{resourceType}/{resourceId}] Tag assignment will be removed from the specified resource. If this tag is being used for access restrictions the affected users will no longer be able to access that resource.

NameRequiredDescriptionDefault
tagIdYesThe identifier of the tag.
resourceIdYesThe identifier of the resource id
x-trace-idNoIdentifier to trace group of requests.
resourceTypeYesThe identifier of the resource type. Resource type is one of `instance|image|object-storage`.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is covered. The description still adds real behavioral context: the assignment is removed from the resource and, for access-restricting tags, affected users immediately lose access. It stops short of stating error behavior for a nonexistent assignment or whether the tag itself survives (it does, implicitly).

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

Conciseness4/5

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

Two short sentences preceded by the endpoint, with the consequence front-loaded right after the core action. No filler, though the bracketed URI is partly redundant with the parameter set and costs a line.

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 delete with no output schema and full-schema parameter docs, the description supplies what structured fields cannot: the downstream access impact. Minor gaps remain — whether missing assignments error versus no-op, and confirmation that the tag record itself is untouched.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 resourceType enum values are documented in the schema, so the schema already carries the parameter burden. The description adds only the path template, which mirrors the same three required identifiers without new semantics; baseline 3 applies.

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

Purpose5/5

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

States a specific verb (Delete) plus a precise resource (tag assignment) scoped to a tag/resource pair, and the endpoint template disambiguates it from siblings like delete_tag and create_assignment. An agent can tell exactly which object this removes without opening the schema.

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

Usage Guidelines3/5

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

Usage is only implied by the verb — nothing states when to prefer this over delete_tag, or that retrieve_assignment_list should be used to find the resourceId first. No exclusions or prerequisites are given, though the sentence about access restrictions hints at when the call matters operationally.

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

delete_dns_zoneC
DestructiveIdempotent

Delete a DNS zone. [DELETE /v1/dns/zones/{zoneName}] Delete a DNS Zone using zone name.

NameRequiredDescriptionDefault
zoneNameYesZone name
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.9/5.0
Behavior2/5

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

The annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=true, so the safety profile is covered. The description adds only the REST path and restates 'using zone name'; it says nothing about whether deleting a zone cascades to its records, whether that is recoverable, or what happens to dependent resources.

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 short, but the purpose is stated twice ('Delete a DNS zone' / 'Delete a DNS Zone using zone name') and the second sentence adds nothing. It is front-loaded but contains redundancy rather than useful detail.

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

Completeness3/5

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

For a simple, single-parameter destructive operation with full annotation coverage and full schema coverage, the definition is minimally sufficient. It is nonetheless incomplete because it omits the consequences of deletion, particularly the fate of records within the zone and any dependencies.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 zoneName and x-trace-id. The phrase 'using zone name' adds only marginal confirmation of the required identifier, and no syntax or format details beyond the schema.

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

Purpose4/5

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

The description states a clear verb and resource ('Delete a DNS zone') and the REST endpoint reinforces the target. It is distinguishable from sibling operations such as delete_dns_zone_record or retrieve_dns_zone, though it does not explicitly call out the difference.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, no prerequisite checks (such as whether the zone must be empty), and no warning about confirmation or the effect on dependent records. The agent is left to infer everything beyond the operation name.

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

delete_dns_zone_recordC
DestructiveIdempotent

Delete a DNS zone record [DELETE /v1/dns/zones/{zoneName}/records/{recordId}] Delete a DNZ Zone's record

NameRequiredDescriptionDefault
recordIdYesThe identifier of the DNS record
zoneNameYesZone name
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered structurally. The description adds only the HTTP path and a redundant restatement with a typo ('DNZ Zone'), without disclosing side effects, confirmation behavior, or DNS propagation implications.

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 definition is short and front-loaded, but the second sentence repeats the operation and contains a typo ('DNZ'), reducing precision. It is not verbose, but it also wastes the few words it has.

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 destructive single-record delete, the description gives the endpoint but omits practical context such as whether the deletion is immediate, whether it returns anything, and how it differs from bulk deletion. Annotations and the complete input schema cover much of the safety and parameter burden, making this minimally adequate but not rich.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 recordId, zoneName, and x-trace-id are already documented in the schema. The description adds no parameter semantics beyond that baseline, which is appropriate given complete schema coverage.

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

Purpose4/5

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

The description names a specific verb and resource ('Delete a DNS zone record') and includes the endpoint path, so the operation is unambiguous. It does not distinguish itself from the sibling bulk_delete_dns_zone_records or delete_dns_zone, which limits 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?

There is no explicit when-to-use guidance, no mention of alternatives such as bulk_delete_dns_zone_records for multiple records, and no stated prerequisites or exclusions. The operation name implies deletion, but the routing decision is left entirely to inference.

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

delete_firewallA
DestructiveIdempotent

Delete existing firewall by id [DELETE /v1/firewalls/{firewallId}] Delete existing firewall by id. A firewall cannot be deleted if there are instances attached to it.

NameRequiredDescriptionDefault
firewallIdYesThe identifier of the firewall
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false, and openWorldHint=true, so the safety profile is clear. The description adds meaningful behavioral context by disclosing the attached-instance precondition that can block deletion.

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 precondition is useful and front-loaded, but the description repeats 'Delete existing firewall by id' in both the first and second sentence. That duplication costs conciseness without adding information.

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

Completeness4/5

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

For a destructive delete tool with full annotation coverage and full schema parameter descriptions, the definition is mostly complete: it names the operation, endpoint, required id, and blocking precondition. The main missing element is explicit remediation guidance when attached instances prevent deletion.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 both parameters are already documented in the input schema. The description only reiterates that deletion is by id and does not add format or handling details beyond what the schema provides.

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

Purpose5/5

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

The description states a specific verb and resource: delete an existing firewall by id. The HTTP endpoint reinforces the exact operation. An agent can distinguish this from create_firewall, retrieve_firewall, patch_firewall, and put_firewall without opening the schema.

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

Usage Guidelines3/5

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

The description gives one important precondition: a firewall cannot be deleted while instances are attached. However, it does not explicitly tell the agent what to do instead, such as unassigning instances first via unassign_instance_firewall, nor does it compare this tool against update alternatives.

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

delete_imageB
DestructiveIdempotent

Delete an uploaded custom image by its id [DELETE /v1/compute/images/{imageId}] Your are free to delete a previously uploaded custom images at any time

NameRequiredDescriptionDefault
imageIdYesThe identifier of the image
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=true, so the safety profile is covered. The description adds the DELETE endpoint and a vague statement that deletion is allowed at any time, but does not explain consequences such as whether the image is irrecoverable or whether in-use images can be deleted.

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 short and front-loads the core action and endpoint. The second sentence is somewhat awkward and contains a typo, but it does not significantly detract from an otherwise efficient structure.

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 destructive delete operation whose annotations already communicate destructiveness and idempotency, the description is mostly complete: it identifies the action, resource, identifier, and endpoint. It could add a note about irreversibility or constraints, but nothing critical is missing for an agent that also inspects the annotations and schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents imageId and x-trace-id clearly. The description only adds the phrase 'by its id', which maps to the required imageId parameter but does not provide additional semantics beyond the schema.

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

Purpose4/5

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

The description states a specific verb and resource: delete an uploaded custom image by its id, and even includes the HTTP endpoint. It is clear what the tool does, but it does not explicitly differentiate this operation from sibling image tools such as retrieve_image or update_image.

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 only usage-like statement is that you are free to delete a previously uploaded image at any time, which is not guidance about when to use this tool versus alternatives. It does not mention preconditions, exclusions, or sibling tools, leaving the agent to infer usage entirely.

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

delete_private_networkA
DestructiveIdempotent

Delete existing Private Network by id [DELETE /v1/private-networks/{privateNetworkId}] Delete existing Virtual Private Cloud by id and automatically unassign all instances from it

NameRequiredDescriptionDefault
x-trace-idNoIdentifier to trace group of requests.
privateNetworkIdYesThe identifier of the Private Network

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructive=true, idempotent=true, and openWorld=true, so the safety profile is covered. The description adds important non-annotation context: deleting the network automatically unassigns all instances from it.

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 operation is front-loaded and appropriately short. There is mild redundancy in repeating 'Delete existing ... by id' for both Private Network and Virtual Private Cloud, but the second sentence contributes the key side effect.

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 destructive delete tool with rich annotations and fully described parameters, this is mostly complete: it names the resource, id-based targeting, and the automatic instance unassignment. It could still mention prerequisites or irreversibility, but annotations cover much of that ground.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already documents privateNetworkId and x-trace-id. The description only repeats that deletion is by id, adding no format, constraints, or parameter behavior beyond the schema.

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

Purpose5/5

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

The description states a specific verb and resource: delete a Private Network by id, and includes the underlying DELETE endpoint. It is clearly distinguishable from sibling retrieve/create/patch private-network 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?

It says to delete an existing Private Network by id but gives no explicit when-to-use guidance, no alternatives, and no prerequisites such as verifying the network before deletion.

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

delete_ptr_recordA
DestructiveIdempotent

Delete a PTR Record using ip address [DELETE /v1/dns/ptrs/{ipAddress}] Delete a PTR Record using ip address. Only IPv6 can be deleted

NameRequiredDescriptionDefault
ipAddressYesIp Address
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so safety framing is covered. The description adds the non-obvious IPv6-only restriction, which is exactly the kind of behavioral constraint structured fields cannot express; it stops short of saying whether deletion is reversible or what happens to in-flight DNS resolution.

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 core statement is short, but the title sentence is duplicated verbatim and the HTTP route is inlined in brackets, adding tokens without new information. The genuinely useful constraint (IPv6 only) is buried at the end rather than 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?

With only two parameters, full schema coverage, and rich annotations, the definition covers what an agent needs to invoke it correctly; no output schema exists, so return values need not be explained. The main remaining gap is that it says nothing about error behavior or side effects on related DNS data.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 ipAddress and x-trace-id are already documented in the schema. The description confirms the operation keys on the IP address but adds no format, zone-scoping, or IPv6 literal syntax detail beyond that, so the baseline 3 applies.

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

Purpose4/5

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

Names a specific verb and resource (delete a PTR record) plus the addressing key (ip address), which distinguishes it from retrieve_ptr_record/update_ptr_record. It does not explicitly separate itself from the other delete_* siblings such as delete_dns_zone_record, but the resource name 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 Guidelines3/5

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

"Only IPv6 can be deleted" is a real precondition that tells the agent when this call will fail, which is more than most definitions offer. However, there is no explicit routing guidance against siblings (create_ptr_record, update_ptr_record, delete_dns_zone_record) and no stated prerequisites.

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

delete_roleA
DestructiveIdempotent

Delete existing role by id [DELETE /v1/roles/{roleId}] You can't delete a role if it is still assigned to a user. In such cases please remove the role from the users.

NameRequiredDescriptionDefault
roleIdYesThe identifier of the role
x-trace-idNoIdentifier to trace group of requests.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is covered structurally. The description adds the genuinely non-obvious failure mode — deletion is blocked by existing user assignments — which an agent could not infer from the schema. It stops short of saying whether deletion is permanent/irreversible or what happens on an unknown roleId.

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

Conciseness5/5

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

Two short sentences: the operation and endpoint first, then the blocking condition. Nothing redundant and nothing buried.

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 destructive mutation with no output schema, the description supplies the key precondition and the remediation path, and the annotations carry the safety profile. A note on irreversibility or the response on a nonexistent role would make it fully complete.

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

Parameters3/5

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

Schema coverage is 100%, so both roleId and x-trace-id are already documented in the schema. The description only restates 'by id' and echoes the path template; it adds no meaning beyond what the schema provides, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Delete existing role') plus the exact REST endpoint, which pins down the operation unambiguously. Against a sibling list containing many other delete_* tools (delete_tag, delete_user, delete_secret), the resource noun 'role' is enough to select it without opening the schema.

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

Usage Guidelines4/5

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

Explicitly names a when-not condition: the role cannot be deleted while still assigned to a user, and the description tells the agent what to do instead ('remove the role from the users'). It does not point at a specific sibling tool (e.g. update_user or retrieve_role_list) for performing that prerequisite step, so it falls short of full alternative routing.

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

delete_secretA
DestructiveIdempotent

Delete existing secret by id [DELETE /v1/secrets/{secretId}] You can remove a specific secret from your account.

NameRequiredDescriptionDefault
secretIdYesThe id of the secret
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.8/5.0
Behavior3/5

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

The annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false, and openWorldHint=true, so the safety profile is well covered externally. The description adds the endpoint and confirms the secret is removed from the account, but it does not add further behavioral context such as irreversibility, dependencies, authorization requirements, or response 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 two short lines with the operation and endpoint front-loaded, and every part contributes to identifying the action. There is no unnecessary text.

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 plus annotations and schema identify the resource, required identifier, destructive nature, idempotency, and endpoint. It is sufficient for invoking a simple delete, though it does not mention downstream impact or what the deletion call returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 secretId parameter is already documented in the schema as 'The id of the secret'. The description reinforces that the operation is by id and cites the path template, but does not add syntax, format, or validation details beyond the schema.

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

Purpose5/5

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

The description states a specific verb (Delete), resource (secret), and identifier (by id), and the endpoint reinforces the exact operation. It is clearly distinct from sibling secret tools such as retrieve_secret, create_secret, and update_secret.

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

Usage Guidelines3/5

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

The description implies usage by saying it removes a specific secret from the account, but it gives no explicit when-to-use guidance, no exclusions, and no alternative or prerequisite behavior. For a straightforward delete operation the implied use is adequate, but it does not actively route the agent among siblings.

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

delete_snapshotC
DestructiveIdempotent

Delete existing snapshot by id [DELETE /v1/compute/instances/{instanceId}/snapshots/{snapshotId}] Delete existing instance snapshot by id

NameRequiredDescriptionDefault
instanceIdYesThe identifier of the instance
snapshotIdYesThe identifier of the snapshot
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false and openWorldHint=true, so the description's only remaining job is to add context, which it does not. It says nothing about whether the deletion is permanent, whether dependent snapshots/images are affected, or what the caller gets back. It repeats the title verbatim rather than supplementing it.

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

Conciseness2/5

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

The text is short but wastefully duplicated: 'Delete existing snapshot by id [DELETE /v1/...]' is immediately followed by 'Delete existing instance snapshot by id', which restates the same fact. The endpoint path is also already implied by the operation; the second sentence earns no 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?

With full schema coverage and rich annotations, the minimum is met, but for a destructive operation the description should mention permanence or consequences. An agent knows what to send but not what it is about to lose, which is the one gap annotations cannot close.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 instanceId and snapshotId both documented inline, so the baseline applies. The description adds no format or constraint detail (e.g., that snapshotId is a string UUID or whether x-trace-id is optional), so it neither helps nor hurts.

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?

States a specific verb and resource ('Delete existing snapshot by id'), so an agent can tell it apart from update_snapshot, rollback_snapshot, or delete_image without reading the schema. It stops short of explicitly contrasting itself with the sibling that would be the closest wrong choice (rollback_snapshot).

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

Usage Guidelines2/5

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

There is no guidance at all on when to use this versus rollback_snapshot or update_snapshot, no prerequisites, and no warning about irreversibility beyond what the destructiveHint annotation already says. The only usage signal is the implicit 'delete = removal'.

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

delete_tagA
DestructiveIdempotent

Delete existing tag by id [DELETE /v1/tags/{tagId}] Your tag can be deleted if it is not assigned to any resource on your account. Check tag assigments before deleting tag.

NameRequiredDescriptionDefault
tagIdYesThe identifier of the tag
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered. The description adds the operationally important constraint that deletion fails when the tag is still assigned — genuine context beyond the structured fields, though it doesn't say what error behavior or side effects to expect.

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

Conciseness4/5

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

Two short sentences, with the endpoint and the blocking precondition front-loaded. Minor waste in repeating the title and a typo ('assigments'), but nothing padding or buried.

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

Completeness4/5

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

For a simple two-parameter delete with no output schema, the definition covers what an agent needs: the target, the mutation, and the precondition that gates success. Only the exact failure mode when the tag is assigned is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 tagId is documented as 'The identifier of the tag'. The description only restates 'by id', adding no format, range, or acquisition guidance beyond the schema. Baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Delete existing tag by id') plus the underlying endpoint, so an agent can tell it apart from retrieve_tag, update_tag, and delete_assignment without opening the schema. It stops short of explicitly contrasting with the nearest sibling, delete_assignment.

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?

Gives a concrete precondition for use: the tag can only be deleted if it is not assigned to any resource, and it advises checking tag assignments first. It does not name the sibling tool (retrieve_assignment_list) that performs that check, leaving the agent to infer the next call.

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

delete_userA
DestructiveIdempotent

Delete existing user by id [DELETE /v1/users/{userId}] By deleting a user he will not be able to access any endpoints or resources any longer. In order to temporarily disable a user please update its enabled attribute.

NameRequiredDescriptionDefault
userIdYesThe identifier of the user.
x-trace-idNoIdentifier to trace group of requests.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, so safety is covered. The description adds the actual blast radius — the user loses access to every endpoint and resource — which is real consequence detail beyond the boolean flags, though it says nothing about recovery, cascade effects on owned resources, or auth requirements.

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

Conciseness4/5

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

Front-loaded with the action and endpoint, then the consequence, then the alternative — good ordering with no filler. Minor deduction for the slightly awkward phrasing ('By deleting a user he will...') and mild redundancy about access loss.

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 two-parameter destructive tool with full annotations and no output schema, the description covers action, consequence, and the safer alternative. What remains unstated — irreversibility, dependent-resource handling, permission requirements — is a modest gap for a destructive operation but not a blocking one.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters are documented in the schema, including the trace header. The description only implies the userId comes from the path template; it adds no format or constraint detail, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Delete existing user by id') plus the concrete endpoint, and distinguishes it from the sibling update_user by pointing at the 'enabled' attribute for the non-destructive path. An agent can tell this apart from update_user or delete_role without opening a schema.

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

Usage Guidelines5/5

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

Explicitly splits the decision: use this for removal, use the enabled attribute to temporarily disable. That is an explicit when-to-use versus when-to-use-something-else statement, which is the highest bar for this dimension.

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

generate_client_secretC
Idempotent

Generate new client secret [PUT /v1/users/client/secret] Generate and get new client secret.

NameRequiredDescriptionDefault
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.5/5.0
Behavior2/5

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

Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=true, openWorldHint=true), which lowers the bar. However, the critical behavior for a secret-rotation tool is not disclosed: whether the existing client secret is invalidated by this call, whether the new secret is returned in the response, and what the idempotentHint=true actually means here (does a repeat call return the same secret?). The description only repeats the HTTP verb and path.

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?

Very short, which is good, but 'Generate new client secret' followed by 'Generate and get new client secret' is pure duplication. The verbatim reiteration spends a whole second sentence on zero new 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 mutation tool with no output schema, the description should say what comes back (the new secret) and what happens to the old one; neither is covered. Annotations carry the safety profile, but the core effect of the call is left unexplained.

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

Parameters3/5

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

There is a single optional parameter (x-trace-id) with 100% schema description coverage, so the schema fully documents it and the description adds nothing on parameters. Baseline 3 applies.

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 verb 'generate' plus resource 'client secret' is specific, and the endpoint PUT /v1/users/client/secret pins down the scope to the current user's client. But the second sentence merely restates the first, and nothing distinguishes this from neighbours such as create_secret, retrieve_secret, generate_sso_token or regenerate_object_storage_credentials.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of what condition warrants rotating a client secret, and no pointer to any alternative tool. The agent must infer everything 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.

generate_sso_tokenB

Generate one time SSO token [POST /v1/users/sso-token] Generate an one time SSO token for the authenticated user account.

NameRequiredDescriptionDefault
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnly=false, idempotent=false, and openWorld=true, so the agent knows this is a non-repeatable write-like action. The description adds the genuinely useful behavioral fact that the token is 'one time' (single-use), but says nothing about expiry, scopes, or whether prior tokens are invalidated — the details that would actually change how an agent sequences calls.

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 short but not tight: the bracketed HTTP path plus a second sentence that restates the first ('Generate one time SSO token' / 'Generate an one time SSO token...'). The duplicate phrasing and the 'an one time' grammar cost it a point without adding meaning.

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

Completeness3/5

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

With no output schema, the description should say what comes back — a token string, its lifetime, and how it is consumed. It delivers only 'one time' and leaves the return value and expiry undocumented, which is a real gap for a token-issuing tool, though the low parameter count keeps the overall risk moderate.

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

Parameters3/5

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

Only one optional parameter (x-trace-id) exists and the schema documents it at 100% coverage, so the description has little room to add value. It offers no parameter guidance of its own; baseline 3 applies when the schema carries the burden.

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

Purpose4/5

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

Uses a specific verb+resource ('Generate one time SSO token') and scopes it to 'the authenticated user account', which tells an agent what it produces and for whom. It does not, however, distinguish itself from nearby siblings like generate_client_secret or get_auth_code, so an agent must infer which credential-minting tool to pick.

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

Usage Guidelines3/5

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

The phrase 'for the authenticated user account' implies the context of use (an already-authenticated session), but there is no explicit when-to-use, when-not-to-use, or alternative named among the many sibling token/secret tools. Usage must be inferred rather than read.

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

get_auth_codeC

Get auth code for a domain [POST /v1/domains/{domain}/generate-auth-code] Get auth code for a domain by id

NameRequiredDescriptionDefault
domainYesDomain Name
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.5/5.0
Behavior2/5

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

Annotations declare readOnlyHint=false, idempotentHint=false and openWorldHint=true, so the agent knows this is a non-idempotent, externally-visible write-like operation. The description, however, uses the word 'get', which reads as a safe read and obscures that a POST actually generates a new transfer authorization credential (with implications such as invalidating prior codes and code expiry). There is partial friction with the annotations, but the endpoint notation saves it from being a direct contradiction.

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?

Short and front-loaded, which is good, but the second sentence is pure redundancy ('Get auth code for a domain by id' repeats the first). The only new information is the HTTP path in brackets.

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

Completeness2/5

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

No output schema exists, so the description should say what comes back (an EPP/transfer auth code string), whether the code expires, and that it is a sensitive credential. None of that is present, leaving an agent calling a credential-generating endpoint with no knowledge of the result or consequences.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters (domain, x-trace-id) are already documented in the schema. The description adds nothing about the domain argument beyond the schema, and 'by id' is mildly misleading about the expected identifier form, but the baseline of 3 applies since the schema carries the burden.

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 verb+resource (get domain auth code) is stated, and the bracketed POST path hints at the underlying behavior. But the second sentence merely restates the first, and 'by id' is inaccurate since the required parameter is a domain name string, not an id. Nothing distinguishes it from the large set of domain-related siblings such as retrieve_domain or update_domain.

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

Usage Guidelines2/5

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

There is no indication of when to call this versus the many sibling domain tools, no prerequisites (e.g. domain must be owned/registered by the caller), and no note about when a new code is needed versus reusing one. The agent must infer usage entirely.

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

get_ext_checkA
Read-onlyIdempotent

Get check [GET /v1/troubleshooting/checks/{checkId}] Get a single check by id

NameRequiredDescriptionDefault
checkIdYesCheck's id
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is clear. The description adds the GET endpoint path and single-entity scope, but does not add auth, error, or rate-limit context beyond the annotations.

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

Conciseness4/5

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

The description is very short and front-loads the operation and endpoint. There is minor redundancy between 'Get check' and 'Get a single check by id', but nothing bloated.

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

Completeness4/5

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

For a simple read-only retrieval tool with complete schema coverage and rich annotations, the description provides enough to select and invoke it correctly. It does not describe the return shape, but the operation is straightforward and no output schema is provided.

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

Parameters3/5

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

Schema description coverage is 100%, so checkId and x-trace-id are already documented in the schema. The description only reinforces that retrieval is by id and adds no additional parameter meaning beyond the schema.

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

Purpose4/5

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

The description states a specific verb and resource: get a single check by id, and includes the HTTP endpoint. It implies retrieval of one entity versus listing, but it does not explicitly name the sibling list_ext_checks as the alternative.

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

Usage Guidelines3/5

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

The phrase 'by id' implies this tool should be used when a specific checkId is known, but there is no explicit when-to-use guidance or comparison to list_ext_checks. Usage is inferable but not spelled out.

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

get_ext_check_collectionB
Read-onlyIdempotent

Get check collection [GET /v1/troubleshooting/check-collections/{checkCollectionId}] Get a single check collection by id

NameRequiredDescriptionDefault
x-trace-idNoIdentifier to trace group of requests.
checkCollectionIdYesCheck collection's id
excludeCheckStatusesNoCheck statuses to exclude

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds the endpoint path and single-id scope, but does not add auth requirements, rate limits, or return behavior.

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

Conciseness4/5

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

The description is short and front-loaded with the operation and endpoint. It has minor redundancy between 'Get check collection' and 'Get a single check collection by id', but nothing materially wasteful.

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

Completeness4/5

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

For a simple read-by-id tool with full schema description coverage and rich annotations, the description is largely complete. It omits return-value details, but this is minor given the straightforward GET-by-id operation.

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

Parameters3/5

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

Schema description coverage is 100%, so checkCollectionId, excludeCheckStatuses, and x-trace-id are already documented in the schema. The description only references checkCollectionId indirectly through the path and does not add meaning beyond the schema.

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

Purpose4/5

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

States a specific verb and resource ('Get check collection') and clarifies scope with 'single ... by id', plus the HTTP path. It does not explicitly name list_ext_check_collections as the alternative, but 'single ... by id' sufficiently distinguishes the operation.

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

Usage Guidelines2/5

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

Provides no guidance on when to use this tool versus list_ext_check_collections, get_ext_check_collection_template, or get_ext_check. The agent must infer usage from the name and path alone.

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

get_ext_check_collection_templateB
Read-onlyIdempotent

Get check [GET /v1/troubleshooting/check-collection-templates/{checkCollectionTemplateId}] Get a single check collection template by id

NameRequiredDescriptionDefault
x-trace-idNoIdentifier to trace group of requests.
checkCollectionTemplateIdYesCheck collection template's id

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered elsewhere. The description adds only the REST path, with no information on error behavior for missing ids, auth requirements, or what the template contains.

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

Conciseness4/5

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

Two short lines with the purpose front-loaded and nothing extraneous. The bracketed URL and the restated title 'Get check' duplicate what the name and endpoint already convey, but the waste is minimal.

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

Completeness3/5

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

For a simple single-parameter read this is largely adequate, and annotations cover the safety profile. However, with no output schema present, the description says nothing about what a template object contains or how a not-found id is handled, leaving a modest gap.

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

Parameters3/5

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

Schema description coverage is 100% — both checkCollectionTemplateId ('Check collection template's id') and x-trace-id are documented in the schema. The description adds no format, range, or sourcing guidance beyond what the schema already provides, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb ('Get') and resource ('a single check collection template by id'), which clearly separates it from the sibling list_ext_check_collection_templates bulk lister. It does not explicitly name the sibling, so it falls short of a 5.

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

Usage Guidelines3/5

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

The phrase 'by id' implies the tool is for fetching one known template, which indirectly distinguishes it from the list variant, but there is no explicit when-to-use/when-not guidance or mention of the alternative tool for discovering ids.

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

get_ext_remedyC
Read-onlyIdempotent

Get remedy [GET /v1/troubleshooting/remedies/{remedyId}] Get a single remedy by id

NameRequiredDescriptionDefault
remedyIdYesRemedy's id
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds only the raw endpoint path and repeats the title, offering no extra behavioral context such as error behavior for an unknown id or whether a missing remedy errors versus returns empty.

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

Conciseness4/5

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

Two short lines, front-loaded with the action and scope, with no filler sentences. The bracketed HTTP path is mostly redundant with the tool contract but costs little.

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

Completeness3/5

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

For a simple single-resource read with a fully described schema and read-only annotations, the essentials are present. It is still thin on output expectations (no output schema exists) and never defines what a remedy is in this troubleshooting domain.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 'remedyId' and 'x-trace-id' are already documented in the schema. The description's 'by id' merely restates the required parameter, 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?

States a specific verb ('Get') and resource ('remedy') scoped to a single item by id, which distinguishes it from the sibling list_ext_remedies. It does not, however, distinguish it from get_ext_check or clarify what a 'remedy' object is relative to the other troubleshooting 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?

There is no guidance on when to call this versus list_ext_remedies, get_ext_check, or start_ext_remedy, nor any prerequisite such as needing an existing remedy id. The agent must infer the fit from the get/list naming pattern alone.

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

get_object_storage_credentialsB
Read-onlyIdempotent

Get S3 compatible object storage credentials. [GET /v1/users/{userId}/object-storages/{objectStorageId}/credentials/{credentialId}] Get S3 compatible object storage credentials for accessing it via S3 compatible tools like aws cli.

NameRequiredDescriptionDefault
userIdYesThe identifier of the user.
x-trace-idNoIdentifier to trace group of requests.
credentialIdYesThe ID of the object storage credential
objectStorageIdYesThe identifier of the S3 object storage

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds that the result is meant for S3-compatible tooling, hinting the response contains usable secret material, but it does not state sensitivity (secret key exposure), permission requirements, or whether retrieval is audited — meaningful gaps for a credentials-fetching 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?

Short overall and the endpoint template is front-loaded usefully, but the second sentence largely restates the first ('Get S3 compatible object storage credentials' repeated) with only the aws-cli detail as new information. Minor redundancy.

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

Completeness3/5

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

With no output schema, the description should hint at what a credential object contains (access key, secret key, endpoints) so the agent knows what to expect. Annotations cover safety and the schema covers inputs, but return-value shape is left unexplained.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are documented. The URL template [GET /v1/users/{userId}/object-storages/{objectStorageId}/credentials/{credentialId}] adds the useful detail that the three IDs form a hierarchical path, but nothing beyond that about parameter formats.

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?

States a specific verb and resource (get S3 compatible object storage credentials) and the endpoint template shows it fetches a single credential by ID, implicitly distinguishing it from list_object_storage_credentials. It does not explicitly name the sibling, but the resource and scope are unambiguous.

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

Usage Guidelines3/5

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

The clause 'for accessing it via S3 compatible tools like `aws` cli' implies the intended purpose of retrieving credentials, which is mild usage guidance. There is no explicit when-to-use versus list_object_storage_credentials or regenerate_object_storage_credentials, and no stated prerequisites.

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

instance_rescueA

Rescue a compute instance / resource identified by its id [POST /v1/compute/instances/{instanceId}/actions/rescue] You can reboot your instance in rescue mode to resolve system issues. Rescue system is Linux based and its booted instead of your regular operating system. The disk containing your operating sytstem, software and your data is already mounted for you to access and repair/modify files. After a reboot your compute instance will boot your operating system. Please note that this is for advanced users.

NameRequiredDescriptionDefault
bodyYesJSON request body
instanceIdYesThe identifier of the compute instance / resource to be started in rescue mode.
x-trace-idNoIdentifier to trace group of requests.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare the mutation/safety profile, and the description adds substantive behavior: a Linux rescue system boots instead of the OS, the disk is mounted for repair, and a subsequent reboot returns to normal boot. It omits prerequisites (must the instance be running?) and how long rescue mode persists, but it goes well beyond the annotation coverage.

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

Conciseness4/5

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

Front-loaded with the verb/resource/endpoint, then a single explanatory paragraph that earns its place by defining rescue mode. Mildly verbose and contains a typo ('sytstem'), but no filler sentences.

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 3-parameter mutation with a nested body, no output schema, and full schema descriptions, the definition covers what the operation does and its effect on the instance. Missing only ancillary details like permission requirements and preconditions.

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

Parameters3/5

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

Schema coverage is 100% and each of sshKeys, userData, rootPassword and instanceId is documented in the schema itself; the description only restates the instance identifier and adds no extra meaning to the body parameters, so baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Rescue a compute instance / resource identified by its id') plus the underlying endpoint, and the second sentence explains what rescue mode actually is, so an agent can distinguish it from sibling operations like instance_restart or reinstall_instance.

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

Usage Guidelines4/5

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

It gives a clear use scenario ('reboot your instance in rescue mode to resolve system issues') and describes the recovery workflow, but never explicitly contrasts with alternatives such as reinstall_instance or snapshot rollback, so routing is implied rather than stated.

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

instance_reset_passwordB

Reset password for a compute instance / resource referenced by an id [POST /v1/compute/instances/{instanceId}/actions/resetPassword] Reset password for a compute instance / resource referenced by an id. This will reset the current password to the password that you provided in the body of this request.

NameRequiredDescriptionDefault
bodyYesJSON request body
instanceIdYesThe identifier of the compute instance / resource to be started in rescue mode.
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, so the safety profile is covered. The description adds useful effect context — the current password is replaced by the value supplied in the request body — but omits side effects, permission requirements, and the fact that the instance may need a restart; it also says "the password that you provided in the body" while the body actually takes a `secretId` reference, which is misleading.

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 opening line duplicates the title/endpoint, and the second sentence then restates the same purpose before adding the one new fact (the password is replaced). Front-loading is fine, but the redundancy costs a sentence that earns nothing.

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 non-idempotent mutation with a nested body and no output schema, the description covers the basic effect but omits what the caller should expect afterwards (restart requirement, timing), permission/authentication needs, and the surprising presence of SSH key and cloud-init fields in a "reset password" call.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters are documented in the schema and the baseline is 3. The description adds nothing about `instanceId` or the nested body fields, and notably does not explain that `sshKeys`/`userData` are also accepted alongside the password reset.

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?

States a specific verb and resource ("Reset password for a compute instance / resource referenced by an id") and includes the REST endpoint, so the agent knows exactly which operation this is. It does not, however, differentiate itself from the sibling tool `reset_password` (which appears to target user accounts), leaving a real name-collision ambiguity unresolved.

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 contains no when-to-use/when-not guidance, no prerequisites (e.g. required instance state, whether a reboot is needed), and no mention of the similarly named sibling `reset_password` that an agent could easily pick by mistake. Usage is only inferable from the verb itself.

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

instance_restartB

Restart a compute instance / resource identified by its id. [POST /v1/compute/instances/{instanceId}/actions/restart] To restart a compute instance that has been identified by its id, you should perform a restart action on it.

NameRequiredDescriptionDefault
instanceIdYesThe identifier of the compute instance / resource to be started in rescue mode.
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the HTTP POST endpoint path, which is useful context not present in annotations, but it does not disclose disruption/downtime behavior or any permission requirements.

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

Conciseness3/5

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

The endpoint path is front-loaded and useful, but the second sentence ('To restart ... you should perform a restart action on it') is a tautology that repeats the first sentence without adding information. The description would be stronger if the redundant sentence were replaced with usage or behavioral context.

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

Completeness3/5

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

For a simple two-parameter action tool with complete schema coverage and annotations covering safety, the description is minimally adequate. It omits what an agent likely needs to choose correctly among many instance action siblings: expected disruption, when restart is appropriate versus stop/start, and any prerequisites.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are fully documented in the schema. The description says only that the instance is identified by its id, adding no syntax, format, or edge-case meaning beyond what the schema already provides, so the baseline 3 applies.

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

Purpose4/5

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

The first sentence names a specific verb (restart) and resource (compute instance), which distinguishes it from siblings such as instance_stop, instance_shutdown, and instance_start. However, the phrase 'compute instance / resource' introduces ambiguity, and the description never explicitly contrasts itself with those action siblings.

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

Usage Guidelines2/5

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

There is no guidance on when to choose restart versus stopping and starting, shutting down, or using rescue mode. No prerequisites, cautions, or exclusion conditions are stated.

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

instance_shutdownA

Shutdown compute instance / resource by its id [POST /v1/compute/instances/{instanceId}/actions/shutdown] Shutdown an compute instance / resource. This is similar to pressing the power button on a physical machine. This will send an ACPI event for the guest OS, which should then proceed to a clean shutdown.

NameRequiredDescriptionDefault
instanceIdYesThe identifier of the compute instance / resource to be started in rescue mode.
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.7/5.0
Behavior4/5

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

Goes beyond the annotations by explaining the mechanism: an ACPI event is sent for the guest OS to perform a clean shutdown, which tells the agent this is graceful rather than an immediate power cut. It omits whether the call is asynchronous, what happens if the guest ignores ACPI, or what is returned.

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

Conciseness5/5

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

Two compact sentences, front-loaded with the action and identifier, then the behavioral explanation. The only flaw is a minor restatement of the tool name in the second sentence.

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

Completeness3/5

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

Adequate for a simple single-parameter mutation with no output schema, but it leaves out async/completion semantics and any contrast with instance_stop or instance_restart, which are the main decision points for an agent.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are already documented; the description only restates 'by its id'. Baseline 3 applies since the schema does the heavy lifting.

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

Purpose4/5

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

States a specific verb+resource ('Shutdown compute instance / resource by its id') and includes the endpoint. However, it never distinguishes itself from the close sibling instance_stop, which an agent must choose between.

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 power-button analogy and 'ACPI event ... clean shutdown' imply graceful shutdown, hinting at when this is preferable to a hard stop, but no alternative is named and no exclusion condition is given. Usage is inferred rather than stated.

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

instance_startB

Start a compute instance / resource identified by its id [POST /v1/compute/instances/{instanceId}/actions/start] Starting a compute instance / resource is like powering on a real server. If the compute instance / resource is already started nothing will happen. You may check the current status anytime when getting information about a compute instance / resource.

NameRequiredDescriptionDefault
instanceIdYesThe identifier of the compute instance / resource to be started in rescue mode.
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.4/5.0
Behavior1/5

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

The description says that if the instance is already started, nothing will happen, which implies idempotent behavior on repeated start calls. This conflicts with the annotation idempotentHint=false, creating contradictory expectations for the agent.

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 short and front-loads the action and endpoint, followed by useful behavioral notes. It is slightly repetitive with 'compute instance / resource' and includes the endpoint path inline, but there is no major waste.

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

Completeness3/5

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

For a simple start action with complete schema coverage and annotations covering safety traits, the description covers the main behavior and status-check guidance. However, it does not state what a successful response contains, and the idempotency contradiction leaves the behavioral contract unclear.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 parameter meaning is already provided by the schema. The description only restates that the instance is identified by id and adds no syntax, constraints, or format details beyond the schema.

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

Purpose5/5

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

The description uses a specific verb and resource: start a compute instance/resource identified by id. It also includes the concrete endpoint, leaving no ambiguity about the 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?

It explains the power-on use case and says an already-started instance results in no action, and it points to retrieving instance information to check status. It does not explicitly distinguish when to use instance_restart, instance_stop, or instance_shutdown instead.

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

instance_stopA

Stop compute instance / resource by its id [POST /v1/compute/instances/{instanceId}/actions/stop] Stopping a compute instance / resource is like powering off a real server. So please be aware that data may be lost. Alternatively you may log in and shut your compute instance / resource gracefully via the operating system. If the compute instance / resource is already stopped nothing will happen. You may check the current status anytime when getting information about a compute instance / resource.

NameRequiredDescriptionDefault
instanceIdYesThe identifier of the compute instance / resource to be started in rescue mode.
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.8/5.0
Behavior4/5

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

With annotations present, the description still adds real value: it warns that data may be lost (a risk not conveyed by destructiveHint=false), explains that stopping an already-stopped instance is a no-op, and points at status-checking afterwards. There is mild tension with idempotentHint=false and destructiveHint=false, but the warnings are additive context rather than a flat contradiction.

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?

Front-loaded with verb, resource, and endpoint, which is good, but the repeated 'compute instance / resource' phrasing bloats every sentence and the graceful-shutdown advice is verbose. The essential warning about data loss could be stated in far fewer 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 mutation tool with no output schema, the description covers the important unknowns: data-loss risk, no-op behavior when already stopped, and how to verify state afterwards. It omits permissions/auth requirements and whether the call returns immediately or is asynchronous, which are the remaining gaps.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description usefully says the id identifies the instance to stop, which implicitly corrects the schema's copy-paste error ('to be started in rescue mode'), but it adds nothing about x-trace-id or any id format expectations.

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?

States a specific verb and resource ('Stop compute instance / resource by its id') plus the concrete endpoint, so the agent knows exactly what operation is performed. It does not explicitly name the closely related sibling instance_shutdown, which is the tool an agent would most likely confuse this with; the graceful alternative is described generically ('via the operating system') rather than as a sibling tool.

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?

Gives clear context for when this hard power-off is appropriate and points to a gentler alternative (logging in and shutting down via the OS). It also states the already-stopped no-op case and suggests checking status via a retrieve call. It stops short of naming the sibling tools (instance_shutdown, instance_restart) that would make the choice unambiguous.

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

list_domainsB
Read-onlyIdempotent

List all domains [GET /v1/domains] List and filter all your domains

NameRequiredDescriptionDefault
sldNoFilter as substring match for domain sld.
tldNoFilter as substring match for domain tld.
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
statusNoFilter domains by status
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
handleIdNoFilter domains by contact/handle id. Matches the handle as owner, admin, tech, or zone contact.
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is fully covered elsewhere. The description adds only the raw path GET /v1/domains and reveals nothing about pagination defaults, result ordering, or how multiple filters combine — no behavioral value beyond the annotations.

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

Conciseness4/5

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

Two short lines with the verb-and-resource front-loaded; nothing is wasted. The bracketed endpoint path is slightly redundant with the tool name but is compact.

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

Completeness3/5

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

With 8 optional parameters, full schema coverage and annotations present, the description is technically sufficient to call the tool. However it says nothing about how the filters interact or how paginated results are returned, which an agent listing domains would likely want.

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

Parameters3/5

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

Schema description coverage is 100%, so all 8 parameters including the status enum and orderBy format are already fully documented in the schema. The description adds no parameter meaning of its own, making the baseline 3 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?

States a specific verb (list) and resource (domains) with a clear scope ('all your domains'), and the endpoint notation confirms a collection read. It does not explicitly distinguish itself from the sibling retrieve_domain, though the word 'all' implies the distinction.

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

Usage Guidelines3/5

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

The phrase 'List and filter all your domains' implies the use case — bulk enumeration with optional filters — but there is no explicit statement of when to use this versus retrieve_domain for a single domain or list_pending_actions. Guidance is inferable rather than stated.

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

list_ext_check_collectionsB
Read-onlyIdempotent

List check collections [GET /v1/troubleshooting/check-collections] List and filter all check collections

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
objectIdNoID of the object, to be handled
objectTypeNoObject type to be handled
x-trace-idNoIdentifier to trace group of requests.
creationEndTimeNoEnd of search time range for created date
creationStartTimeNoStart of search time range for created date
modificationEndTimeNoEnd of search time range for modified date
excludeCheckStatusesNoCheck statuses to exclude
modificationStartTimeNoStart of search time range for modified date
checkCollectionTemplateIdNoCheck Collection Template for this check collection

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is fully covered structurally. The description adds only that results can be filtered broadly, and says nothing about pagination behavior, default page size, or what a returned check collection contains.

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?

It is short and front-loaded, but the three elements (title, endpoint path, sentence) restate each other; "List check collections" and "List and filter all check collections" are near-duplicates, and the bracketed GET path duplicates what the annotations already imply.

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

Completeness3/5

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

With 12 optional parameters and no output schema, the definition is minimally sufficient for calling the tool but does not describe the shape of a check collection, its statuses, or pagination semantics, leaving an agent to infer return content entirely.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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% across all 12 parameters, including the orderBy format string and enum values, so the schema carries the semantic load. The description contributes no parameter meaning beyond the word "filter," which matches the baseline for fully documented schemas.

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?

States a specific verb and resource (list check collections) and adds the filtering capability, which is enough to separate it from the singular `get_ext_check_collection` and from `list_ext_check_collection_templates`. It never explicitly names those siblings, so differentiation is implied by the noun alone rather than stated.

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

Usage Guidelines3/5

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

"List and filter all check collections" implies the browse/filter use case but gives no when-to-use versus get_ext_check_collection (single fetch) or the template-list variant, and no exclusions or preconditions. Usage is inferable but not guided.

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

list_ext_check_collection_templatesB
Read-onlyIdempotent

List check collection templates [GET /v1/troubleshooting/check-collection-templates] List and filter all check collection templates

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
objectTypeNoObject type for which the check template can be used
x-trace-idNoIdentifier to trace group of requests.
creationEndTimeNoEnd of search time range for created date
creationStartTimeNoStart of search time range for created date
modificationEndTimeNoEnd of search time range for modified date
modificationStartTimeNoStart of search time range for modified date

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description adds only the bare hint that filtering is supported; it says nothing about pagination behavior, default page size, sort defaults, or what a result set contains, so it barely exceeds what the structured fields provide.

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

Conciseness4/5

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

Two short lines with the resource front-loaded and no filler prose. Slight redundancy: the title, the first phrase, and the second sentence all restate the same resource name.

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?

Annotations and a fully documented schema make the tool callable, and no output schema exists so return-value detail isn't mandatory. Still, a list-and-filter tool with 9 optional parameters would benefit from stating that results are a paginated collection of templates and how filtering by objectType/time ranges scopes them.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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% across all 9 parameters, including page/size/orderBy and the creation/modification time ranges, so the schema carries the semantics. The description adds no parameter-level meaning beyond the word "filter".

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?

States a specific verb and resource (list check collection templates) and repeats it in slightly expanded form with filtering. An agent can distinguish it from list_ext_check_collections and get_ext_check_collection_template by the name/description alone, though the description never makes that distinction explicit.

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?

"List and filter all check collection templates" implies the tool is for browsing filtered template catalogs, but there is no statement of when to use it instead of get_ext_check_collection_template or list_ext_check_collections, and no prerequisites or exclusions.

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

list_ext_checksC
Read-onlyIdempotent

List check [GET /v1/troubleshooting/checks] List and filter all check

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
statusNoStatus of the handle
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
objectIdNoID of the object, to be handled
objectTypeNoObject type to be handled
x-trace-idNoIdentifier to trace group of requests.
checkTemplateIdNoCheck Template for this check
creationEndTimeNoEnd of search time range for created date
checkCollectionIdNoID of check collection if started in scope of a collection
creationStartTimeNoStart of search time range for created date
modificationEndTimeNoEnd of search time range for modified date
modificationStartTimeNoStart of search time range for modified date

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds only the HTTP method/path; it says nothing about pagination behavior, default page size, or whether unfiltered calls return everything.

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?

Very short, but wasteful: 'List check' and 'List and filter all check' restate each other, and the phrase is ungrammatical. The endpoint breadcrumb is useful and front-loaded, but the payload beyond it is near-zero.

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 13-parameter list tool with no output schema, the description gives no sense of what a 'check' is, what result fields come back, or how paging/ordering interact. The complete schema descriptions carry almost the entire burden here.

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

Parameters3/5

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

Schema description coverage is 100%, so all 13 parameters (including enums for status and objectType, and the orderBy format) are already documented in the schema. The description adds no parameter meaning beyond the word 'filter', so baseline 3 applies.

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 states a verb+resource (list checks, with filtering) and includes the endpoint GET /v1/troubleshooting/checks, which confirms a read operation. However, 'check' is never defined, and nothing distinguishes this from sibling get_ext_check or list_ext_check_collections beyond the plural 'all'.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance. The agent is left to infer that this is the bulk enumeration tool versus get_ext_check (single check) and list_ext_check_collections (collections) purely from the names.

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

list_ext_remediesC
Read-onlyIdempotent

List remedy [GET /v1/troubleshooting/remedies] List and filter all remedy

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
statusNoStatus of the handle
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
objectIdNoID of the object, to be handled
objectTypeNoObject type to be handled
x-trace-idNoIdentifier to trace group of requests.
creationEndTimeNoEnd of search time range for created date
remedyTemplateIdNoRemedy Template for this check
creationStartTimeNoStart of search time range for created date
remedyCollectionIdNoID of remedy collection if started in scope of a collection
modificationEndTimeNoEnd of search time range for modified date
modificationStartTimeNoStart of search time range for modified date

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered by structured data. The description adds nothing beyond them — no mention of default page size, whether results are sorted, or what a 'remedy' object contains. With a lower bar due to annotations, this still falls short of adding any behavioral context.

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

Conciseness3/5

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

It is very short, but not efficiently so: the endpoint line and 'List and filter all remedy' are redundant with each other and the latter is ungrammatical. There is no information beyond the minimum, so brevity here reflects under-specification rather than tight writing.

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 13-parameter read-only listing tool with no output schema, the description should at least explain what a remedy is, how filters interact, and what a default call returns. None of that is present, leaving the agent to infer everything from parameter names.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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% across all 13 parameters, so the schema carries full semantics for pagination, status enum, ordering format, and time ranges. The description adds no parameter meaning (e.g., default page/size, whether filters combine with AND), so baseline 3 applies.

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 states a verb+resource ('List ... all remedy') and even names the HTTP endpoint, so the purpose is identifiable. However, it never distinguishes this list operation from siblings like get_ext_remedy, start_ext_remedy, or cancel_ext_remedy, and the phrasing 'List and filter all remedy' is a near-restatement of the name.

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

Usage Guidelines2/5

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

It implies the tool is a filtered listing but gives no guidance on when to use it versus get_ext_remedy (fetch one) or start_ext_remedy/cancel_ext_remedy (actions). No prerequisites, pagination expectations, or scoping notes are provided.

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

list_handlesB
Read-onlyIdempotent

List all handles [GET /v1/domains/handles] List and filter all your handles

NameRequiredDescriptionDefault
nameNoFilter as substring match for handle name.
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
searchNofull text search on handles on handleid, organization name, handlename
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
lastNameNoFilter handles by last name.
countriesNolist of country codes to filter handles that are available in these countries (comma separated)
firstNameNoFilter handles by first name.
handleTypeNoFilter handles by type, e.g. person, organization.
x-trace-idNoIdentifier to trace group of requests.
showDefaultsNoFilter handles to show or not the public handles

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the GET endpoint and filter scope, but does not disclose pagination behavior, return format, 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 very short and front-loads the core action. There is slight redundancy between 'List all handles' and 'List and filter all your handles', but it remains efficient.

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

Completeness3/5

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

With 11 optional parameters and no output schema, the description is minimally adequate: all parameters are documented in the schema, but the description does not explain return values, pagination defaults, or what a handle represents. It covers the basic purpose but leaves contextual gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so all 11 parameters are documented in the schema. The description only restates that filtering is possible and adds no parameter-specific meaning beyond what the schema provides, making the baseline score of 3 appropriate.

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

Purpose4/5

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

The description states a specific verb and resource: 'List all handles' with filtering. It clearly identifies the operation as listing handles, though it does not explicitly differentiate from sibling tools like retrieve_handle or retrieve_handles_audits_list.

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

Usage Guidelines3/5

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

The phrase 'List and filter all your handles' implies when to use the tool, but there is no explicit guidance on when to choose this over retrieve_handle or other sibling tools. 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.

list_object_storage_credentialsB
Read-onlyIdempotent

Get list of S3 compatible object storage credentials for user. [GET /v1/users/{userId}/object-storages/credentials] Get list of S3 compatible object storage credentials for accessing it via S3 compatible tools like aws cli.

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
userIdYesThe identifier of the user.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
regionNameNoFilter for Object Storage by regions. Available regions: Asia (Singapore), European Union, United States (Central)
x-trace-idNoIdentifier to trace group of requests.
displayNameNoFilter for Object Storage by his displayName.
objectStorageIdNoThe identifier of the S3 object storage

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, covering the safety profile. The description adds little beyond that: it does not disclose that the response contains sensitive credential material, nor how pagination behaves despite page/size parameters, which is the most important behavioral fact for a credentials-listing call.

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?

Front-loaded with the core action, but the sentence is needlessly duplicated ('Get list of S3 compatible object storage credentials' appears twice) and a raw endpoint string is embedded. Roughly half the text is redundant restatement rather than new information.

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

Completeness4/5

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

For a parameterized read-only list tool with full schema coverage and no output schema, the description covers the essential what and where. The notable gap is that it never says whether returned credentials are masked or plaintext, or how paging should be driven, which matters for a secrets-adjacent endpoint.

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

Parameters3/5

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

Schema description coverage is 100%, so all eight parameters (page, size, orderBy, regionName, displayName, objectStorageId, x-trace-id, userId) are already documented. The description only reinforces that the listing is scoped to a user; it adds no filtering or ordering semantics beyond the schema. Baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb and resource ('Get list of S3 compatible object storage credentials for user') and scopes it to a user via the path. However, the sibling 'get_object_storage_credentials' is never mentioned, so the agent cannot tell from the description alone which one returns a list versus a single credential.

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 usage context is implied: list credentials so they can be used with S3-compatible tools like the `aws` cli. There is no explicit statement of when to prefer this over 'get_object_storage_credentials' or 'regenerate_object_storage_credentials', and no prerequisites or exclusions.

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

list_pending_actionsA
Read-onlyIdempotent

List pending domain actions [GET /v1/domains/pending-actions] List the calling customer's domains with an unacknowledged outbound transfer (ACK/NACK) pending. Live OpusDNS read for OpusDNS-routed customers; empty payload (no upstream call) for everyone else.

NameRequiredDescriptionDefault
x-trace-idNoIdentifier to trace group of requests.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely non-obvious behavior beyond that: a live upstream OpusDNS read for routed customers and an empty payload with no upstream call for everyone else, which explains why an apparently empty result may be normal.

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

Conciseness4/5

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

Two compact sentences, with the resource scope front-loaded and the behavioral caveat second. The bracketed '[GET /v1/domains/pending-actions]' is minor implementation detail but does not pad meaningfully.

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

Completeness4/5

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

For a read-only list tool with full annotation coverage and no output schema, the description covers purpose, scope, and the empty-result behavior. Only the return shape is unaddressed, which is a mild gap in the absence of an output schema.

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

Parameters3/5

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

There is a single optional parameter (x-trace-id) with 100% schema description coverage, so the schema carries its meaning entirely. The description adds nothing about the parameter, making the documented baseline of 3 the correct 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 gives a specific verb and resource ('List pending domain actions') and then defines the resource precisely: domains with an unacknowledged outbound transfer (ACK/NACK) pending. That scoping lets an agent distinguish it from the sibling list_domains without inspecting either schema.

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 condition that selects this tool is stated explicitly — you want domains awaiting ACK/NACK — which implicitly routes the agent away from plain list_domains. It does not name the alternative or state when not to use it, so it falls short of a full 5.

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

list_user_accountsC
Read-onlyIdempotent

List of your accounts [GET /v1/me/accounts] List of your accounts

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
emailNoFilter as substring match for user emails.
defaultNoFilter if default account or not.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered elsewhere. The description adds no behavioral context beyond the raw endpoint path: no mention of pagination defaults, result size, ordering behavior, or what an "account" represents.

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?

Very short, but the same phrase is printed twice, so the single useful sentence is duplicated rather than front-loaded with new information. Brevity here reflects under-specification rather than discipline.

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 six parameters, no output schema, and a filterable/paginated list endpoint, the description leaves the agent without any sense of what comes back or how the filters interact. An agent can call it, but only by reading the schema from scratch.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 six parameters (page, size, email, default, orderBy, x-trace-id) are fully documented in the schema. The description contributes nothing about the filtering or paging capability, which is acceptable only because the schema carries that burden.

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

Purpose2/5

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

"List of your accounts" states a resource and implies a read, but it is essentially a restatement of the tool name `list_user_accounts` with no additional specificity. The appended endpoint path adds nothing an agent could not infer from name plus annotations.

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 versus alternatives. The possessive "your" weakly implies accounts scoped to the calling user (as opposed to `retrieve_user_list`), but this is inference, not instruction, and related tools like `switch_account` and `make_default_account` are never referenced.

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

make_default_accountC

Make user account default [PATCH /v1/me/account/{tenantId}/{customerId}] Make user account default

NameRequiredDescriptionDefault
bodyYesJSON request body
tenantIdYesTenant ID.
customerIdYesCustomer ID.
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true and idempotentHint=false, so the safety profile is covered. The description adds nothing beyond that: it does not say whether the previously-default account is unset, whether default=false unsets the flag, what permissions are needed, or what the response contains — notable gaps for a mutation.

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?

Very short, but the core sentence is duplicated verbatim ('Make user account default' appears twice), and the duplicated phrase adds no information. The endpoint path is the only non-redundant content.

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 non-idempotent, open-world mutation with a nested body and no output schema, the description leaves key behavior unstated: the effect on any existing default account, the meaning of default=false, and what is returned. It is not sufficient on its own.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 tenantId, customerId, x-trace-id and the nested body.default boolean all documented, so the schema does the heavy lifting and the baseline of 3 applies. The description contributes no additional semantics about the path identifiers or the boolean's effect.

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 restates the tool name ('Make user account default') and appends the HTTP route PATCH /v1/me/account/{tenantId}/{customerId}, which confirms it mutates the caller's account record. However, it never distinguishes this from nearby siblings such as switch_account or list_user_accounts, so an agent cannot tell from the text alone which of these to pick.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool, no prerequisites (e.g. the account must already belong to the caller), and no mention of alternatives like switch_account. The agent must infer usage entirely from the name.

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

order_domainC

Create or transfer a domain [POST /v1/domains] Create or transfer a domain

NameRequiredDescriptionDefault
bodyYesJSON request body
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true, so the safety profile is partly covered. However, the description adds nothing about the consequences of a non-idempotent, real-world purchase operation — no note that repeated calls can create duplicate orders, that transfers require an authCode, or that this is a committing/billable action.

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

Conciseness2/5

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

The single sentence is repeated twice, including an endpoint path, so half the text is pure duplication. It is short but not efficient — no front-loaded detail about the two distinct modes (create vs transfer).

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 non-idempotent, open-world mutation with a deeply nested required body and no output schema, the description should say what the call commits to and how create and transfer differ (e.g. authCode usage). It supplies none of that, leaving the agent to infer behavior from the schema alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 nested fields (handles, nameservers, authCode, resourceId/resourceType) are individually documented, so the schema does the work. The description adds no semantics beyond it, which lands at the baseline 3.

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 names a concrete verb pair and resource ("Create or transfer a domain"), so the basic action is clear. But it is a verbatim restatement of the annotation title and offers nothing to distinguish it from siblings like list_domains, update_domain, suggest_domains, or validate_domain_availability.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus validate_domain_availability (pre-check), suggest_domains, or update_domain, and no mention of when the 'transfer' path applies. The agent must infer the entire decision from the tool name.

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

patch_firewallC

Update a firewall by id [PATCH /v1/firewalls/{firewallId}] Update a firewall by id in your account.

NameRequiredDescriptionDefault
bodyYesJSON request body
firewallIdYesThe identifier of the firewall
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the safety profile is partially covered. The description adds no behavioral context beyond the endpoint, such as what PATCH semantics mean, which fields are updated, or permission requirements.

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

Conciseness3/5

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

The description is short but redundant: 'Update a firewall by id' is repeated in two sentences. The endpoint bracket is useful, but the repetition weakens efficiency.

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

Completeness3/5

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

For a mutation tool with annotations and a fully described schema, the definition is minimally adequate. However, it lacks key contextual details such as partial-update semantics, differentiation from put_firewall, and any indication of required permissions or side effects.

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

Parameters3/5

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

Schema coverage is 100%, so all parameters are already documented in the schema, including nested body fields. The description adds no additional meaning about parameter usage or format, 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.

Purpose4/5

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

States a specific verb (Update) and resource (firewall by id), and includes the HTTP endpoint. However, it does not distinguish this partial-update tool from the sibling put_firewall, leaving ambiguity about when each should be used.

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 offers no guidance on when to use this tool versus put_firewall or other firewall operations. It only restates the action without any context, prerequisites, or alternatives.

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

patch_instanceC

Update specific instance [PATCH /v1/compute/instances/{instanceId}] Update specific instance by instanceId.

NameRequiredDescriptionDefault
bodyYesJSON request body
instanceIdYesThe identifier of the instance
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already disclose that this is a non-read-only, non-idempotent, open-world, non-destructive mutation. The description adds the PATCH endpoint, but it does not explain partial-update semantics, what gets changed, auth requirements, response behavior, or any other trait beyond the annotations.

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

Conciseness3/5

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

It is short and front-loaded, but the second sentence ('Update specific instance by instanceId') is redundant with the first and the title. The endpoint is useful, but the overall structure wastes space on repetition rather than adding information.

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

Completeness3/5

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

For a PATCH mutation with full schema coverage, no output schema, and safety annotations, the definition is minimally adequate. It is still thin because it does not clarify partial-update behavior or the scope of the update beyond what the schema and annotations already provide.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 instanceId and body/displayName already documented. The description only repeats that the operation is by instanceId and adds no further meaning about the body or displayName parameter.

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 states the verb and resource ('Update specific instance') and includes the PATCH endpoint, so the broad action is identifiable. However, it largely restates the title/name and gives no detail about what aspect of the instance can be updated, so it remains vague beyond the obvious.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as update_image, update_snapshot, or other instance actions. The only implied usage is that it patches an existing instance by ID.

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

patch_private_networkC

Update a Private Network by id [PATCH /v1/private-networks/{privateNetworkId}] Update a Private Network by id in your account.

NameRequiredDescriptionDefault
bodyYesJSON request body
x-trace-idNoIdentifier to trace group of requests.
privateNetworkIdYesThe identifier of the Private Network

TDQS

C2.9/5.0
Behavior2/5

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

The annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=true. The description adds only the HTTP method (PATCH) and endpoint, but does not explain partial-update behavior, required permissions, effects of omitted fields, or any other behavioral context beyond what the annotations and schema already cover.

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 short and front-loads the verb, but the second sentence ('Update a Private Network by id in your account') is essentially redundant with the first and adds no new information. The endpoint notation is useful, but the repetition reduces efficiency.

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 rich schema, annotations, and absence of an output schema, the description is minimally adequate for invocation. However, it does not state whether this is a full or partial update, what fields can be changed, or any operational constraints, leaving gaps that a mutation tool description could reasonably fill.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema itself documents the privateNetworkId, body fields, and x-trace-id. The description adds no parameter-level meaning, which is acceptable given the high schema coverage baseline.

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

Purpose4/5

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

The description gives a specific verb and resource: 'Update a Private Network by id', plus the PATCH endpoint. It does not explicitly differentiate this tool from sibling tools like create_private_network or retrieve_private_network, but the update action is clear.

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

Usage Guidelines2/5

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

It provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The only implied usage is that an existing Private Network is being updated, which is already obvious from the tool name.

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

put_firewallB
Idempotent

Update specific firewall rules [PUT /v1/firewalls/{firewallId}] Set rules for a specific firewall. Currently only inbound rules are allowed to be configured.

NameRequiredDescriptionDefault
bodyYesJSON request body
firewallIdYesThe identifier of the firewall
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare idempotent=true, destructive=false, openWorld=true, so the safety profile is covered. The description usefully adds that only inbound rules can be configured, but omits the critical PUT semantic: whether existing rules are replaced wholesale or merged. For a ruleset-replacing call, that omission is significant.

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

Conciseness4/5

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

Two short sentences with the endpoint and the key constraint front-loaded; no filler. The opening clause mildly restates the title but earns its place by naming the resource.

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

Completeness3/5

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

The rich schema covers the body structure and annotations cover safety, so little is missing. The remaining gap is the replace-vs-merge behavior of a PUT on the ruleset, which the agent must know before invoking it and which nothing else in the definition supplies.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 nested body schema documents inbound rules, enums, CIDR handling, and port ranges in detail. The description adds nothing beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Update specific firewall rules') plus the endpoint, and adds the constraint that only inbound rules are configurable. However, it never distinguishes itself from the sibling patch_firewall, which an agent would naturally confuse with this tool.

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 versus patch_firewall or create_firewall, and no prerequisites or exclusions. The only constraint given ('only inbound rules are allowed') is a data-model limitation, not usage routing.

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

regenerate_object_storage_credentialsC

Regenerates secret key of specified user for the S3 compatible object storages. [PATCH /v1/users/{userId}/object-storages/{objectStorageId}/credentials/{credentialId}] Regenerates secret key of specified user for the a specific S3 compatible object storages.

NameRequiredDescriptionDefault
userIdYesThe identifier of the user.
x-trace-idNoIdentifier to trace group of requests.
credentialIdYesThe ID of the object storage credential
objectStorageIdYesThe identifier of the S3 object storage

TDQS

C2.7/5.0
Behavior2/5

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

Annotations cover readOnly=false, idempotent=false, destructive=false, openWorld=true, but the single most important behavior is omitted: that regeneration immediately invalidates the existing secret key and breaks any client using it. The description also never says the new secret is returned in the response, and destructiveHint=false is left unqualified despite a key being unrecoverable.

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

Conciseness2/5

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

Two sentences where the second is a near-verbatim restatement of the first, including a typo ('for the a specific'). The endpoint path is the only incremental content; the duplication is pure waste.

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

Completeness2/5

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

A mutation tool with no output schema and no annotation-based coverage of consequences. An agent cannot tell from the description that the old key stops working or what the call returns, which are the facts needed to invoke it responsibly.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 three required identifiers plus x-trace-id are already documented. The description adds no semantics about identifier formats or the meaning of credentialId beyond the schema baseline.

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?

States a specific verb ('Regenerates secret key') plus the resource (S3-compatible object storage credentials) and scopes it to a user. It is distinguishable from retrieve/get/list object storage credentials siblings, though nothing explicitly names those alternatives.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance. Nothing says whether this is for lost keys, rotation policy, compromise response, or what prerequisites (ownership, permissions) are required before calling.

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

reinstall_instanceB
Idempotent

Reinstall specific instance [PUT /v1/compute/instances/{instanceId}] You can reinstall a specific instance with a new image and optionally add ssh keys, a root password or cloud-init.

NameRequiredDescriptionDefault
bodyYesJSON request body
instanceIdYesThe identifier of the instance
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3/5.0
Behavior1/5

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

The annotations declare destructiveHint=false, but the description describes reinstalling the instance with a new image, which strongly implies replacing or destroying existing instance state. The description does not disclose data loss, downtime, or other critical side effects, creating a safety contradiction.

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

Conciseness5/5

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

The description is short, front-loaded, and free of filler. It states the endpoint and the main capability in two compact sentences.

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 reinstall operation, the description omits essential operational context such as whether existing data is destroyed, whether the instance must be stopped, and what happens to networking or attached resources. The schema is rich, but the description is not complete enough for safe invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already explains instanceId and the body fields. The description adds a high-level mention of new image, SSH keys, root password, and cloud-init, but does not add syntax or format details beyond the schema.

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

Purpose5/5

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

The description gives a specific verb and resource: reinstall a specific compute instance. It also names the endpoint and the core action of using a new image, making it distinguishable from siblings such as create_instance or instance_restart.

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 explains what the tool can do but does not say when to use it versus alternatives such as create_instance, instance_restart, or instance_rescue. No prerequisites or when-not conditions are provided.

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

remove_handleC
DestructiveIdempotent

Remove specific handle [DELETE /v1/domains/handles/{handleId}] Remove specific handle

NameRequiredDescriptionDefault
handleIdYesThe identifier of the handle
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false, and openWorldHint=true, so the safety profile is covered externally. The description adds nothing beyond restating the DELETE endpoint: no disclosure of consequences (permanent removal, effect on existing domain registrations, whether a default/in-use handle can be removed) or error behavior.

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

Conciseness2/5

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

The description is short but wastes half its length: 'Remove specific handle' appears twice, once before and once after the path template. There is no front-loaded context telling the agent anything the tool name does not already say.

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?

This is a destructive, open-world delete operation with no output schema and no annotations-level detail about outcome or failure modes. The description should explain what is removed and any guard conditions; as written, an agent has only the name and endpoint to reason from.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 handleId and x-trace-id documented in the schema itself. The description only echoes '{handleId}' through the path template, so it adds no meaning beyond structured fields; baseline 3 applies.

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 names an operation and resource ('Remove specific handle') and the HTTP endpoint, so the basic action is inferable. But it is essentially a restatement of the tool name/title with no added specificity about what a 'handle' is in the domains context, and no distinction from siblings like update_handle, set_default_handle, or retrieve_handle beyond the verb 'remove'.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus update_handle or set_default_handle, and no mention of prerequisites or blocked conditions (e.g. a handle that is still in use or set as default). An agent must infer all usage context 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.

request_email_changeA

Request email change [POST /v1/users/{userId}/mail-change-requests] Request an email change for the specified user. Available to account owners and sub-users alike, but only for their own identity: the userId must be the subject of the access token.

NameRequiredDescriptionDefault
userIdYesThe identifier of the user.
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare this is a non-read-only, non-destructive, non-idempotent, open-world mutation; the description adds the key behavioral constraint that self-service only applies to the token's subject, which an agent could not infer from the schema. It doesn't say what the request produces (verification email, pending state), leaving a modest gap given annotations cover the safety profile.

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

Conciseness4/5

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

Two tight sentences front-loaded with the action and its endpoint, then the authorization rule. Minor redundancy from restating the title/tool name verbatim in the opening fragment, but no wasted prose.

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

Completeness3/5

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

For a mutation tool with no output schema, the description covers the authorization prerequisite but not the outcome: whether a verification email is dispatched, whether the change is pending/confirmed, or how conflicts (address already in use) behave. Adequate but with meaningful gaps for an agent deciding whether to call it.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, and the description earns above baseline by constraining userId semantically (must be the token subject) rather than restating the schema's generic "identifier of the user." x-trace-id remains unexplained in the description, but the schema documents it.

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

Purpose4/5

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

States a specific verb+resource ("Request an email change for the specified user") and pins the endpoint POST /v1/users/{userId}/mail-change-requests, which distinguishes it from other user-identity tools. It does not explicitly contrast with near neighbors like resend_email_verification or update_user, but the action 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 Guidelines4/5

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

Gives a clear eligibility rule: available to account owners and sub-users, but only for their own identity, with userId required to match the access token subject. That is strong when-to-use context, though it offers no exclusion pointing at an alternative tool for changing someone else's email.

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

request_recovery_codes_resetA

Request recovery codes reset [POST /v1/users/{userId}/recovery-codes-reset-requests] Marks the user to generate new recovery codes on next login. Only for the own identity: the userId must be the subject of the access token.

NameRequiredDescriptionDefault
userIdYesThe identifier of the user.
x-trace-idNoIdentifier to trace group of requests.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare this is a non-read-only, open-world, non-idempotent mutation. The description adds important behavioral context beyond annotations by explaining that the reset is deferred until next login and by stating the own-identity authorization requirement.

Agents need to know what a tool does to the world before 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 tight sentences plus the endpoint reference. The action and authorization constraint are front-loaded with no wasted text.

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 two-parameter mutation with annotations and no output schema, the description covers the core effect, deferred timing, and own-identity constraint. It could do slightly more on whether old codes remain valid until next login or whether repeated requests have special behavior.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already documents both parameters. The description adds meaningful constraint on userId beyond the schema's generic 'identifier of the user' by requiring it to be the subject of the access token.

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

Purpose4/5

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

The description states a specific action and resource: requesting a recovery codes reset for a user, plus the endpoint. It clearly explains the effect, marking the user to generate new recovery codes on next login, but it does not explicitly distinguish itself from similar account-security siblings such as reset_password or request_email_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?

It gives a clear usage constraint: only the user's own identity can be targeted, and the userId must match the access-token subject. It does not name alternative tools or explain when an administrator or another flow should be used instead.

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

request_region_changeA

Request instance region change [POST /v1/compute/instances/{instanceId}/regionChange] Starts a region change for the instance via CMS. Returns the support ticket number when the operation was accepted.

NameRequiredDescriptionDefault
bodyYesJSON request body
instanceIdYesThe identifier of the instance
x-trace-idNoIdentifier to trace group of requests.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare this is a non-read-only, non-idempotent, non-destructive, open-world operation. The description adds useful context beyond annotations: the request goes through CMS and returns a support ticket number when accepted. It does not cover authorization needs, rate limits, or whether the change is asynchronous.

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

Conciseness5/5

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

Two concise sentences plus the endpoint are front-loaded with purpose and return behavior. There is no filler, and every sentence contributes useful information.

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

Completeness4/5

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

No output schema exists, so the description appropriately states the return value: a support ticket number when the operation is accepted. For a mutation using a nested CMS body, it covers the core contract, though minor gaps remain around acceptance timing and asynchronous behavior.

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

Parameters3/5

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

Schema coverage is 100%, and the schema documents the nested body fields region and method plus instanceId. The description does not add syntax, allowed values, or constraints beyond what the schema provides, so the 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?

States a specific verb and resource: requesting an instance region change, and identifies the POST endpoint and CMS. It is unique among the sibling tools, with no other region-change operation to confuse it with.

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

Usage Guidelines3/5

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

The description explains what the operation does but does not state when to choose it, prerequisites, or when not to use it. Because no sibling offers a comparable region-change operation, usage is implied, but explicit guidance is absent.

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

resend_email_verificationC

Resend email verification [POST /v1/users/{userId}/resend-email-verification] Resend email verification for a specific user

NameRequiredDescriptionDefault
userIdYesThe identifier of the user.
x-trace-idNoIdentifier to trace group of requests.
redirectUrlNoThe redirect url used for email verification

TDQS

C2.5/5.0
Behavior2/5

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

The annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true and idempotentHint=false; the description adds only the HTTP path. It does not say whether resending invalidates a prior verification token, whether it is rate-limited, or what happens for an already-verified user — meaningful gaps for a non-idempotent, externally-visible action.

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?

It is short and front-loaded, but the second sentence is pure redundancy with the first and the bracketed endpoint path serves little purpose for an agent. Nearly no waste, but also nearly no content.

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

Completeness2/5

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

With no output schema and a mutation-adjacent, non-idempotent external action, the description should clarify outcome and preconditions; it does neither. The definition is not sufficient on its own for an agent to call this correctly in ambiguous cases.

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

Parameters3/5

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

Schema coverage is 100%, so all three parameters including redirectUrl and x-trace-id are already documented in the schema. The description adds nothing beyond 'for a specific user', which merely echoes the required userId parameter, so baseline 3 applies.

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 names the action and the resource ('Resend email verification for a specific user'), but it is essentially a restatement of the tool name plus the endpoint path. It offers no differentiation from adjacent account-email tools such as request_email_change or request_recovery_codes_reset, which an agent also has available.

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

Usage Guidelines2/5

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

There is no statement of when this tool should be used rather than the other user/email-related siblings, and no prerequisites such as the user having a pending, unverified email. The agent must infer everything from the name.

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

reset_passwordC

Send reset password email [POST /v1/users/{userId}/reset-password] Send reset password email for a specific user

NameRequiredDescriptionDefault
userIdYesThe identifier of the user.
x-trace-idNoIdentifier to trace group of requests.
redirectUrlNoThe redirect url used for resetting password

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true, and destructiveHint=false. The description only restates the 'send email' action and adds nothing about deliverability, whether existing passwords or sessions are invalidated, throttling on repeated calls (relevant given idempotentHint=false), or the no-op/error behavior when an email was already sent.

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?

Two sentences that say essentially the same thing, plus a bracketed endpoint path. It is short and the action is front-loaded, but the second sentence is pure redundancy rather than added 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?

This is an outward-facing side-effect operation (sends an email, openWorldHint=true) with no output schema and no annotations covering outcome semantics. The description never says what the caller learns on success, whether the response is always empty, or how failures like unknown userId surface — gaps an agent needs filled before invoking.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 userId, x-trace-id, and redirectUrl are all documented in the schema. The description echoes userId via the path template ('for a specific user') but says nothing about redirectUrl — the one parameter whose behavior (where the reset link lands) genuinely benefits from extra explanation. Baseline 3 applies.

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 states a concrete verb and resource: send a reset password email for a specific user, reinforced by the POST endpoint path. However, it does not differentiate from close siblings such as instance_reset_password, request_recovery_codes_reset, or request_email_change, so an agent must infer which 'reset' applies here.

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

Usage Guidelines2/5

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

There is no statement of when to use this versus alternatives, no prerequisites (e.g. whether the user must exist or be active), and no note on when a caller should prefer request_recovery_codes_reset or request_email_change instead. Usage is left entirely to inference from the name.

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

retrieve_api_permissions_listA
Read-onlyIdempotent

List of API permissions [GET /v1/roles/api-permissions] List all available API permissions. This list serves as a reference for specifying roles. As endpoints differ in their possibilities not all actions are available for each endpoint.

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
apiNameNoThe name of api
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.9/5.0
Behavior4/5

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

The annotations already declare readOnly, idempotent, openWorld, and non-destructive behavior. The description adds a useful caveat that not all actions are available for each endpoint, which helps an agent interpret the results when configuring roles.

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 definition is short and front-loaded, with the purpose stated immediately. There is slight redundancy between the title-like opening and the following sentence, but it remains efficient.

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

Completeness4/5

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

For a read-only paginated list tool with full schema coverage and strong annotations, the description is mostly complete. It explains the reference use case and the endpoint-specific action caveat, though it does not describe the returned permission shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 parameter meanings are fully documented in the schema. The description adds no parameter-specific guidance, which is acceptable but does not exceed the baseline.

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 specific resource and action: list all available API permissions. It also explains their role as a reference for specifying roles, but does not explicitly contrast with role-oriented siblings like retrieve_role_list.

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

Usage Guidelines4/5

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

It gives clear usage context by saying the list serves as a reference for specifying roles. It does not explicitly state when not to use it or name an alternative sibling, so it stops short of full alternative routing.

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

retrieve_assignmentB
Read-onlyIdempotent

Get specific assignment for the tag [GET /v1/tags/{tagId}/assignments/{resourceType}/{resourceId}] Get attributes for a specific tag assignment in your account. For this the resource type and resource id is required.

NameRequiredDescriptionDefault
tagIdYesThe identifier of the tag.
resourceIdYesThe identifier of the resource id
x-trace-idNoIdentifier to trace group of requests.
resourceTypeYesThe identifier of the resource type. Resource type is one of `instance|image|object-storage`.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is fully covered elsewhere. The description adds little behavioral context – no note on what happens when the assignment does not exist or on scope/permissions – though it does not contradict anything.

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?

It is short and front-loaded with the endpoint template, which is useful. However, the second sentence largely restates the first ('Get specific assignment' / 'Get attributes for a specific tag assignment'), so it wastes space on redundancy rather than adding information.

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

Completeness3/5

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

For a simple read-only single-resource fetch with full schema coverage and no output schema, the description is adequate. It leaves the return shape and the not-found behavior unspecified, which an agent would have to discover at call time, but nothing critical to invoking it is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are already documented in the schema, including the resourceType enumeration values. The description only restates that resourceType and resourceId are needed, adding no format or semantic detail beyond the schema.

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

Purpose4/5

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

The description states a specific verb and resource: getting attributes for one tag assignment, with the REST path template making it explicit that this is a single-item fetch rather than a list. It could have named retrieve_assignment_list as the alternative, but the singular/plural and path template make the distinction inferable.

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

Usage Guidelines3/5

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

It notes the prerequisites ('resource type and resource id is required'), which is implied usage context, but there is no explicit guidance about when to use this versus retrieve_assignment_list or the audit endpoints. Usage is implied rather than stated.

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

retrieve_assignment_listB
Read-onlyIdempotent

List tag assignments [GET /v1/tags/{tagId}/assignments] List and filter all existing assignments for a tag in your account

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
tagIdYesThe identifier of the tag.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
x-trace-idNoIdentifier to trace group of requests.
resourceTypeNoFilter as substring match for assignment resource type. Resource type is one of `instance|image|object-storage`.

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so safety is covered. The description adds essentially no behavioral content beyond them: nothing about pagination defaults, ordering effects, maximum page size, or what the returned entries contain, even though pagination parameters exist.

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

Conciseness4/5

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

Two short sentences, front-loaded with the action and the endpoint. The second sentence largely restates the first with the tag scoping added, a minor redundancy rather than real waste.

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

Completeness3/5

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

For a six-parameter paginated list tool with no output schema, the description covers purpose and scope but not the paging contract or the shape/ordering of results. Adequate to call it, thin on what an agent should expect back.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (page, size, tagId, orderBy, x-trace-id, resourceType) is already documented in the schema. The description only echoes the filtering notion and adds no format, default, or interaction guidance beyond it — baseline 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 states a specific verb and resource ("List tag assignments") and scopes it to a single tag via the path template, so an agent can tell it apart from retrieve_assignment (singular) and retrieve_assignments_audits_list. It never explicitly contrasts itself with those siblings, which keeps it from a 5.

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

Usage Guidelines3/5

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

"List and filter all existing assignments for a tag" implies the usage context (browse/filter assignments scoped to a tag) but never states when to prefer this over retrieve_assignment or the audits list, nor any preconditions such as the tag having to exist.

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

retrieve_assignments_audits_listB
Read-onlyIdempotent

List history about your assignments (audit) [GET /v1/tags/assignments/audits] List and filters the history about your assignments.

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
tagIdNoThe identifier of the tag.
endDateNoEnd of search time range.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
changedByNoUserId of the user which led to the change.
requestIdNoThe requestId of the API call which led to the change.
startDateNoStart of search time range.
resourceIdNoThe identifier of the resource.
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is fully covered. The description adds only that the endpoint supports filtering over history; it says nothing about default page size, default ordering, or how far back history goes — details an agent paginating results would want.

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?

Very short, but the second sentence is near-verbatim repetition of the first ("List history about your assignments" vs "List and filters the history about your assignments"), and the grammar ("List and filters") is off. Nothing is front-loaded beyond the endpoint path.

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

Completeness4/5

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

For a read-only list endpoint with 10 all-optional filters, a fully documented schema and complete annotations, the definition supplies enough for correct invocation. The gap is only in behavioral nuance (pagination defaults, result volume), which is minor here.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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% across all 10 optional parameters, so each field (page, size, tagId, startDate/endDate, orderBy, changedBy, requestId, resourceId, x-trace-id) is already documented. The description's generic mention of "filters" adds no semantics beyond that, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ("List history about your assignments (audit)") plus the underlying endpoint, so an agent knows this returns change history rather than the assignments themselves. It does not explicitly name the sibling it differs from (retrieve_assignment_list), but the audit framing is distinct enough to separate 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?

The only usage signal is "List and filters the history about your assignments" — no statement of when to prefer this over retrieve_assignment_list or the other *audits_list siblings, and no note that all filters are optional. The agent must infer the audit-vs-current-state distinction 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.

retrieve_available_instance_productsA
Read-onlyIdempotent

Get the available products of a specific instance [GET /v1/compute/instances/{instanceId}/products/available] Get all products the instance can be upgraded to, excluding the currently assigned one. Use the offerId of the desired product to submit the upgrade.

NameRequiredDescriptionDefault
instanceIdYesThe identifier of the instance
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, and openWorld, so safety is covered. The description adds one genuinely useful behavioral fact – results exclude the currently assigned product – but says nothing about result ordering or size/pagination, which matters for a list endpoint.

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?

Three tight sentences, front-loaded with the plain-language purpose before the endpoint path and the follow-up hint. The REST path adds little for an agent but does not bloat the text.

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

Completeness4/5

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

For a read-only lookup with no output schema, the description gives purpose, scope, the exclusion rule, and what the returned offerId is used for. Slightly incomplete on response shape and result volume, but an agent has enough to invoke it correctly.

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

Parameters3/5

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

Schema coverage is 100%, so instanceId and x-trace-id are already documented; baseline is 3. The description adds the follow-on meaning of the returned offerId, but that is not one of this tool's parameters and no extra constraint is placed on instanceId.

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

Purpose5/5

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

States a specific verb ('Get') and resource ('available products of a specific instance') and pins the scope with 'Get all products the instance can be upgraded to, excluding the currently assigned one.' This clearly distinguishes it from upgrade_instance and retrieve_instance.

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

Usage Guidelines4/5

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

Implies the workflow: call this to discover options, then 'Use the `offerId` of the desired product to submit the upgrade' – effectively pointing at upgrade_instance as the follow-up. Lacks an explicit when-not-to-use or alternative-lookup statement, so it stops short of 5.

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

retrieve_custom_images_statsA
Read-onlyIdempotent

List statistics regarding the customer's custom images [GET /v1/compute/images/stats] List statistics regarding the customer's custom images such as the number of custom images uploaded, used disk space, free available disk space and total available disk space

NameRequiredDescriptionDefault
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds real value beyond that by naming the returned metrics (image count, used/free/total disk space), which matters since no output schema exists. It says nothing about scope (account-wide vs per-region) or permissions, keeping it short of a 5.

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 core sentence is front-loaded and useful, but the description literally restates the same opening clause twice ('List statistics regarding the customer's custom images' appears verbatim in both halves). The second occurrence should have been merged into a single sentence.

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

Completeness4/5

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

For a parameterless read-only stats endpoint with no output schema, the description covers what the tool returns well enough to call it. The remaining gap is scope/preconditions, which is minor here.

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

Parameters3/5

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

There is one optional parameter (x-trace-id) with 100% schema description coverage, so the schema already explains it. The description adds nothing about it, which is acceptable at full coverage but is the baseline rather than a contribution.

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

Purpose4/5

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

The description states a specific verb (List) and resource (statistics for the customer's custom images), and enumerates the metrics returned. It is distinguishable from siblings like retrieve_image_list or retrieve_image, though it never explicitly contrasts itself with them.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is the endpoint for aggregate image storage metrics rather than image records. There is no explicit when-to-use/when-not guidance and no mention of retrieve_image_list as the alternative for listing the images themselves.

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

retrieve_data_center_listB
Read-onlyIdempotent

List data centers [GET /v1/data-centers] List all data centers and their corresponding regions.

NameRequiredDescriptionDefault
nameNoFilter for Object Storages regions.
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
slugNoFilter as match for data centers.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
regionNameNoFilter for Object Storage region names.
regionSlugNoFilter for Object Storage region slugs.
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description contributes the underlying endpoint ([GET /v1/data-centers]) and states that region data accompanies each entry, which is useful given there is no output schema, but pagination behavior, default page size, and auth requirements are all undisclosed.

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

Conciseness4/5

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

Two short sentences, nothing wasted, and the resource is front-loaded. Minor redundancy in that the leading 'List data centers' largely restates the tool name and annotation title, but the body is 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 read-only, zero-required-parameter list tool with 100% schema coverage and full annotation coverage, an agent can invoke it correctly. However, with no output schema, the description should say more about what a result contains (fields, region nesting) and whether results are paginated, both of which are left to guesswork.

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

Parameters3/5

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

Schema description coverage is 100%, so all eight optional filters (name, slug, regionName, regionSlug, page, size, orderBy, x-trace-id) are already documented, setting the baseline at 3. The description adds nothing about how these filters combine or which is preferred, and notably does not clarify the schema's ambiguous 'Filter for Object Storages regions' wording on the name parameter.

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 pairs a specific verb with a specific resource ('List data centers') and adds that regions are returned, so the agent knows exactly what it gets. It is distinguishable from siblings by the data-center resource, but it never explicitly contrasts itself with adjacent list tools such as retrieve_object_storage_list or retrieve_dns_zones_list, even though the filter params hint at overlap.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of prerequisites, and no exclusion or pointer to an alternative tool. The agent must infer from the resource name alone that this is the enumeration call for data centers.

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

retrieve_dns_audits_listB
Read-onlyIdempotent

List history about your DNS Zones (audit) [GET /v1/dns/zones/audits] List and filters the history about your DNS Zones .

NameRequiredDescriptionDefault
nameNoDns Zone name.
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
endDateNoEnd of search time range.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
changedByNoUserId of the user which led to the change.
requestIdNoThe requestId of the API call which led to the change.
startDateNoStart of search time range.
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds only that filtering is supported; it says nothing about pagination defaults, retention windows, or result ordering, which is the kind of context that would be valuable here.

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 opening sentence is front-loaded and efficient, but the second sentence largely restates it ('List and filters the history about your DNS Zones') with a stray space before the period. Half the text is redundant rather than additive.

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 nine-parameter, read-only list tool with no output schema, the definition covers the basic purpose and the annotations cover safety, but it leaves the agent guessing about result format, pagination behavior, and default time range. Adequate but with clear gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so every one of the nine parameters (name, page, size, startDate, endDate, orderBy, changedBy, requestId, x-trace-id) is already documented. The description adds nothing beyond the word 'filters', so baseline 3 is correct.

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

Purpose4/5

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

The description states a specific verb and resource: listing the audit history of DNS Zones, backed by the endpoint GET /v1/dns/zones/audits. That distinguishes it reasonably well from retrieve_dns_zones_list (zones themselves) and retrieve_dns_zone_records_list, though it never names those siblings explicitly.

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?

'List and filters the history' implies the tool is used for audit investigation, but there is no explicit when-to-use, when-not-to-use, or pointer to the alternative siblings such as retrieve_record_audits_list. Usage is inferred from the name and the audit framing rather than stated.

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

retrieve_dns_zoneA
Read-onlyIdempotent

Retrieve a DNS Zone by zone name [GET /v1/dns/zones/{zoneName}] Get all attributes for a specific DNS Zone

NameRequiredDescriptionDefault
zoneNameYesZone name
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered. The description adds the endpoint path and the fact that all attributes are returned, but says nothing about behavior on a nonexistent zone or about permission requirements — acceptable given the annotation coverage, but not enriching.

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

Conciseness5/5

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

Two short lines, zero waste, with the identifying scope (by zone name) front-loaded before the secondary 'get all attributes' clause. Nothing padding and nothing buried.

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 one-required-parameter read with full annotation coverage this is close to adequate, but with no output schema the description could say what the zone object contains or how a missing zone is signalled. It leaves the agent to infer error semantics.

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

Parameters3/5

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

Schema description coverage is 100% for both parameters, so the schema already documents zoneName and x-trace-id. The description's phrase 'by zone name' reinforces the required parameter but adds no format, case-sensitivity, or rate-limit detail beyond the schema.

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

Purpose4/5

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

The description states a specific verb and resource: retrieve a single DNS Zone identified by zone name, returning all its attributes. This is distinguishable from the sibling retrieve_dns_zones_list (plural collection) and create/delete_dns_zone, though it never explicitly names those alternatives.

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

Usage Guidelines3/5

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

'Retrieve a DNS Zone by zone name' plus 'Get all attributes for a specific DNS Zone' implies the single-record read case, but the description never states when to prefer it over retrieve_dns_zones_list or retrieve_dns_zone_records_list. Usage is inferable from naming rather than stated.

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

retrieve_dns_zone_records_listB
Read-onlyIdempotent

List a DNS Zone's records [GET /v1/dns/zones/{zoneName}/records] Get all the records of a DNS Zone

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
searchNoSearch DNS records by name, type or data
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
zoneNameYesZone name
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the HTTP method and endpoint, but does not disclose pagination behavior, rate limits, or return format. With annotations carrying the behavioral load, a 3 is appropriate.

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

Conciseness4/5

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

The description is two short sentences, front-loaded with the core operation. The second sentence ('Get all the records of a DNS Zone') is largely redundant with the first, preventing a perfect score, but there is no excess verbiage.

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

Completeness4/5

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

For a simple read-only list tool with full schema coverage and clear annotations, the description provides enough context to call the tool correctly. It could optionally note pagination or the fact that results are paginated, but the schema handles that, so no critical gap exists.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter is well documented in the schema. The description adds no parameter-specific meaning (e.g., how pagination interacts with search), so the baseline of 3 applies.

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

Purpose4/5

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

The description states a specific verb (List/Get) and resource (DNS Zone's records), making the purpose unambiguous. It does not, however, explicitly differentiate from siblings like retrieve_dns_zone (which gets zone details) or retrieve_dns_zones_list (which lists zones), leaving the agent to infer scope.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives. It does not mention conditions, exclusions, or sibling tools, so the agent must rely solely on the stated purpose to decide when this list operation is appropriate.

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

retrieve_dns_zones_listC
Read-onlyIdempotent

List DNS zones [GET /v1/dns/zones] Get a list of all zones

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
tenantIdNoTenant ID
zoneNameNoSeach by zone name
customerIdNoCustomer ID
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so the safety profile is fully covered. The description adds nothing beyond the HTTP path — no mention of pagination behavior, default page size, or whether results are scoped to a tenant/customer.

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?

Very short and front-loaded, but the second sentence ("Get a list of all zones") simply restates the first, and the bracketed path duplicates the endpoint already implied. Slight redundancy rather than tight economy.

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

Completeness3/5

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

Adequate for a simple read-only list tool with full schema coverage and rich annotations, but it omits pagination expectations and the fact that filtering is available, which an agent would need to call it well.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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% across all 7 params, so the schema carries the semantics; the description adds no additional meaning about filters, ordering syntax, or trace headers. 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?

States a specific verb and resource ("List DNS zones", GET /v1/dns/zones) and clearly reads as a collection endpoint. The singular sibling retrieve_dns_zone is implicitly distinguished by the plural, though the description never says so explicitly.

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 versus retrieve_dns_zone or retrieve_dns_zone_records_list, and no note that filters (zoneName, customerId, tenantId) are optional narrowing. The agent must infer usage entirely from the name.

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

retrieve_domainC
Read-onlyIdempotent

List specific domain [GET /v1/domains/{domain}] List specific domain

NameRequiredDescriptionDefault
domainYesDomain Name
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered structurally. The description adds nothing beyond the URL template — no note on what the response contains, whether a 404 occurs for unknown domains, or whether the lookup is authoritative versus the availability check sibling.

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?

It is short, but the second sentence is a verbatim duplicate of the first, so half the text is waste. The endpoint template is front-loaded and useful, but nothing about the resource or conditions follows it.

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 single-domain lookup with no output schema, the description should say what is returned (registration status, nameservers, expiry) and how it differs from list_domains. With rich annotations carrying the safety profile, the gap is behavioral and discoverability rather than safety, but it is still substantial.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 both parameters (domain, x-trace-id) are documented in the schema, so the schema does the work here. The only extra hint is that 'domain' is a path segment, visible from [GET /v1/domains/{domain}], which is marginal.

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

Purpose2/5

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

The text restates the tool name and annotation title ('List specific domain') with no added detail, and the verb 'List' is misleading for a single-resource fetch keyed by {domain}. The endpoint path hints at the resource, but an agent cannot distinguish this from the sibling list_domains without opening the schema.

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

Usage Guidelines2/5

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

No guidance is given on when to call this versus list_domains (all domains), update_domain, cancel_domain, or validate_domain_availability. The word 'List' actively pushes an agent toward the wrong sibling, so the definition leaves selection entirely to inference.

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

retrieve_domains_audits_listB
Read-onlyIdempotent

List history about your Domains (audit) [GET /v1/domains/audits] List and filters the history about your Domains.

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
domainNoThe domain name.
endDateNoEnd of search time range.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
changedByNoUserId of the user which led to the change.
requestIdNoThe requestId of the API call which led to the change.
startDateNoStart of search time range.
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered structurally. The description adds only that results can be filtered, and says nothing about pagination behavior, ordering defaults, or what an audit entry contains — modest added value over the annotations.

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

Conciseness4/5

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

Very short and front-loaded with the resource and endpoint. It does waste a clause by restating the same idea twice ('List history about your Domains' / 'List and filters the history about your Domains'), and the second sentence is ungrammatical.

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

Completeness3/5

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

With nine optional parameters and no output schema, the description should say at minimum that results are paginated and that all filters are optional (i.e., an unfiltered call returns the full audit history). Annotations carry the safety profile, but the retrieval behavior is underspecified for a nine-parameter list tool.

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

Parameters3/5

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

Schema description coverage is 100% (page, size, domain, startDate/endDate, orderBy, changedBy, requestId, x-trace-id all documented inline). The description adds no extra meaning about filter combination semantics or the orderBy format, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb (list/filter) and resource (Domains audit history) and names the underlying endpoint GET /v1/domains/audits. It is distinguishable from list_domains or retrieve_domain by the explicit 'audit' framing, though it never names those siblings to reinforce the distinction.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance and no mention of the alternatives (list_domains, retrieve_domain, or the other *_audits_list tools). An agent must infer from the word 'audit' alone that this is for historical change records rather than current domain state.

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

retrieve_firewallA
Read-onlyIdempotent

Get specific firewall by its id [GET /v1/firewalls/{firewallId}] Get data for a specific firewall on your account.

NameRequiredDescriptionDefault
nameNoThe name of the firewall
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
firewallIdYesThe identifier of the firewall
x-trace-idNoIdentifier to trace group of requests.
instanceIdsNoComma separated instance IDs.

TDQS

A3.8/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the HTTP GET endpoint and account scope, but it does not add auth requirements, rate-limit behavior, or return-format details beyond what the annotations and schema provide.

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

Conciseness5/5

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

The description is two short sentences with the resource scope front-loaded and the HTTP endpoint appended compactly. There is no redundant or empty prose.

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

Completeness4/5

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

For a simple single-resource retrieval with rich annotations and full schema coverage, the description is largely complete: it identifies the resource, the identifier, and account scope. It does not describe the returned firewall object or clarify why pagination/orderBy parameters exist on a single-resource GET, but those are minor gaps given the structured fields.

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

Parameters3/5

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

Schema description coverage is 100%, so all seven parameters are already documented in the input schema. The description reinforces that retrieval is by firewallId, but it adds no additional semantics for name, page, size, orderBy, x-trace-id, or instanceIds beyond the schema.

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

Purpose5/5

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

The description states a specific verb and resource: 'Get specific firewall by its id.' The endpoint '[GET /v1/firewalls/{firewallId}]' reinforces that this is a single-record retrieval, distinguishing it from sibling tools such as retrieve_firewall_list, create_firewall, delete_firewall, patch_firewall, and put_firewall.

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

Usage Guidelines3/5

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

Usage is only implied by 'specific firewall by its id' and 'on your account.' The description does not explicitly say when to use this instead of retrieve_firewall_list or when not to use it, nor does it mention prerequisites.

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

retrieve_firewall_audits_listB
Read-onlyIdempotent

List history about your Firewalls (audit) [GET /v1/firewalls/audits] List and filters the history about your Firewalls.

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
endDateNoEnd of search time range.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
changedByNoUser name which did the change.
requestIdNoThe requestId of the API call which led to the change.
startDateNoStart of search time range.
firewallIdNoThe identifier of the Firewall.
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds only that results can be filtered; it says nothing about pagination behavior, default time range, ordering defaults, or result volume — context that matters for a 9-param list 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?

It is short, but the two sentences are near-duplicates of each other and the bracketed HTTP path is low-value for an agent choosing a tool. No wasted length, but also no front-loaded differentiation.

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

Completeness3/5

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

With annotations covering safety and a fully documented 9-param schema, the essentials are present and there is no output schema to explain. Still, a list tool with date-range and ordering filters would benefit from a sentence on default scoping and pagination expectations.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (page, size, startDate/endDate, orderBy, changedBy, requestId, firewallId, x-trace-id) is already documented. The description's mention of filtering aligns with but does not extend the schema — baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource — listing audit history for Firewalls — and the raw endpoint [GET /v1/firewalls/audits] reinforces the resource. This clearly separates it from the many sibling audit-list tools (DNS, VIP, secret, user audits), though it does not name them explicitly.

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 says it 'lists and filters' firewall audit history but gives no guidance on when to choose it over retrieve_firewall (current state) or the other audit-list siblings, and no prerequisites or exclusions. Usage is only inferable from the resource name.

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

retrieve_firewall_listC
Read-onlyIdempotent

List all firewalls [GET /v1/firewalls] List and filter all firewalls on your account

NameRequiredDescriptionDefault
nameNoThe name of the firewall
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
x-trace-idNoIdentifier to trace group of requests.
instanceIdsNoComma separated instance IDs.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered. The description adds nothing beyond the HTTP route: no pagination defaults, no note on how filtering combines, no indication of result size or ordering behavior.

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?

It is short, but the two clauses are largely redundant ('List all firewalls' / 'List and filter all firewalls'), and the bracketed '[GET /v1/firewalls]' is implementation detail that adds little for an agent.

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?

Six optional parameters, full schema coverage and rich annotations mean the structured data carries most of the load, but with no output schema the description should at least note that results are paginated and that size/page control the result window. Adequate but with clear gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so name, page, size, orderBy, x-trace-id and instanceIds are all documented in the schema. The description's word 'filter' adds only a hint that filtering exists and does not map to any specific parameter, 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?

States a specific verb and resource ('List all firewalls') plus scope ('on your account'), which implicitly separates it from retrieve_firewall (single) and create/delete_firewall siblings. It never names a sibling explicitly, so it falls short of a 5.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance, no mention of when to prefer retrieve_firewall for a single lookup, and no prerequisites. 'List and filter' only implies usage rather than explaining it.

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

retrieve_handleC
Read-onlyIdempotent

Get specific handle [GET /v1/domains/handles/{handleId}] Get specific handle

NameRequiredDescriptionDefault
handleIdYesThe identifier of the handle
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered structurally. The description adds nothing beyond them — no note on permissions, error behavior for an unknown handleId, or what the response contains — so it earns no credit above the annotation baseline.

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?

It is short and front-loaded, but the sentence is duplicated (name, route, then the same phrase again), so one of the two statements is pure waste. Brevity here comes from under-specification rather than efficiency.

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

Completeness2/5

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

With no output schema, the description should at least say what a handle is (a domain contact record) and roughly what is returned; it says neither. Schema coverage and annotations are complete, but an agent gets no domain concept or return-value context from the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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%: handleId is documented as "The identifier of the handle" and x-trace-id as a tracing identifier. The description adds no meaning beyond the schema, so the baseline of 3 applies.

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

Purpose2/5

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

The description is essentially the tool name and annotation title restated verbatim ("Get specific handle" twice). The only added signal is the HTTP route `[GET /v1/domains/handles/{handleId}]`, which hints the handle is domain-scoped, but it does not distinguish this tool from siblings like list_handles or retrieve_domain beyond the implicit singular/plural contrast.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of the alternatives (list_handles, retrieve_domain, set_default_handle), and no preconditions. The word "specific" weakly implies single-resource lookup by ID versus a list, but that is inference, not guidance.

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

retrieve_handles_audits_listB
Read-onlyIdempotent

List history about your handles (audit) [GET /v1/domains/handles/audits] List and filters the history about your handles.

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
endDateNoEnd of search time range.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
handleIdNoThe identifier of the handle.
changedByNoUserId of the user which led to the change.
requestIdNoThe requestId of the API call which led to the change.
startDateNoStart of search time range.
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so safety and idempotency are covered. The description adds the endpoint path and the notion of a filtered history, but says nothing about pagination behavior or result volume, which would matter with page/size parameters.

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?

It is short and front-loaded, but the second sentence ('List and filters the history about your handles') largely restates the first and is grammatically awkward. The useful content is a single clause.

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

Completeness3/5

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

With annotations covering the safety profile, full schema coverage on all nine params, and no output schema, most of the agent's needs are met. However, nothing indicates what an audit entry contains or how pagination defaults behave, which is a meaningful gap for a list endpoint.

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

Parameters3/5

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

Schema description coverage is 100%, so every one of the nine parameters (page, size, startDate/endDate, orderBy, handleId, changedBy, requestId, x-trace-id) is already documented. The description adds nothing beyond a vague mention of filtering, so the baseline of 3 applies.

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

Purpose4/5

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

The description names a specific verb and resource ('List history about your handles (audit)') and includes the endpoint path, so an agent can tell it returns handle audit entries rather than handle records. It doesn't explicitly contrast with reference siblings like retrieve_tag_audits_list, but the 'handles' scope does the differentiation implicitly.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus alternatives, no prerequisites, and no exclusions. The only implicit cue is 'filters the history', which hints at the filtering use case but leaves selection up to inference.

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

retrieve_imageA
Read-onlyIdempotent

Get details about a specific image by its id [GET /v1/compute/images/{imageId}] Get details about a specific image. This could be either a standard or custom image. In case of an custom image you can also check the download status

NameRequiredDescriptionDefault
imageIdYesThe identifier of the image
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds real value by disclosing that results differ by image type (custom images include download status), but says nothing about permissions or error behavior on an unknown id.

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?

Front-loaded with the verb and resource in the first clause, and the whole thing is two short lines. The second sentence, 'Get details about a specific image,' is a verbatim restatement of the opening and earns no space, but the overall size is appropriate.

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 two-parameter read tool with fully documented schema, rich annotations, and no output schema, the description covers what an agent needs to select and call it. The only shortfall is the absence of guidance on routing to retrieve_image_list or the other image tooling.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 both parameters are fully documented in the schema and the baseline is 3. The description only restates that lookup is 'by its id' and adds nothing about the optional x-trace-id header.

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?

States a specific verb and resource ('Get details about a specific image by its id') with the underlying GET path, which clearly separates it from retrieve_image_list and the create/update/delete image siblings. It also scopes the resource ('standard or custom image'), though it never names a sibling explicitly.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: you call it when you have an imageId and need details. The note that custom images also expose download status hints at a use case, but there are no explicit when-not conditions or pointer to retrieve_image_list for discovery.

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

retrieve_image_audits_listB
Read-onlyIdempotent

List history about your custom images (audit) [GET /v1/compute/images/audits] List and filters the history about your custom images.

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
endDateNoEnd of search time range.
imageIdNoThe identifier of the image.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
changedByNoUserId of the user which led to the change.
requestIdNoThe requestId of the API call which led to the change.
startDateNoStart of search time range.
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds only that results are historical audit entries (implying change events with actor/request identifiers), but says nothing about default time ranges, pagination behavior, or result ordering that would help an agent call it correctly.

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?

It is short, but the second sentence largely restates the first plus the title, and the phrasing 'List and filters the history' is grammatically awkward. The useful content (audit/history of custom images) is there but delivered redundantly.

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

Completeness3/5

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

With nine optional params all fully documented and read-only annotations in place, no output schema is needed. Still, the description leaves unaddressed the default behavior when no filters are supplied and the relationship to the other image-list endpoints, which an agent would want for this listing tool.

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

Parameters3/5

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

Schema description coverage is 100%, with all nine optional parameters (page, size, startDate/endDate, imageId, orderBy, changedBy, requestId, x-trace-id) documented in the schema itself. The description's bare mention of 'filters' adds no meaning beyond that, so the baseline 3 applies.

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

Purpose4/5

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

The description states a specific verb (list/filter) and resource (audit history of custom images), which is enough to distinguish it from retrieve_image_list and retrieve_image. It is clear but never explicitly names those siblings as alternatives.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is for inspecting change history of images, but there is no statement of when to prefer it over retrieve_image/retrieve_image_list, nor any exclusions or prerequisites.

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

retrieve_image_listB
Read-onlyIdempotent

List available standard and custom images [GET /v1/compute/images] List and filter all available standard images provided by Contabo and your uploaded custom images.

NameRequiredDescriptionDefault
gpuNoFlag indicating that image can be used with for a GPU product.
nameNoThe name of the image
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
searchNofull text search on image name or image os type
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
x-trace-idNoIdentifier to trace group of requests.
standardImageNoFlag indicating that image is either a standard (true) or a custom image (false)

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds the underlying endpoint (GET /v1/compute/images) and scope (standard + custom images), but says nothing about pagination behavior, default ordering, or return shape for a tool with page/size/orderBy params.

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

Conciseness4/5

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

Two short sentences, front-loaded with the list action and resource. The endpoint annotation is useful context, though the first sentence closely mirrors the title and could be trimmed slightly.

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

Completeness4/5

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

For a read-only list tool with full schema coverage and strong annotations, the description covers purpose, scope, and endpoint. It does not explain pagination defaults or return contents, but no output schema exists and the schema carries parameter semantics, so it is largely complete.

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

Parameters3/5

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

Schema description coverage is 100%, so all eight parameters are already documented in the schema. The description mentions filtering generally but does not add syntax or behavioral detail beyond the schema (e.g., how search interacts with name, or orderBy formatting). Baseline 3 is appropriate.

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

Purpose4/5

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

The description states a specific verb ('List') and resource ('images'), and clarifies that both standard Contabo images and uploaded custom images are returned. It is clear what the tool does, but it does not differentiate itself from close siblings such as retrieve_image (singular) or retrieve_custom_images_stats.

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 explains what is listed and that filtering is possible, but gives no explicit guidance on when to choose this tool over retrieve_image for a single image or retrieve_custom_images_stats for aggregate statistics. No alternatives or exclusions are named.

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

retrieve_instanceB
Read-onlyIdempotent

Get specific instance by id [GET /v1/compute/instances/{instanceId}] Get attributes values to a specific instance on your account.

NameRequiredDescriptionDefault
instanceIdYesThe identifier of the instance
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered. The description adds only the HTTP route and the account-scoping note; it says nothing about rate limits, error behavior, or what is returned.

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?

It is short and front-loaded with the verb and route, which is good. But the second sentence ('Get attributes values to a specific instance on your account') is awkwardly worded and largely repeats the first, so it does not fully earn its place.

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

Completeness3/5

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

For a simple single-resource read with annotations covering the safety profile, the essentials are present. With no output schema, however, the description gives no hint of what attributes come back, leaving an agent to guess at the response shape.

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

Parameters3/5

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

Schema coverage is 100% and both parameters are documented in the schema, so the baseline is 3. The description only restates that lookup is by id and adds no format, range, or trace-header guidance beyond the schema.

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

Purpose4/5

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

States a specific verb and resource ('Get specific instance by id') and implicitly distinguishes itself from retrieve_instances_list by fetching a single instance by identifier. It is clear what the tool does, though it never names or contrasts with the sibling list tool explicitly.

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

Usage Guidelines3/5

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

Usage is only implied by 'by id' – an agent can infer this is the lookup to use when it already has an instanceId. No explicit when-to-use, prerequisites, or pointers to alternatives such as retrieve_instances_list are given.

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

retrieve_instances_actions_audits_listB
Read-onlyIdempotent

List history about your actions (audit) triggered via the API [GET /v1/compute/instances/actions/audits] List and filters the history about your actions your triggered via the API.

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
endDateNoEnd of search time range.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
changedByNochangedBy of the user which led to the change.
requestIdNoThe requestId of the API call which led to the change.
startDateNoStart of search time range.
instanceIdNoThe identifier of the instancesActions.
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds the endpoint path and mentions filtering, but does not describe pagination behavior, audit retention, return shape, or authorization details.

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 purpose is front-loaded, but the description repeats the same idea twice with minor errors ('List history...' and 'List and filters the history...'), making it less concise than it could be.

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 nine optional parameters and no output schema, the description is minimally adequate because the schema fully documents parameters and annotations cover safety. It still lacks differentiation from sibling audit tools and says nothing useful about return values or pagination.

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

Parameters3/5

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

Schema description coverage is 100%, so all nine parameters are already documented in the schema. The description only generically mentions filtering and adds no extra meaning, ordering syntax, or field-specific guidance beyond the schema.

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

Purpose4/5

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

The description clearly states a list operation over audit history for instance actions triggered via the API, reinforced by the GET endpoint path. However, it does not differentiate this from sibling audit-list tools such as retrieve_instances_audits_list or other *_audits_list 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?

The description explains what the tool does but gives no guidance on when to use it instead of the many sibling audit-list tools, nor any prerequisites or exclusions. Usage is only implied by the audit/filtering wording.

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

retrieve_instances_audits_listC
Read-onlyIdempotent

List history about your instances (audit) [GET /v1/compute/instances/audits] List and filters the history about your instances.

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
endDateNoEnd of search time range.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
changedByNochangedBy of the user which led to the change.
requestIdNoThe requestId of the API call which led to the change.
startDateNoStart of search time range.
instanceIdNoThe identifier of the instances.
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that: no note on default sort order, pagination limits, retention window for audit records, or what happens with an empty range.

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?

Very short, and the endpoint path is front-loaded, which is good. But the second sentence largely restates the first ('List history' / 'List and filters the history'), and the grammar slip ('List and filters') costs clarity rather than adding information.

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

Completeness3/5

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

For a read-only, paginated list endpoint with a fully documented 9-parameter schema and no output schema, the description is minimally sufficient. It stops short of explaining default ordering, result volume, or how audit entries relate to the instance/actions audit siblings.

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

Parameters3/5

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

Schema description coverage is 100%, so all 9 parameters (page, size, startDate, endDate, orderBy, changedBy, requestId, instanceId, x-trace-id) are already documented in the schema. The description only gestures at 'filters' without adding format or combination semantics, so the baseline 3 applies.

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

Purpose4/5

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

States a concrete verb+resource: listing audit history for compute instances, with the underlying endpoint path. It is distinguishable from retrieve_instances_list (live instances), but it does not distinguish itself from the very similar sibling retrieve_instances_actions_audits_list, leaving the agent to guess which audit feed is which.

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 versus the closely-named actions-audits sibling, nor any mention of prerequisites, pagination expectations, or default time range. Only the phrase 'List and filters the history' implies a filtering use case.

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

retrieve_instances_listB
Read-onlyIdempotent

List instances [GET /v1/compute/instances] List and filter all instances in your account

NameRequiredDescriptionDefault
nameNoThe name of the instance
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
regionNoThe Region of the instance
searchNoFull text search when listing the instances. Can be searched by `name`, `displayName`, `ipAddress`
statusNoThe status of the instance
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
addOnIdsNoIdentifiers of Addons the instances have
ipConfigNoFilter instances that have an ip config
tenantIdNoFilter by tenant ID
suspendedNoFilter instances by suspension state. When set to false, suspended instances are excluded from the response. Any other value returns all instances (default behavior).
customerIdNoFilter by customer ID
dataCenterNoThe data center of the instance
instanceIdNoThe identifier of the instance (deprecated)
productIdsNoIdentifiers of the instance products
x-trace-idNoIdentifier to trace group of requests.
displayNameNoThe display name of the instance
instanceIdsNoComma separated instances identifiers
productTypesNoComma separated instance's category depending on Product Id

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered structurally. The description adds only the account-scoping note and says nothing about pagination behavior or default result volume, which for a 19-filter listing endpoint is the missing behavioral context.

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

Conciseness4/5

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

Two short lines, front-loaded with the operation and the route. There is mild redundancy between 'List instances' and 'List and filter all instances', but no wasted exposition.

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

Completeness3/5

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

With 19 optional parameters, no output schema, and no pagination or default-ordering guidance, the description leaves the agent to discover behavior from the schema alone. Annotations cover safety, but the result-shape and paging story is thin for an endpoint of this complexity.

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

Parameters3/5

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

Schema description coverage is 100%, with page, size, search syntax, orderBy format and the situationally tricky 'suspended' flag all documented in the schema. The description's 'filter' wording adds nothing new, 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?

States a specific verb and resource ('List instances') plus the scope restriction 'in your account', and the HTTP route disambiguates it from the mutating siblings. It does not explicitly name the singular 'retrieve_instance' sibling, but the list-vs-single distinction is clear from the wording.

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?

'List and filter all instances in your account' implies the use case (bulk enumeration with filters), but there is no explicit when-to-use, when-not, or pointer to alternatives such as retrieve_instance for a single lookup. Usage must be inferred.

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

retrieve_object_storageB
Read-onlyIdempotent

Get specific object storage by its id [GET /v1/object-storages/{objectStorageId}] Get data for a specific object storage on your account.

NameRequiredDescriptionDefault
x-trace-idNoIdentifier to trace group of requests.
objectStorageIdYesThe identifier of the object storage.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds only the REST endpoint path. It does not mention auth requirements, behavior when the id is unknown (404), or rate limits.

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

Conciseness4/5

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

Two short sentences with the identifier and endpoint front-loaded. The second sentence ('Get data for a specific object storage on your account') largely restates the first, so it is not perfectly waste-free.

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

Completeness3/5

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

For a simple read tool with full schema coverage and complete annotations this is close to adequate, but with no output schema the description never indicates what an object storage record contains, leaving the agent to guess the response shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 both parameters (objectStorageId, x-trace-id) are documented in the schema, so baseline 3 applies. The description adds nothing beyond restating that lookup is by id.

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

Purpose4/5

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

The description names a specific verb and resource ('Get specific object storage by its id') and includes the HTTP route, which distinguishes it from retrieve_object_storage_list and create_object_storage. It is clear but never explicitly contrasts itself with those siblings.

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

Usage Guidelines2/5

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

There is no statement of when to call this versus retrieve_object_storage_list or the credentials siblings; the only hint is that an id is required. No prerequisites or exclusions are offered.

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

retrieve_object_storage_audits_listB
Read-onlyIdempotent

List history about your object storages (audit) [GET /v1/object-storages/audits] List and filters the history about your object storages.

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
endDateNoEnd of search time range.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
changedByNochangedBy of the user which led to the change.
requestIdNoThe requestId of the API call which led to the change.
startDateNoStart of search time range.
x-trace-idNoIdentifier to trace group of requests.
objectStorageIdNoThe identifier of the object storage.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds that the operation is audit-history retrieval and filterable, but it does not disclose pagination behavior, return format, authentication needs, or rate limits.

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

Conciseness3/5

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

It is short and front-loads the endpoint, but the two sentences are largely redundant and contain an awkward 'List and filters' construction. The second sentence repeats the first without adding useful structure.

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 read-only audit list with nine optional, fully documented parameters and rich annotations, the description is minimally sufficient. However, it does not explain the return shape, pagination expectations, or why an agent should choose this audit list over sibling audit lists, leaving some contextual gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the nine parameters are already documented in the input schema. The description mentions filtering generally but adds no parameter-level meaning beyond what the schema provides, making baseline 3 appropriate.

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

Purpose4/5

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

The description states a specific verb and resource: listing object storage audit history, with the endpoint [GET /v1/object-storages/audits]. It is clear what the tool does, but it does not explicitly distinguish it from sibling audit-list tools or from retrieve_object_storage_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?

It implies the tool is for retrieving audit history and applying filters, but gives no explicit when-to-use guidance, no exclusions, and no alternatives among the many audit-list siblings. An agent must infer the appropriate use case from the word 'audit' alone.

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

retrieve_object_storage_listB
Read-onlyIdempotent

List all your object storages [GET /v1/object-storages] List and filter all object storages in your account

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
regionNoFilter for Object Storage by regions. Available regions: EU, US-central, SIN
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
s3TenantIdNoFilter for Object Storage S3 tenantId.
x-trace-idNoIdentifier to trace group of requests.
displayNameNoFilter for Object Storage by display name.
dataCenterNameNoFilter for Object Storage locations.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is known. The description adds the HTTP endpoint and account-scoped filtering context, but does not disclose pagination behavior, ordering defaults, or return characteristics beyond what the schema and annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is short and front-loaded with the main action and endpoint. The second sentence repeats the listing/filtering idea from the title and first line, but the redundancy is minor and does not obscure the purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list endpoint with eight optional parameters, rich annotations, and no output schema, the description covers the core operation but omits pagination behavior, return shape, and ordering semantics. Those gaps are partly mitigated by complete schema descriptions but leave the definition minimally adequate rather than fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all eight parameters are already documented in the input schema. The description adds no parameter-specific meaning or format guidance beyond the schema, making the baseline 3 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 names a specific verb and resource: list all object storages in the account, with a clear GET endpoint. It is distinguishable from the singular retrieve_object_storage by the word 'List' and 'all', though it does not explicitly name that sibling as an alternative.

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 using this tool to list and filter object storages, but it gives no explicit when-to-use guidance, prerequisites, or comparison with retrieve_object_storage. The filtering purpose is stated only briefly, leaving the agent to infer when this list operation is preferable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_object_storages_statsA
Read-onlyIdempotent

List usage statistics about the specified object storage [GET /v1/object-storages/{objectStorageId}/stats] List usage statistics about the specified object storage such as the number of objects uploaded / created, used object storage space. Please note that the usage statistics are updated regularly and are not live usage statistics.

NameRequiredDescriptionDefault
x-trace-idNoIdentifier to trace group of requests.
objectStorageIdYesThe identifier of the object storage.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful context beyond that: statistics are refreshed regularly and are not live, which affects how an agent should interpret freshness.

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 tool purpose is front-loaded and the endpoint is appended cleanly, but 'List usage statistics about the specified object storage' is repeated verbatim across the first and second sentence. The redundancy is minor waste rather than a structural problem.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only stats tool with no output schema, the description explains what the statistics contain (object counts, used space) and their freshness behavior. Return structure is unspecified, but that is the only remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are documented there, so the description carries no additional burden. It adds no syntax hints or meaning for objectStorageId beyond what the schema already says — the correct 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?

States a specific verb and resource ('List usage statistics about the specified object storage') and includes the HTTP endpoint, so the agent can distinguish it from retrieve_object_storage or retrieve_object_storage_list without opening any schema.

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 scope is clear — this returns usage stats rather than configuration — and the non-live caveat tells the agent when the data is appropriate. It stops short of naming a sibling alternative for configuration reads, so not a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_preset_rulesB
Read-onlyIdempotent

Get all preset rules [GET /v1/firewalls/preset-rules]

NameRequiredDescriptionDefault
nameNoThe name of preset rule
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false. The description adds only the endpoint path and does not contribute additional behavioral context such as authentication requirements, pagination behavior, or filtering semantics beyond what the schema already documents.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted words. The endpoint path is additional useful detail and does not detract from conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with full schema coverage and comprehensive annotations, the description is nearly sufficient. It could mention pagination or output expectations, but given the structured fields already available, an agent has enough to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters—name, page, size, orderBy, and x-trace-id—are already documented in the schema. The description does not add parameter-level meaning, which is acceptable given the high schema coverage baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Get all preset rules', and includes the endpoint path. It is distinguishable from firewall instance operations in the sibling list, though it does not explicitly name an alternative tool or clarify how it differs from retrieve_firewall_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?

The description gives no indication of when to use this tool versus related firewall or preset-rule operations. It simply states the operation without context, exclusions, or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_private_networkA
Read-onlyIdempotent

Get specific Private Network by id [GET /v1/private-networks/{privateNetworkId}] Get attributes values to a specific Private Network on your account.

NameRequiredDescriptionDefault
x-trace-idNoIdentifier to trace group of requests.
privateNetworkIdYesThe identifier of the Private Network

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds only a generic retrieval statement and vague return information ('attributes values'), with no auth, rate-limit, or response-shape detail beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences are front-loaded with the core operation, and the endpoint path is compact. The second sentence is slightly redundant but does not materially waste space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-by-id tool with full schema coverage and annotations covering safety behavior, the description is mostly complete. Since there is no output schema, it could more clearly describe return attributes, but the essential invocation context is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented in the schema. The description reinforces that lookup is by id but adds no syntax, format, or edge-case 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 states a specific verb ('Get') and resource ('Private Network by id'), and the GET endpoint confirms the operation. It distinguishes itself from list/create/update/delete siblings by being explicitly id-specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'by id' implies the tool is used when a privateNetworkId is known, but the description does not name retrieve_private_network_list as the alternative or state when not to use this tool. Guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_private_network_audits_listB
Read-onlyIdempotent

List history about your Private Networks (audit) [GET /v1/private-networks/audits] List and filters the history about your Private Networks.

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
endDateNoEnd of search time range.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
changedByNoUser name which did the change.
requestIdNoThe requestId of the API call which led to the change.
startDateNoStart of search time range.
x-trace-idNoIdentifier to trace group of requests.
privateNetworkIdNoThe identifier of the Private Network

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds only that results can be filtered, without disclosing pagination defaults, ordering defaults, retention window, or what an audit entry contains — context that would matter for a 9-parameter list endpoint.

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?

It is short, but the second sentence ('List and filters the history about your Private Networks') is near-verbatim restatement of the first, and the bracketed endpoint path duplicates the tool name. One sentence would have earned its place; the second largely does not.

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 read-only listing tool with no output schema and zero required parameters, the definition is minimally adequate. It leaves unstated what an audit record looks like, what the default page size and ordering are, and whether the list is scoped to a single privateNetworkId or account-wide — meaningful gaps given no output schema exists to fill them.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 nine parameters carry schema descriptions (100% coverage), so the schema does the heavy lifting. The description mentions filtering in general but adds no detail on date-range semantics, orderBy syntax, or how changedBy/requestId combine — the baseline 3 applies when the schema fully documents parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: listing audit history for Private Networks, and the embedded endpoint path reinforces the resource. It does not, however, distinguish itself from the many sibling audit-list tools (retrieve_user_audits_list, retrieve_vip_audits_list, etc.) or from retrieve_private_network_list, so an agent must infer the difference from the 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?

There is no statement of when to call this versus the other audit endpoints or the plain private-network list/retrieve tools, and no prerequisites are mentioned. Usage is only weakly implied by the phrase 'history about your Private Networks'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_private_network_listB
Read-onlyIdempotent

List Private Networks [GET /v1/private-networks] List and filter all Private Networks in your account

NameRequiredDescriptionDefault
nameNoThe name of the Private Network
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
regionNoThe slug of the region where your Private Network is located
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
dataCenterNoThe data center where your Private Network is located
x-trace-idNoIdentifier to trace group of requests.
instanceIdsNoComma separated instances identifiers

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description adds that this is a GET endpoint and that it lists account-wide Private Networks, but it does not explain pagination, ordering behavior, or response shape. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loads the purpose, with the GET endpoint in brackets. There is slight redundancy between 'List Private Networks' and 'List and filter all Private Networks,' but no significant waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an eight-parameter list tool with no output schema, rich annotations, and full schema coverage, the description is adequate but leaves gaps around pagination and ordering behavior. It does not need to explain return values, but it could do more to clarify how filtering and listing behave.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all eight parameters are already documented in the schema. The description references filtering generally but adds no parameter-specific semantics such as how name, region, dataCenter, or orderBy interact. 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 gives a specific verb and resource: list and filter Private Networks. The word 'all' helps distinguish it from the singular retrieve_private_network sibling, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies this is the tool for browsing and filtering all Private Networks in the account, but it does not say when to use it instead of retrieve_private_network or other list tools, nor does it state any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_ptr_recordA
Read-onlyIdempotent

Retrieve a PTR Record by ip address [GET /v1/dns/ptrs/{ipAddress}] Get all attributes for a specific PTR Record

NameRequiredDescriptionDefault
ipAddressYesIp Address
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered elsewhere. The description adds only that all attributes of one record are returned, with no mention of missing-record behavior or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences front-loaded with the action and resource, plus the REST endpoint as a compact reference. No filler, though the endpoint string is somewhat redundant with the path parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with full annotation coverage and a fully described schema, the description supplies enough to call it correctly. The lack of an output schema is the only minor gap, and 'get all attributes' partially signals the return shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for both parameters, so the schema already documents ipAddress and x-trace-id. The description only restates that lookup is by IP address, adding no format or validation detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Retrieve a PTR Record') plus the lookup key ('by ip address'), which implicitly separates it from retrieve_ptr_records_list. It does not name any sibling explicitly, so differentiation relies on inference.

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 'by ip address' phrasing implies single-record lookup as opposed to listing, but there is no explicit statement of when to use this over retrieve_ptr_records_list or update_ptr_record. Usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_ptr_records_listB
Read-onlyIdempotent

List PTR records [GET /v1/dns/ptrs] Get a list of all PTR records, either customer or a list of IPs is required

NameRequiredDescriptionDefault
ipsNoList of IPs, separated by commas
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
searchNoSearch PTR records by ip or data
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
tenantIdNoTenant ID
customerIdNoCustomer ID
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so the safety profile is fully covered. The description adds the underlying endpoint (GET /v1/dns/ptrs) and the customer/IPs precondition, which is useful, but says nothing about pagination behavior, result volume, or return shape.

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?

Very short, but it wastes space on redundancy: 'List PTR records' is immediately restated as 'Get a list of all PTR records', and the bracketed endpoint path is developer-facing noise. The one non-obvious constraint (customer or IPs required) is buried at the end rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter list endpoint with no output schema, the description covers the essential precondition but leaves pagination (page/size), search and orderBy behavior, and the response shape entirely to the schema. Adequate but with clear gaps for a fairly wide parameter surface.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds genuinely new information: the schema marks zero required parameters, while the description states that either a customer or a list of IPs must be supplied. That constraint is not derivable from the schema alone and materially affects how the agent fills in customerId or ips.

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?

States a specific verb and resource ('List PTR records') and adds scoping context that distinguishes it from the singular retrieve_ptr_record sibling. The awkward grammar ('either customer or a list of IPs is required') muddies the sentence but the core 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The clause about needing a customer or a list of IPs implies a precondition for use, but it is not framed as explicit when-to-use guidance and there is no mention of alternatives such as retrieve_ptr_record for a single record. Usage is implied rather than directed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_record_audits_listB
Read-onlyIdempotent

List history about your DNS Records (audit) [GET /v1/dns/records/audits] List and filter the history of changes made to your DNS Records.

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
endDateNoEnd of search time range.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
recordIdNoThe identifier of the Zone record
changedByNoUserId of the user which led to the change.
requestIdNoThe requestId of the API call which led to the change.
startDateNoStart of search time range.
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds only that results are a filterable change history plus the endpoint path; it says nothing about pagination defaults, ordering behavior when orderBy is omitted, or how far back history is retained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the resource and purpose. The second sentence largely restates the first ('List history about your DNS Records' vs 'List and filter the history of changes'), a small redundancy, but nothing is bloated or buried.

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 read-only list tool with fully documented schema and complete annotations, the essentials are present. Still missing is any guidance on default sort/page size behavior or how the filters combine, which matters given nine optional parameters and no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with 9 well-documented optional parameters, so the schema fully carries parameter meaning. The description mentions filtering generally but adds no details on the date-range pairing (startDate/endDate) or the orderBy syntax beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: listing/filtering the change history of DNS Records, with the endpoint path included. It is distinguishable from retrieve_dns_zone_records_list (the records themselves) and retrieve_dns_audits_list (zone-level audits), though it never explicitly names those siblings to make the boundary obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'List and filter the history of changes' implies the audit-inspection use case, but there is no statement of when to prefer this over retrieve_dns_audits_list or retain_dns_zone_records_list, nor any prerequisites or exclusions. Usage must be inferred from the name and path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_roleA
Read-onlyIdempotent

Get specific role by id [GET /v1/roles/{roleId}] Get attributes of specific role.

NameRequiredDescriptionDefault
roleIdYesThe identifier of the role
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered. The description adds only the underlying REST path and that attributes are returned; it says nothing about 404/error behavior, permissions, or rate limiting. Adequate but thin beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the operation. Slight redundancy: 'by id' and 'specific role' are repeated, and 'Get attributes of specific role' largely restates the first sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-resource read whose annotations carry the safety profile and whose schema fully documents both params, the description supplies the action, the lookup key, and the endpoint. Missing only error/not-found semantics, which is minor here with no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters (roleId, x-trace-id) are documented in the schema itself. The description only restates that lookup is by role id and adds no format, range, or trace-header guidance.

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?

Specific verb + resource ('Get specific role by id'), and the 'by id' phrasing separates it from retrieve_role_list and from the mutating siblings create_role/update_role/delete_role. It does not name those siblings explicitly, so differentiation is implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by 'by id' — an agent can infer this is a single-record fetch versus the list tool, but the description never says when to prefer this over retrieve_role_list or what to do if the id is unknown. No prerequisites or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_role_audits_listC
Read-onlyIdempotent

List history about your roles (audit) [GET /v1/roles/audits] List and filter the history about your roles.

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
roleIdNoThe identifier of the role.
endDateNoEnd of search time range.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
changedByNochangedBy of the user which led to the change.
requestIdNoThe requestId of the API call which led to the change.
startDateNoStart of search time range.
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true. The description adds no behavioral context beyond those annotations, such as pagination behavior, response shape, or any rate-limit or authorization considerations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but repetitive: the first sentence already says 'List history about your roles (audit),' and the second sentence restates it as 'List and filter the history about your roles.' The endpoint path is useful but the rest does not earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with nine optional parameters and no output schema, the description is too minimal. It does not explain pagination defaults, ordering behavior, or what an audit entry contains, leaving the agent to infer important operational details from the schema alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all nine parameters are fully documented in the schema. The description only mentions filtering generically and adds no parameter-specific meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: list/filter the audit history for roles. This distinguishes it from sibling role CRUD tools such as retrieve_role and update_role, although it does not explicitly name any alternative audit 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?

It says the tool lists and filters role audit history, but gives no guidance on when to use it versus other audit-list siblings or versus retrieve_role. It does not mention prerequisites, exclusions, or typical scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_role_listB
Read-onlyIdempotent

List roles [GET /v1/roles] List and filter all your roles. A role allows you to specify permission to api endpoints and resources like compute.

NameRequiredDescriptionDefault
nameNoThe name of the role
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
typeNoThe type of the tag. Can be either `default` or `custom`
apiNameNoThe name of api
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
tagNameNoThe name of the tag
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered externally. The description adds useful domain context (a role grants permissions on API endpoints and resources like compute) and the underlying endpoint, but stays silent on result pagination behavior despite page/size parameters existing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the verb and endpoint front-loaded and no wasted clauses. There is minor redundancy between the title-like "List roles" and "List and filter all your roles," but it costs almost nothing.

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 read-only, fully schema-documented list tool with no output schema, the description covers what it returns at a conceptual level. It omits anything about pagination defaults or result ordering, which are the practical questions an agent calling an 8-parameter list endpoint would have.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each of the 8 optional parameters is documented in the schema, so the baseline applies. The description only generically signals that filtering exists and does not clarify semantics such as how 'type' or 'orderBy' interact with the filter set.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ("List roles", GET /v1/roles) and adds that filtering is supported, so it is clearly the collection-level counterpart to the sibling retrieve_role. It never names retrieve_role or retrieve_role_audits_list explicitly, so the differentiation is implied by the plural rather than spelled out.

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?

"List and filter all your roles" implies when to reach for it (browsing/discovery rather than fetching one role), and the optional name/type/apiName/tagName filters hint at the narrowing use cases. There is no explicit when-not guidance and no pointer to retrieve_role or the audits-list sibling for the adjacent needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_secretB
Read-onlyIdempotent

Get specific secret by id [GET /v1/secrets/{secretId}] Get attributes values for a specific secret on your account.

NameRequiredDescriptionDefault
secretIdYesThe id of the secret
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered structurally. The description adds only that it operates against 'your account' and returns 'attribute values', leaving open whether the secret payload itself is unmasked in the response — a meaningful omission for a secrets tool, though a lower bar applies given the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the endpoint path up front and no filler. There is mild redundancy between 'Get specific secret by id' and 'Get attributes values for a specific secret', but nothing that wastes meaningful space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-record read with full annotation coverage and full schema coverage, the essentials are present. However, with no output schema, the description should say what comes back — particularly whether the secret value is returned — and it does not.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 secretId and x-trace-id documented in the schema, so the baseline of 3 applies. The description adds no format, range, or sourcing guidance for secretId beyond what the schema already says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('Get specific secret by id') plus the exact endpoint path GET /v1/secrets/{secretId}, so the agent knows this is a single-record fetch. It does not name or distinguish itself from siblings like retrieve_secret_list, update_secret, or delete_secret, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not guidance is given. The singular 'specific secret' plus the {secretId} path implicitly signal 'use this for one secret, not for listing', but the agent must infer that versus retrieve_secret_list rather than being told.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_secret_audits_listC
Read-onlyIdempotent

List history about your secrets (audit) [GET /v1/secrets/audits] List and filters the history about your secrets.

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
endDateNoEnd of search time range.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
secretIdNoThe id of the secret.
changedByNochangedBy of the user which led to the change.
requestIdNoThe requestId of the API call which led to the change.
startDateNoStart of search time range.
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds only the HTTP path, which tells an agent this maps to a plain GET. Nothing is said about pagination defaults, ordering behavior, retention of audit records, or what fields a change record carries.

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 two sentences are largely duplicative — the second restates the first with a grammatical slip ('List and filters'). The endpoint tag is front-loaded and useful, but the body wastes its one sentence on repetition rather than on filtering or scope detail.

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?

This is a 9-parameter, fully optional-filter list tool with no output schema, so the description should say what an audit record contains and how paging behaves. Instead it says nothing about return values, total counts, or default page size. For a tool this parameter-rich and with no output schema, the description is under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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% across all 9 parameters (page, size, startDate/endDate, orderBy, secretId, changedBy, requestId, x-trace-id), so the schema carries parameter meaning. The description adds nothing beyond a vague mention of filtering — no clarification of date-range semantics or the orderBy format. 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?

States a specific verb+resource (list audit history for secrets) and pins the underlying endpoint GET /v1/secrets/audits. The word 'secrets' distinguishes it from the many other audits-list siblings (tag, VIP, DNS, firewall audits). It does not name a sibling explicitly, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this versus retrieve_secret_list or the other *audits_list tools, and no prerequisites, retention window, or exclusions. 'List and filters the history' only hints that filter params exist, which the schema already shows. This is the level of a tool that expects the agent to infer usage from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_secret_listB
Read-onlyIdempotent

List secrets [GET /v1/secrets] List and filter all secrets in your account.

NameRequiredDescriptionDefault
nameNoFilter secrets by name
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
typeNoFilter secrets by type
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, and open-world behavior. The description adds account scope and filtering context, but does not explain pagination behavior, default sorting, rate limits, or what a response contains.

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 very short and front-loads the operation and endpoint. There is minor redundancy between 'List secrets' and 'List and filter all secrets', but no wasted explanatory text.

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?

This is a simple list tool with six optional params and no output schema, and annotations already cover safety traits. However, the description omits pagination semantics and return-value context, leaving gaps an agent might need when composing queries.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters are already documented in the schema. The description mentions filtering generically but adds no parameter-specific meaning beyond the schema, such as supported orderBy fields or name/type filtering examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: listing and filtering secrets in an account. It implies the list scope versus a single secret, but never names or differentiates against the sibling retrieve_secret tool explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by 'List and filter all secrets in your account.' The description does not say when to choose this over retrieve_secret, create_secret, or retrieve_secret_audits_list, nor does it mention any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_snapshotB
Read-onlyIdempotent

Retrieve a specific snapshot by id [GET /v1/compute/instances/{instanceId}/snapshots/{snapshotId}] Get all attributes for a specific snapshot

NameRequiredDescriptionDefault
instanceIdYesThe identifier of the instance
snapshotIdYesThe identifier of the snapshot
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is fully covered. The description adds only a light signal that the full attribute set is returned, without covering permissions, error behavior, or pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the resource scope front-loaded and no filler. The second sentence mostly restates the first, but it does add that all attributes are returned, so it is not pure waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only single-resource GET with full schema coverage and comprehensive annotations, this is nearly sufficient. The lack of an output schema makes the "get all attributes" hint helpful, though the shape of the returned snapshot remains unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 all three parameters are documented in the schema (instanceId, snapshotId, x-trace-id). The description adds no format, scoping, or path-construction detail beyond what the schema and endpoint already give, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Retrieve a specific snapshot by id") plus the underlying endpoint, so an agent knows exactly what it fetches. It does not explicitly differentiate from the sibling list variant (retrieve_snapshot_list), which keeps it below a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use / when-not-to-use guidance and no mention of alternatives such as retrieve_snapshot_list or retrieve_image. The only cue is the implicit requirement of a known snapshotId, which the schema already conveys.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_snapshot_listB
Read-onlyIdempotent

List snapshots [GET /v1/compute/instances/{instanceId}/snapshots] List and filter all your snapshots for a specific instance

NameRequiredDescriptionDefault
nameNoFilter as substring match for snapshots names.
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
instanceIdYesThe identifier of the instance
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds the underlying GET endpoint and confirms filtering scope, but says nothing about pagination defaults, page-size limits, or ordering behavior despite exposing page/size/orderBy parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short lines, front-loaded with the core action and scope. The bracketed HTTP route is mildly redundant with the prose but does anchor the resource path clearly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description carries some burden for explaining what comes back; it does not state that a paginated collection of snapshot objects is returned or whether results are instance-scoped only. Annotations and full schema coverage make it workable, but it is only minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters including name substring filtering, paging, orderBy format and x-trace-id are already documented. The description adds no syntax or default-value meaning beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List snapshots') plus scope ('for a specific instance'), which distinguishes it from retrieve_snapshot and other snapshot tools. It does not name any sibling explicitly, but the instance-scoped listing 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'List and filter all your snapshots for a specific instance' — the agent can infer this is the multi-item read rather than the single-item retrieve. There is no explicit when-to-use vs when-not guidance or mention of retrieve_snapshot as the single-record alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_snapshots_audits_listC
Read-onlyIdempotent

List history about your snapshots (audit) triggered via the API [GET /v1/compute/snapshots/audits] List and filters the history about your snapshots your triggered via the API.

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
endDateNoEnd of search time range.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
changedByNochangedBy of the user which led to the change
requestIdNoThe requestId of the API call which led to the change
startDateNoStart of search time range.
instanceIdNoThe identifier of the instance
snapshotIdNoThe identifier of the snapshot
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds the endpoint and the fact that results are filtered audit history, but it does not disclose pagination behavior, default date ranges, audit record contents, or retention limitations.

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 short and front-loaded, but the second sentence largely restates the first with a grammatical error ('your snapshots your triggered'). It is not bloated, but it does contain redundancy rather than useful elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 optional parameters, no output schema, and an audit-history purpose, the description is too thin. It does not explain what audit records contain, how filters like changedBy, requestId, instanceId, and snapshotId interact, or what pagination and ordering expect beyond the bare schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in the schema. The description mentions filtering generically but adds no syntax or format details beyond what the schema provides, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: list audit history for snapshots, with the endpoint GET /v1/compute/snapshots/audits. It is distinguishable from sibling tools like retrieve_snapshot_list and retrieve_snapshot because it is explicitly the audit list, though the phrasing 'your snapshots your triggered' is grammatically broken and slightly obscures the meaning.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description only says it lists and filters history; it gives no guidance on when to use this audit list versus retrieve_snapshot, retrieve_snapshot_list, or other snapshot tools. There is no mention of prerequisites, typical use cases, 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.

retrieve_tagC
Read-onlyIdempotent

Get specific tag by id [GET /v1/tags/{tagId}] Get attributes values to a specific tag on your account.

NameRequiredDescriptionDefault
tagIdYesThe identifier of the tag
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and openWorld, so the description owes little on safety. Beyond the endpoint line, it adds only the garbled phrase 'Get attributes values to a specific tag,' giving no information about response contents, 404 handling, or permission requirements — a real gap given there is no output schema.

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?

Two short sentences with the verb+resource front-loaded, but the second sentence is grammatically garbled and semantically redundant, and the bracketed endpoint path restates routing information already implied by the name and schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with rich annotations and full schema coverage, the description is adequate but thin. The absence of an output schema means some statement of what a tag object contains would have real value, and the garbled sentence fails to supply 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?

Schema description coverage is 100% and both parameters (tagId, x-trace-id) are fully documented in the schema. The description only echoes 'by id' and adds no format, range, or trace-id semantics, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get specific tag by id') and the endpoint path reinforces single-resource retrieval, which implicitly separates it from retrieve_tag_list. It does not name siblings explicitly, but the 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?

There is no guidance on when to use this versus retrieve_tag_list or when to fetch a tag at all. The 'by id' qualifier hints that an identifier is required, but no prerequisites, failure conditions, or alternative routing are described.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_tag_audits_listC
Read-onlyIdempotent

List history about your assignments (audit) [GET /v1/tags/audits] List and filters the history about your assignments.

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
tagIdNoThe identifier of the tag.
endDateNoEnd of search time range.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
changedByNoUserId of the user which led to the change.
requestIdNoThe requestId of the API call which led to the change.
startDateNoStart of search time range.
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare read-only, non-destructive, idempotent, open-world behavior, so the safety profile is well covered. The description adds only the endpoint path and a vague filtering capability, without explaining pagination, audit entry contents, date-range behavior, or ordering semantics.

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 two-sentence description is short and front-loads the list operation and endpoint path. However, the second sentence largely repeats the first and contains a grammatical issue ('List and filters'), reducing efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With full schema coverage and strong annotations, the basic call contract is clear. But for a nine-parameter audit-list tool, the description does not clarify what audit entries represent or how this differs from the similarly named assignment-audit sibling, leaving meaningful context gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for all nine parameters, so the schema itself fully documents pagination, date range, tagId, changedBy, requestId, orderBy, and trace ID. The description adds no parameter-level meaning beyond what is already structured.

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 states a list operation and includes the endpoint `/v1/tags/audits`, indicating tag audit history. However, the prose repeatedly says 'history about your assignments' rather than 'tag assignment history' or 'tag change history,' which is ambiguous against the sibling `retrieve_assignments_audits_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?

It gives no indication of when to use this tool versus `retrieve_tag_list`, `retrieve_tag`, `retrieve_assignments_audits_list`, or the many other audit-list siblings. There are no prerequisites, exclusions, or recommended contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_tag_listA
Read-onlyIdempotent

List tags [GET /v1/tags] List and filter all tags in your account

NameRequiredDescriptionDefault
nameNoFilter as substring match for tag names. Tags may contain letters, numbers, colons, dashes, and underscores. There is a limit of 255 characters per tag.
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered. The description adds only the account-scoping context ('in your account') and the HTTP verb; it says nothing about pagination defaults, maximum page size, or whether filtering by name is exact or partial (that lives in the schema).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short lines with the endpoint reference front-loaded and no filler. Slightly redundant in repeating 'List tags' / 'List and filter all tags', but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A simple read-only list tool with a fully documented schema and complete safety annotations; no output schema exists, so return-value explanation is not required. The only minor gap is the absence of any note on pagination behavior across pages, which the schema leaves implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters (name, page, size, orderBy, x-trace-id) are already documented in the schema, including the substring-match semantics and orderBy format. The description adds no parameter meaning beyond the word 'filter', 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?

States a specific verb and resource ('List tags', 'List and filter all tags in your account') plus the endpoint GET /v1/tags. An agent can distinguish it from retrieve_tag (single) and the mutation siblings create_tag/update_tag/delete_tag by the plural list framing, though the description never names those siblings explicitly.

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?

'List and filter all tags in your account' implies the use case (browsing/enumerating tags, optionally narrowed by name), but there is no explicit statement of when to prefer this over retrieve_tag for a known tag, nor any exclusions or prerequisites. Usage must be inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_userB
Read-onlyIdempotent

Get specific user by id [GET /v1/users/{userId}] Get attributes for a specific user.

NameRequiredDescriptionDefault
userIdYesThe identifier of the user.
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds the concrete endpoint path, which is minor useful context, but does not disclose authentication needs, error behavior, or which attributes are returned.

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 short and front-loads the important fact: this gets a specific user by id. It is slightly redundant, since the second sentence largely restates the first and duplicates the title, but the waste is minimal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read tool with rich annotations and no output schema, the description is adequate but leaves unclear what attributes are returned and whether any permissions are required. It does not need to explain return values if an output schema existed, but none is provided here.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 fully documents both `userId` and `x-trace-id`. The description only restates that retrieval is by user id and adds no meaning beyond that schema, which is the expected baseline when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ("Get specific user by id") and reinforces it with the concrete HTTP endpoint. It implicitly distinguishes itself from the sibling `retrieve_user_list` by targeting a single user, but offers no explicit sibling differentiation for related tools like `retrieve_user_client` or `retrieve_user_is_password_set`.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase "by id" implies usage when a user identifier is available, which is a reasonable implied condition. It does not explicitly state when not to use it, prerequisites, or direct the agent to alternatives, leaving usage context largely inferred from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_user_audits_listB
Read-onlyIdempotent

List history about your users (audit) [GET /v1/users/audits] List and filter the history about your users.

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
userIdNoThe identifier of the user.
endDateNoEnd of search time range.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
changedByNochangedBy of the user which led to the change.
requestIdNoThe requestId of the API call which led to the change.
startDateNoStart of search time range.
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=true, idempotent=true, non-destructive, so safety is covered. The description adds that results can be filtered and paginated, but says nothing about ordering defaults, pagination limits, or what an audit entry contains. With the bar lowered by annotations, this is adequate but thin.

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 short but internally redundant: the title line and the body both say 'List ... history about your users,' and the GET path duplicates annotation info. Front-loaded purpose is fine, but two near-identical sentences waste space.

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 9-parameter read tool with no output schema, the definition covers purpose and filtering but omits return shape, default sort order, and relationship to other audit endpoints. Annotations handle the safety profile, so the gap is moderate rather than severe.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 9 parameters are self-documented. The description adds no parameter-level meaning beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb (list/filter) and resource (audit history of users) and includes the HTTP endpoint. It is distinguishable from retrieve_user_list or retrieve_role_audits_list by naming 'users' and 'audit'. It stops short of explicitly contrasting with the many other *audits_list siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'List and filter the history about your users' implies filtering but gives no guidance on when to use this vs the other audit tools (tag, role, dns, etc.) or vs retrieve_user_list. No exclusions, prerequisites, or default behavior are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_user_clientC
Read-onlyIdempotent

Get client [GET /v1/users/client] Get idm client.

NameRequiredDescriptionDefault
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered structurally. The description adds only the HTTP verb and path, which is marginal context and says nothing about scope, auth requirements, or what a returned client object contains.

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?

Very short and front-loaded, but the second sentence ('Get idm client') is a near-tautological restatement of the first and the bracketed endpoint duplicates the title. Nothing is wasted on length, yet little of value is delivered.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must convey what is returned, and it does not: it never says what an 'idm client' is, whether it returns one object or many, or how it relates to the user resource in the path. For a retrieval tool with no return documentation this is a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single optional parameter (x-trace-id) with 100% schema description coverage, so the schema fully documents it. The description adds nothing about it, but baseline 3 applies when the schema carries the load.

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?

States a verb (get) and a resource (idm client) plus the raw endpoint GET /v1/users/client, so the basic action is inferable. However, "client" is never defined and nothing distinguishes it from siblings like retrieve_user, retrieve_user_list, or list_user_accounts, which an agent could easily confuse it with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not-to-use, or alternative tool is mentioned. The agent gets no signal for choosing this over retrieve_user or generate_client_secret, which share the 'client' vocabulary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_user_is_password_setB
Read-onlyIdempotent

Get user is password set status [GET /v1/users/is-password-set] Get info about idm user if the password is set.

NameRequiredDescriptionDefault
userIdNoThe user ID for checking if password is set for him
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds only the HTTP endpoint and the note that this concerns an idm user; it says nothing about the return shape or error behavior when the user is unknown.

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?

Short and front-loaded with the target resource. The endpoint tag and the second sentence partially duplicate each other, but nothing is bloated enough to impede selection.

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 trivial two-parameter read this is close to sufficient, and annotations plus schema carry most of the load. The gap is the undocumented return value — a boolean status flag — which is left completely implicit since no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with only two parameters, both self-documented (userId and the trace header). The description adds no syntax, format, or defaulting information beyond what the schema already provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The second sentence states a specific check: whether an idm user's password is set, with the endpoint path confirming a GET read. It is clear enough to distinguish from generic retrieve_user, though the first sentence is an awkward near-restatement of the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No indication of when to prefer this over siblings such as retrieve_user, or what a caller should do with a false result (e.g., call reset_password). The reader must infer the usage context entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_user_listB
Read-onlyIdempotent

List users [GET /v1/users] List and filter all your users.

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
emailNoFilter as substring match for user emails.
ownerNoFilter if user is owner or not.
searchNoFull text search when listing the users. Can be searched by `first name`, `last name`, `email` or `first name` and `last name` combined
defaultNoFilter if user is default account or not.
enabledNoFilter if user is enabled or not.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds essentially nothing beyond that: it does not mention pagination behavior (despite page/size params), result ordering defaults, rate limits, or result size limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the verb and resource, with the endpoint annotation providing a useful mapping. Very little waste, though the bracketed endpoint duplicates information an agent rarely needs to act.

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?

Not applicable — description is fine for a straightforward list tool, though it omits pagination defaults and result ordering behavior that an agent calling a nine-parameter list endpoint would benefit from knowing. With a 100%-covered schema and full annotations, this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across all nine parameters, including the filter semantics for email, owner, default, enabled, search, and orderBy syntax. The description adds no parameter meaning beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List users', 'List and filter all your users') and maps it to the underlying endpoint GET /v1/users. It is clearly a collection-listing tool, distinguishable from single-resource siblings like retrieve_user, though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this versus alternatives such as retrieve_user, list_user_accounts, or retrieve_user_client. A reader can infer it is for listing, but no conditions, prerequisites, or exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_vipB
Read-onlyIdempotent

Get specific VIP by ip [GET /v1/vips/{ip}] Get attributes values to a specific VIP on your account.

NameRequiredDescriptionDefault
ipYesThe ip of the VIP
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds the HTTP route and that results are scoped to 'your account', plus that attribute values are returned, but says nothing about error behavior when the IP is unknown or what happens with foreign IPs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the identifying verb and resource. The verb phrase is repeated in the endpoint bracket and the trailing sentence ('Get attributes values...') is grammatically awkward, but nothing is bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations gap and full schema coverage, the main remaining burden is describing the return shape, which the description only vaguely gestures at ('Get attributes values'). It also fails to distinguish this single-item getter from retrieve_vip_list, leaving an agent to infer the split.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 'ip' and 'x-trace-id' documented in the schema itself. The description's 'by ip' merely restates the required parameter and adds no format, validation, or addressing semantics beyond what the schema provides - the baseline 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?

States a specific verb and resource ("Get specific VIP by ip"), which is clearer than a bare name and distinguishes it from the list variant by the 'by ip' qualifier. It does not, however, explicitly name retrieve_vip_list as the sibling it is not.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: 'by ip' suggests it is for fetching a single known VIP rather than enumerating vips. There is no explicit when-to-use, no prerequisite note, and no mention of retrieve_vip_list as the alternative for browsing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_vip_audits_listB
Read-onlyIdempotent

List history about your VIPs (audit) [GET /v1/vips/audits] List and filters the history about your VIPs.

NameRequiredDescriptionDefault
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
vipIdNoThe identifier of the VIP.
endDateNoEnd of search time range.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
changedByNoUser name which did the change.
requestIdNoThe requestId of the API call which led to the change.
startDateNoStart of search time range.
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so safety and idempotency are covered. The description adds that the operation lists and filters history, but does not disclose pagination behavior, default ordering, or time-range defaults.

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 definition is short and front-loaded with the core purpose and endpoint. The second sentence largely repeats the first, but there is no clutter or excessive length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only audit-list tool with fully documented schema and complete annotations, the description provides enough context to call it correctly. It does not need to explain return values because no output schema exists, though it could say more about result ordering or pagination.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents page, size, vipId, date range, orderBy, changedBy, requestId, and x-trace-id. The description adds no syntax, defaults, or parameter-specific meaning beyond that baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: listing/filtering audit history for VIPs, with the endpoint GET /v1/vips/audits. It is distinguishable from retrieve_vip_list and other audit-list siblings by the 'VIPs (audit)' framing, though it does not explicitly contrast itself with those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus retrieve_vip_list or other audit-list tools. The phrase 'List and filters the history about your VIPs' restates purpose rather than giving usage conditions or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_vip_listC
Read-onlyIdempotent

List VIPs [GET /v1/vips] List and filter all vips in your account

NameRequiredDescriptionDefault
ipNoThe ip of the VIP
ipsNoComma separated IPs
pageNoNumber of page to be fetched.
sizeNoNumber of elements per page.
typeNoThe VIP type.
regionNoThe region of the VIP.
orderByNoSpecify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.
ipVersionNoThe VIP version.
dataCenterNoThe dataCenter of the VIP.
resourceIdNoThe resourceId using the VIP.
x-trace-idNoIdentifier to trace group of requests.
resourceNameNoThe name of the resource.
resourceTypeNoThe resourceType using the VIP.
resourceDisplayNameNoThe display name of the resource.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered without the description. The description adds essentially nothing beyond that: no pagination defaults for page/size, no note on how multiple filters combine, no result ordering behavior, and no return shape (there is no output schema either).

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?

It is very short and front-loaded, but the two lines are partially redundant ("List VIPs" then "List and filter all vips"). Two of the three pieces of information are the endpoint tag and a restatement, so the space is not fully earned.

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 14-parameter list tool the schema fully carries the input burden, so the call can be made correctly. What is missing is output-side context: no output schema exists and the description says nothing about what a VIP record contains or how paging behaves, which leaves a real gap for a paginated collection endpoint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 14 parameters are documented in the schema itself, which sets the baseline at 3. The description names neither the filters nor pagination, so it contributes no semantics beyond the structured fields.

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?

States a specific verb and resource ("List VIPs" / "List and filter all vips in your account") and the HTTP endpoint, so the agent knows it is a collection read. It does not distinguish itself from the sibling retrieve_vip (singular), which an agent could plausibly confuse it with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of the sibling retrieve_vip for single-VIP lookups. The only hint is the word "filter", which implies a query use case but leaves selection between retrieval tools to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

revoke_cancel_domainC

Revoke cancellation for a specific domain [POST /v1/domains/{domain}/revoke-cancellation] Revoke cancellation for a specific domain

NameRequiredDescriptionDefault
domainYesDomain Name
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond a restatement of the title – it does not say what revoking the cancellation restores (renewal/billing), whether it can be undone, or what happens if no cancellation is pending.

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?

Very short, but the same sentence is repeated verbatim after the HTTP path, which is pure waste. Front-loading is fine (the verb+resource comes first), but the duplication suggests an auto-generated description with no editing.

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 state-changing domain operation with no output schema, the description leaves important context unstated: the intermediate state required for it to succeed, the resulting domain status, and any billing/renewal implications. An agent could call it in the wrong lifecycle state and get an error it cannot predict.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 both the 'domain' path parameter and the 'x-trace-id' header are already documented in the schema. The bracketed path hints that 'domain' is a path segment, but no format or example is added, so this is baseline.

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?

States a specific verb plus resource ('Revoke cancellation for a specific domain') and includes the HTTP path, which makes the effect clear without opening the schema. It is distinguishable from the sibling cancel_domain by the word 'revoke', though the description never names that sibling as its inverse.

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 statement of when to use this versus cancel_domain, no prerequisites (e.g. that the domain must currently be in a cancellation state), and no exclusions. The agent must infer the usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

revoke_domain_transfer_outC
DestructiveIdempotent

Revoke transfer out for a domain [DELETE /v1/domains/{domain}/transfer-out] Revoke transfer out for a domain

NameRequiredDescriptionDefault
domainYesDomain Name
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false, and openWorldHint=true, so the safety profile is known. The description adds nothing beyond the annotations — it doesn't say what state is destroyed or restored, whether the transfer lock is re-enabled, whether the domain must be in a specific transfer state, or whether the action is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description repeats itself verbatim: the same sentence appears once as the summary and again after the endpoint bracket, with nothing new added. The endpoint path, which is the only extra information, is buried mid-string.

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?

This is a destructive mutation with no output schema and no annotation explaining preconditions or side effects; the description should at minimum state that the transfer-out request is voided and what the domain's resulting state is. Neither is covered, leaving an agent unable to predict the effect of the call.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 both the 'domain' and 'x-trace-id' parameters are already documented in the schema, and the description adds no additional semantics. Baseline 3 applies when the schema does the heavy lifting.

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?

States a specific verb and resource ('Revoke transfer out for a domain') plus the HTTP endpoint, so the action is unambiguous. However, it does nothing to distinguish it from closely related siblings such as confirm_domain_transfer_out, revoke_cancel_domain, or cancel_domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance is given, and no alternatives are named. With siblings like confirm_domain_transfer_out and revoke_cancel_domain in the same domain-name namespace, the agent is left to infer which operation applies to which state.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rollback_snapshotB

Revert the instance to a particular snapshot based on its identifier [POST /v1/compute/instances/{instanceId}/snapshots/{snapshotId}/rollback] Rollback the instance to a specific snapshot. In case the snapshot is not the latest one, it will automatically delete all the newer snapshots of the instance

NameRequiredDescriptionDefault
bodyYesJSON request body
instanceIdYesThe identifier of the instance
snapshotIdYesThe identifier of the snapshot
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The disclosure that non-latest rollback 'automatically delete[s] all the newer snapshots' is genuinely valuable side-effect information the agent cannot get from the schema. However, it directly conflicts with the annotation destructiveHint=false, which would lead an agent to under-estimate the risk of an irreversible cascade delete.

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?

Front-loaded with the operation and endpoint, and the cascade-delete warning is the second sentence where it belongs. Slight redundancy between the first and second sentences ('Revert ... based on its identifier' vs 'Rollback the instance to a specific snapshot') costs a little.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation with no output schema, the description covers the key irreversible side effect but omits what the agent still needs: whether the rollback is synchronous, what instance state results, and what the required empty 'body' should contain. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so instanceId, snapshotId, and x-trace-id are already documented; the description adds no format or constraint detail beyond them. The required 'body' parameter is an empty object whose expected content is unexplained in both schema and description, which the description does not compensate for.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Revert the instance to a particular snapshot') plus the exact endpoint path, making it clearly distinguishable from siblings like update_snapshot, delete_snapshot, and create_snapshot. An agent can identify the operation without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it (to return an instance to a prior snapshot) and explains a conditional consequence, but gives no explicit exclusions, prerequisites (e.g., whether the instance must be stopped), or pointers to the sibling snapshot tools. Usage is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_default_handleC

Set default handle [PATCH /v1/domains/handles/{handleId}/default] Set default handle

NameRequiredDescriptionDefault
handleIdYesThe identifier of the handle
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, idempotentHint=false and destructiveHint=false, so the mutation profile is partly covered. The description adds nothing about the side effect that matters most — that setting a default presumably unsets the previous default — nor about permissions or error cases. The endpoint path is the only added information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text says 'Set default handle' twice (once as prose, once after the PATCH path). It is short but entirely redundant rather than economical — the space is wasted on repetition instead of the missing behavioral detail.

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?

A state-changing, non-idempotent operation on a domain resource with no output schema; the description should explain the exclusivity semantics and any prerequisites. Instead it only repeats the name and the HTTP route, leaving the agent unable to predict the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 only handleId and a trace header, so the schema fully documents the inputs. The description adds no meaning beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is 'Set default handle', a verbatim restatement of the tool name and annotation title, plus the raw endpoint path. It never explains what a 'default handle' governs (e.g., the registrar handle used for a domain), so the agent learns nothing beyond the name 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 when-to-use guidance and no mention of the closely related siblings update_handle, retrieve_handle, or list_handles. The agent is left to infer whether this supersedes an existing default or requires prior state.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_ext_checkC

Start check [POST /v1/troubleshooting/checks] Start a new check

NameRequiredDescriptionDefault
bodyYesJSON request body
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true, and destructiveHint=false, so the safety profile is known. The description adds nothing beyond the annotations: it doesn't say whether the check runs asynchronously, whether it consumes quota, or what state a repeated invocation would create.

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?

It is short and front-loaded, but the second sentence ('Start a new check') merely restates the name and title, so one of only two sentences carries no information. Conciseness here comes from under-specification rather than economy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has only two top-level parameters, a fully described schema, and no output schema, so the structured fields cover much of the burden. Still, for a non-idempotent, open-world mutation that kicks off a troubleshooting job, the description should have said what happens after the call.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 per-field descriptions inside the nested body object, so parameter meaning is fully carried by the schema. The description contributes no extra semantics (e.g., that checkCollectionId is optional or how it interacts with checkTemplateId); baseline 3 applies.

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?

It gives a verb and resource ('Start a new check') plus the backing endpoint (POST /v1/troubleshooting/checks), so the operation is identifiable. But it never explains what a 'check' is in this product, nor distinguishes the tool from close siblings like start_ext_check_collection, start_ext_remedy, or get_ext_check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to start a check versus a check collection or a remedy, no prerequisites (checkTemplateId / checkCollectionId come from list_ext_check_collection_templates), and no note about how to follow up (poll get_ext_check?). The agent must infer all of this from sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_ext_check_collectionC

Start check collection [POST /v1/troubleshooting/check-collections] Start a new check collection

NameRequiredDescriptionDefault
bodyYesJSON request body
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a non-destructive, non-idempotent, open-world mutation. The description adds nothing beyond that: it does not explain what starting a collection does, whether it is asynchronous, what side effects occur, or what the result represents.

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 short and front-loaded, but it redundantly repeats the same idea: 'Start check collection' followed by 'Start a new check collection.' The endpoint annotation is the only additional information, and the second sentence does not add much.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with a nested request body and no output schema, the description is too thin. It does not explain what a check collection is, what starting one entails, whether the operation is asynchronous, or what an agent should expect after invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including descriptions for objectId, objectType, checkCollectionTemplateId, and x-trace-id, so the schema carries parameter semantics. The description adds no additional meaning about the required body or how the vserver/template IDs are used.

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 states a specific verb and resource: starting a check collection, and the endpoint hints at the API operation. However, 'check collection' is undefined, and the description does not distinguish this tool from closely related siblings such as start_ext_check or list_ext_check_collections. The second sentence largely repeats the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as start_ext_check or the collection retrieval/cancel tools. No prerequisites, such as needing a template ID or a vserver object, are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_ext_remedyC

Start remedy [POST /v1/troubleshooting/remedies] Start a new remedy

NameRequiredDescriptionDefault
bodyYesJSON request body
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond those hints—no note about what the started remedy affects, whether it can be cancelled, or what permissions are needed for a non-idempotent open-world mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short fragments with the endpoint front-loaded and no filler. It is efficiently sized, though the brevity contributes to the missing context rather than being an independent strength.

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 non-idempotent, open-world mutation with a nested request body and no output schema, the description leaves the agent without any understanding of the remedy lifecycle, expected response, or effect on the target vserver. Annotations only partially compensate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the nested body fields (objectId, objectType, remedyTemplateId, remedyCollectionId) are individually documented. The description adds no meaning beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (start) and resource (remedy) plus the HTTP endpoint, which tells an agent exactly what action is taken. It does not distinguish itself from siblings like start_ext_check_collection, cancel_ext_remedy, or get_ext_remedy, nor explain what a 'remedy' is in this API.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to start a remedy versus cancelling one, retrieving one, or starting an external check collection. The agent must infer the workflow context entirely from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

suggest_domainsB
Read-onlyIdempotent

Suggest domains [GET /v1/domains/suggestions] Return available domain-name suggestions for a query across a TLD set.

NameRequiredDescriptionDefault
tldsNoTLDs to include. Repeat the parameter per TLD. Defaults to com, net, org, info, de, at, ch, me, ai.
limitNoMaximum number of suggestions to return (1-100).
queryYesDesired name to base suggestions on (bare label or domain).
premiumNoWhether to include premium-priced suggestions.
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered structurally; the description only adds that this is a GET endpoint returning suggestions. It says nothing about whether results are cached, whether suggestions carry pricing/premium flags, or what a suggestion object contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the verb and resource, with the endpoint path appended compactly. No filler, though the bracketed route adds little for an agent that already has the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With five well-documented params, full annotation coverage, and no output schema, the description is close to sufficient but leaves the return shape underspecified — 'suggestions' could mean bare labels, FQDNs, or objects with price/availability, and the premium flag's effect on results is unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 every parameter including tlds, limit, premium and x-trace-id is already documented in the schema. The description only restates the query/TLD-set idea, adding no semantics (e.g. how premium interacts with the result set) beyond structured fields — baseline 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 pairs a specific verb and resource ('Suggest domains') with the underlying endpoint and states the scope ('across a TLD set'). An agent can tell it generates name ideas rather than checking a single name, but it never names the near-miss sibling validate_domain_availability to draw the boundary explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the verb 'suggest' — the description never says when to reach for this versus validate_domain_availability or order_domain. No prerequisites, no exclusions, and no guidance on whether suggestions are guaranteed available.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

switch_accountC

Switch user account [POST /v1/me/action/switchAccount] Switch user account

NameRequiredDescriptionDefault
bodyYesJSON request body
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false and destructiveHint=false, so the safety profile is known. The description adds nothing beyond them: it never explains what happens to the current session/token, whether a new token is issued, or whether permissions/tenant scope change — the key behavioral facts for an account-switch operation.

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?

It is short, but that shortness comes from duplication: 'Switch user account' appears in line one and again in line two, alongside a raw endpoint path. No sentence carries information beyond the tool name.

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 non-idempotent mutation with a nested required body (three identifiers), no output schema, and no description of the resulting state, the definition is incomplete. An agent cannot tell what switching an account actually changes about its current context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so email, tenantId, customerId and x-trace-id are all documented in the schema. The description adds no semantics about how these identifiers relate or which account is being entered, so the baseline 3 applies.

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?

It names a specific verb and resource ('Switch user account'), so the basic action is clear. However, it does not distinguish this from look-alike siblings such as make_default_account or list_user_accounts, and the second line merely repeats the first, adding nothing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus make_default_account, list_user_accounts, or generate_sso_token, nor any stated preconditions. The agent must infer the use case entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unassign_instance_firewallA
DestructiveIdempotent

Remove instance from a firewall [DELETE /v1/firewalls/{firewallId}/instances/{instanceId}] Remove a specific instance from a firewall

NameRequiredDescriptionDefault
firewallIdYesThe identifier of the firewall
instanceIdYesThe identifier of the instance
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=true, so the safety profile is fully carried by structured data. The description adds only the HTTP verb, not what is actually destroyed (just the association, not the firewall or instance) or any permission/error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short and front-loaded, but the second sentence restates the first almost verbatim ('Remove a specific instance from a firewall'), so it spends a line on redundancy rather than new information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-identifier detach operation with full schema coverage and complete annotations, nothing critical is missing. Only the side-effect scope (association removed vs. resource deleted) is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 required identifiers documented, so the baseline is 3. The description adds no path-parameter mapping or hints beyond what firewallId/instanceId already state.

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?

States a specific verb and resource ('Remove instance from a firewall') and gives the raw DELETE endpoint, which pins down exactly what is affected. It does not explicitly contrast with the inverse sibling assign_instance_firewall, but the name and endpoint make the direction unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the operation — call this to detach an existing instance from a firewall, the inverse of assign_instance_firewall — but the description never says when to use it, what preconditions apply (instance must currently be assigned), or what happens on an already-unassigned instance. No alternative is named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unassign_instance_private_networkB
DestructiveIdempotent

Remove instance from a Private Network [DELETE /v1/private-networks/{privateNetworkId}/instances/{instanceId}] Remove a specific instance from a Private Network

NameRequiredDescriptionDefault
instanceIdYesThe identifier of the instance
x-trace-idNoIdentifier to trace group of requests.
privateNetworkIdYesThe identifier of the Private Network

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the risk profile is known. The description adds only the HTTP verb/path, which hints at the concrete effect (removing a membership link rather than deleting the instance), but says nothing about side effects such as losing connectivity to the network.

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 endpoint is front-loaded and useful, but the second sentence restates the first almost verbatim, so roughly half the text is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With rich annotations and a fully documented schema, the description only needs to confirm effect and prerequisites. It conveys the detach semantics implicitly via the path but omits any note about what the instance loses or whether the network must exist, leaving a small gap for a destructive operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both IDs and the trace header are already documented. The path template loosely maps privateNetworkId and instanceId to URL segments but adds no format or constraint detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('Remove instance from a Private Network') and the endpoint template pins the exact scope. It is distinguishable from the inverse sibling assign_instance_private_network, though the description never names that sibling to make the pairing explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, prerequisites, or alternatives are stated. The agent must infer from the inverse tool name that assign_instance_private_network is the counterpart and that this is the detach operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unassign_ipC
DestructiveIdempotent

Unassign a VIP to a VPS/VDS/Bare Metal [DELETE /v1/vips/{ip}/{resourceType}/{resourceId}] Unassign a VIP from an VPS/VDS/Bare Metal using the machine id.

NameRequiredDescriptionDefault
ipYesThe ip you want to add the instance to
resourceIdYesThe identifier of the resource
x-trace-idNoIdentifier to trace group of requests.
resourceTypeYesThe resourceType using the VIP.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=true; the description merely restates the DELETE verb already implied by those hints. It says nothing about consequences — whether the IP is released back to the pool, whether the VIP must currently be assigned, or what authorization is needed. The 'to'/'from' wording even muddies direction.

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?

Two short sentences plus the endpoint reference, but the second sentence largely repeats the first ('Unassign a VIP to a VPS/VDS/Bare Metal' vs. 'Unassign a VIP from an VPS/VDS/Bare Metal using the machine id'). Front-loaded and not bloated, but redundant rather than additive.

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?

Safety profile is covered by annotations and all parameters are documented, but for a destructive unassign operation the description leaves the outcome (what happens to the IP/VIP pairing) and preconditions unstated, and there is no output schema to explain the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 ip, resourceId, resourceType (with its enum), and x-trace-id. The description adds only the phrase 'using the machine id' to clarify resourceId, which is marginal added meaning — 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?

Names a specific verb (unassign), resource (VIP), and target types (VPS/VDS/Bare Metal), plus the underlying DELETE endpoint. An agent can tell it apart from assign_ip by the verb, but the description never names that sibling explicitly and contains a grammar slip ('Unassign a VIP to a VPS').

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 statement of when to use this vs. assign_ip or the other VIP tools, no prerequisites (must the VIP already be assigned?), and no failure conditions. Only 'using the machine id' hints at the required identity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_dns_zone_recordC

Update DNS zone record [PATCH /v1/dns/zones/{zoneName}/records/{recordId}] Create resource record in a zone

NameRequiredDescriptionDefault
bodyYesJSON request body
recordIdYesThe identifier of the DNS record
zoneNameYesZone name
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds only the PATCH endpoint, and its 'Create resource record' line actively conflicts with the update semantics, leaving unclear whether unspecified body fields are preserved or reset and whether the whole record is replaced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the second sentence is a copy-paste artifact from a create operation that contradicts the tool's own name and wastes the only explanatory slot. The useful information (PATCH semantics) is buried in brackets rather than 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 4-parameter tool with a nested 8-field body, 100% schema coverage and no output schema, the description only needs to confirm intent and partial-update behavior. It half-does that via the PATCH path but undercuts it with the contradictory 'Create resource record' phrasing.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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% (zoneName, recordId, body and all nested fields documented), so the schema carries the parameter burden. The description contributes nothing beyond the path template, so the baseline 3 applies.

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 first clause names a specific verb and resource (update DNS zone record) and the HTTP path, which is reasonably identifiable. However, the appended sentence 'Create resource record in a zone' describes a creation operation and directly muddles whether this tool updates or creates, and it does not distinguish the tool from siblings like create_dns_zone_record.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this versus create_dns_zone_record, update_ptr_record, or bulk_delete_dns_zone_records. The only hint is the PATCH path, which an agent must infer means 'modify an existing record'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_domainA

Update a specific domain [PATCH /v1/domains/{domain}] Update nameservers and handles for a specific domain

NameRequiredDescriptionDefault
bodyYesJSON request body
domainYesDomain Name
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose readOnlyHint=false, openWorldHint=true, idempotentHint=false, and destructiveHint=false, so the safety profile is covered. The description adds the PATCH endpoint and affected fields, but does not explain partial-update semantics, validation behavior, or whether omitted fields remain unchanged.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short, front-loaded lines with no filler: the action and endpoint come first, followed by the fields being updated. Every sentence contributes directly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With full schema coverage and clear annotations, the description is sufficiently complete for a straightforward PATCH mutation. The main remaining gap is PATCH-specific behavior around partial updates, but that is a minor omission given the rich schema and annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already fully documented in the schema. The description only names the high-level body fields (nameservers and handles) and adds no syntax or constraint detail beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: update a specific domain via PATCH, and names the exact fields being changed (nameservers and handles). This clearly distinguishes it from retrieve_domain, cancel_domain, order_domain, and update_handle siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the use case clear enough: updating nameservers and handles on an existing domain. However, it gives no explicit when-to-use guidance versus siblings, no prerequisites, and no exclusions such as when to use handle-specific update tools instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_handleC
Idempotent

Update specific handle [PUT /v1/domains/handles/{handleId}] Update specific handle

NameRequiredDescriptionDefault
bodyYesJSON request body
handleIdYesThe identifier of the handle
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false, openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that: it doesn't say whether the PUT replaces the whole handle or merges, whether omitted optional fields are cleared, or that the operation touches upstream registries (NIC.it, AFNIC, SIDN).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but it is also the same sentence printed twice, with the endpoint tag interleaved. That is redundant filler rather than front-loaded information; the space could have carried one useful clause about PUT replacement semantics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with a deep nested body (address, phone, fax, birthInfo, multiple registry-specific fields), no output schema, and no annotations beyond hints, the description is essentially empty. An agent cannot learn from it whether the body is a full replacement, what a successful response looks like, or what registry validation errors to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the nested body fields all carry their own descriptions. The description adds no meaning beyond the schema — notably it never mentions that handleId is the same path identifier used by retrieve_handle/remove_handle.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the tool name expanded into a sentence: 'Update specific handle' repeated twice plus the endpoint path. It restates the identifier rather than explaining what an update to a handle entails (which fields, replacement vs merge, effect on registrant data). A sibling like retrieve_handle is distinguishable only by the verb, which the name already gives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, no prerequisites, no mention of alternatives (e.g. create_handle, remove_handle, set_default_handle). The agent gets no signal about when this is the right call or what state the handle must be in first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_imageB

Update custom image name by its id [PATCH /v1/compute/images/{imageId}] Update name of the custom image

NameRequiredDescriptionDefault
bodyYesJSON request body
imageIdYesThe identifier of the image
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so safety is covered. The description adds the PATCH endpoint, which implies a partial update, but it does not state whether omitted fields are preserved, whether the change is reversible, or that only custom images are eligible. No contradiction with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short and front-loaded with the action and target. The second sentence largely restates the first ('Update name of the custom image'), so one of the two sentences does not earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with a nested body and no output schema, the essentials are present via annotations and the fully described schema. However, the description leaves open whether description is updatable and what a successful response contains, which matters for a PATCH on a nested object.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so imageId, body.name and body.description are already documented, making 3 the baseline. The description adds a small hint that imageId identifies the target ('by its id') but omits the description field entirely, so it adds no real meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Update custom image name by its id'), which is enough to distinguish it from retrieve_image, delete_image, and create_custom_image. The scope is slightly muddled: it claims to update the 'name' only, while the request body also accepts a description, leaving the agent unsure how much of the image is mutable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus create_custom_image, delete_image, or retrieve_image, and no mention of prerequisites such as owning a custom (non-system) image. The agent must infer the usage context entirely from the name and HTTP path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_object_storageB

Modifies the display name of object storage [PATCH /v1/object-storages/{objectStorageId}] Modifies the display name of object storage. Display name must be unique.

NameRequiredDescriptionDefault
bodyYesJSON request body
x-trace-idNoIdentifier to trace group of requests.
objectStorageIdYesThe identifier of the object storage.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the safety profile is largely covered. The description adds one genuinely useful behavioral fact – the uniqueness requirement that can cause failure – but says nothing about permissions, side effects, or what the response returns.

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 core statement is front-loaded and short, but the first sentence is literally repeated ('Modifies the display name of object storage' appears twice), wasting space in an already tiny description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with a nested body object and no output schema, the description covers what changes and one failure condition. It leaves out permissions, response shape, and effects on other settings, which an agent would benefit from knowing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description adds real meaning by making explicit that only the display name is modified, clarifying that objectStorageId and x-trace-id are addressing/tracing rather than update targets. This resolves ambiguity the tool name alone would create.

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?

States a specific verb and resource ('Modifies the display name of object storage') and the PATCH path, and usefully narrows scope to the display name rather than the whole resource implied by the tool name. It does not distinguish itself from the many nearby siblings such as retrieve_object_storage or upgrade_object_storage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance and no alternative named. The only constraint given is that the display name must be unique, which is a validation rule rather than routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_ptr_recordC
Idempotent

Edit a PTR Record by ip address [PUT /v1/dns/ptrs/{ipAddress}] Edit attributes for a specific PTR Record

NameRequiredDescriptionDefault
bodyYesJSON request body
ipAddressYesIp Address
x-trace-idNoIdentifier to trace group of requests.

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds only the HTTP verb/path; it does not say whether PUT replaces the whole record or only the ptr field, what happens when the IP has no existing PTR record, or whether auth/permissions beyond the API key are required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loaded, but the two sentences are near-duplicates ('Edit a PTR Record by ip address' / 'Edit attributes for a specific PTR Record'), and the bracketed endpoint largely repeats the annotation title. The second sentence adds almost no 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?

A mutation tool with a nested request body, no output schema, and only annotation-level behavior disclosure needs more: it never explains the effect of the update, error behavior for unknown IPs, or what a successful response contains. What exists is adequate to identify the tool but thin for calling it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each parameter (ipAddress, body.ptr, x-trace-id) carries its own description, so the schema does the heavy lifting. The description's 'by ip address' reinforces the addressing parameter but adds no format detail (IPv4 vs IPv6) or note on the nested body requirement.

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?

States a specific verb (edit) and resource (PTR Record) plus the addressing key (ip address) and the underlying endpoint PUT /v1/dns/ptrs/{ipAddress}. An agent can distinguish it from create_ptr_record, retrieve_ptr_record, and delete_ptr_record by the verb alone, though the description never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this versus create_ptr_record (which presumably also handles a PTR for an IP) or the delete/retrieve variants, and no precondition such as 'the PTR record must already exist.' Usage is only inferable from the word 'Edit.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_roleB
Idempotent

Update specific role by id [PUT /v1/roles/{roleId}] Update attributes to your role. Attributes are optional. If not set, the attributes will retain their original values.

NameRequiredDescriptionDefault
bodyYesJSON request body
roleIdYesThe identifier of the role
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the partial-update behavior ('unset attributes retain original values'), which is genuinely useful context, but it says nothing about the effect of the admin/accessAllResources escalation flags or what is returned. Worse, 'attributes are optional' sits awkwardly against a body schema that requires name, admin and accessAllResources.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the operation and endpoint, with the merge semantics placed second where they belong. Slight redundancy between 'Update attributes to your role' and the opening sentence, but no wasted prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with a deep nested body, full schema coverage and annotations, the description covers the core operation but leaves permission requirements, the effect of the admin flag, and the response shape unaddressed. It is adequate but with clear gaps for a privileged write operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the nested body, permissions array and roleId are all documented in the schema, so the baseline is 3. The description's only added semantic is the merge-on-omission behavior, which it does not reconcile with the schema's required body fields.

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?

States a specific verb and resource ('Update specific role by id') plus the underlying endpoint [PUT /v1/roles/{roleId}], which clearly separates it from create_role, retrieve_role and delete_role. It stops short of explicitly naming or contrasting with those siblings, so a 4 rather than a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Nothing says when an agent should choose update_role over, say, create_role or update_user, nor what permissions or preconditions are required. The only guidance given ('Attributes are optional. If not set, the attributes will retain their original values') describes update semantics, not when-to-use vs alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_secretA

Update specific secret by id [PATCH /v1/secrets/{secretId}] Update attributes to your secret. Attributes are optional. If not set, the attributes will retain their original values. Only name and value can be updated.

NameRequiredDescriptionDefault
bodyYesJSON request body
secretIdYesThe id of the secret
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false and idempotentHint=false; the description adds the key behavioral fact that this is a partial merge update where omitted fields keep their original values. It doesn't cover auth requirements, whether the old value is recoverable, or audit side effects, but the merge semantics are the main non-obvious trait.

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 first sentence and the endpoint tag are front-loaded and useful, but 'Update attributes to your secret' restates the opening sentence and earns no place. The remaining two sentences are substantive, so the waste is limited rather than structural.

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 PATCH mutation with annotations covering the safety profile, no output schema, and fully described params, the description supplies the semantics an agent most needs: optional fields, merge behavior, updateable attributes. It is nearly complete; only permission/irreversibility context is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents secretId, name, value and x-trace-id. The description adds the constraint that only name and value can be updated, but that is already visible from the body properties, so the added value is marginal and the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Update specific secret by id') and pins it to the PATCH endpoint, which separates it from create_secret, delete_secret and retrieve_secret by HTTP semantics alone. It does not explicitly name a sibling alternative, but the operation 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Attributes are optional. If not set, the attributes will retain their original values' gives usable partial-update guidance. There is no statement of when to prefer this over create_secret or delete_secret, nor any prerequisite such as permissions or secret ownership.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_snapshotA

Update specific snapshot by id [PATCH /v1/compute/instances/{instanceId}/snapshots/{snapshotId}] Update attributes of a snapshot. You may only specify the attributes you want to change. If an attribute is not set, it will retain its original value.

NameRequiredDescriptionDefault
bodyYesJSON request body
instanceIdYesThe identifier of the instance
snapshotIdYesThe identifier of the snapshot
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is known. The description adds real value beyond that with merge semantics (unset fields retain original values), which an agent cannot infer from annotations. It still says nothing about permissions, what happens on concurrent modification, or how name uniqueness conflicts are handled.

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?

Three short sentences, front-loaded with the endpoint and identity, then the semantics. Minor redundancy between the title echo "Update specific snapshot by id" and "Update attributes of a snapshot," but nothing is wasted.

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 narrow partial-update tool with full schema coverage and annotations covering safety and idempotency, the description supplies exactly the one thing structured data cannot: merge semantics for omitted attributes. No output schema exists, but the tool's behavior is fully inferable.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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%, including per-field descriptions and length limits for name and description, so the schema carries the parameter burden and baseline is 3. The description's only added semantic is that body fields are individually optional, which is marginal beyond what the schema already implies.

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?

States a specific verb and resource ("Update specific snapshot by id") plus the underlying endpoint, and "Update attributes of a snapshot" disambiguates it as a partial attribute update rather than a rollback or recreation. It does not explicitly name the nearest siblings (rollback_snapshot, patch_instance, create_snapshot), so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The sentence "You may only specify the attributes you want to change. If an attribute is not set, it will retain its original value" gives genuinely useful usage guidance for PATCH-style invocation. However, there is no statement of when to prefer this over rollback_snapshot or create_snapshot, and no prerequisites such as the state the instance/snapshot must be in.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_tagB

Update specific tag by id [PATCH /v1/tags/{tagId}] Update attributes to your tag. Attributes are optional. If not set, the attributes will retain their original values.

NameRequiredDescriptionDefault
bodyYesJSON request body
tagIdYesThe identifier of the tag
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare that this is a non-read-only, open-world, non-idempotent, non-destructive mutation. The description adds useful partial-update semantics by explaining that attributes are optional and omitted attributes retain their original values, but it does not cover permissions, response behavior, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loads the operation and endpoint. There is slight redundancy between the first sentence and 'Update attributes to your tag,' but no wasted paragraphs.

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 annotations and fully described schema give enough context to invoke the tool correctly, and the partial-update note is useful. However, with no output schema, the description does not explain what the update returns, and it does not route the agent away from sibling tag tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents tagId, x-trace-id, and the nested body properties. The description adds some semantic value by clarifying that body attributes are optional and preserve existing values when omitted, but it does not add format or validation detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: update a tag, scoped by id and mapped to PATCH /v1/tags/{tagId}. It is clear what the tool does, though it does not explicitly distinguish itself from sibling operations such as create_tag, retrieve_tag, or delete_tag.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool updates an existing tag, but it gives no explicit guidance on when to use it versus alternatives, nor does it state 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.

update_userA

Update specific user by id [PATCH /v1/users/{userId}] Update attributes of a user. You may only specify the attributes you want to change. If an attribute is not set, it will retain its original value.

NameRequiredDescriptionDefault
bodyYesJSON request body
userIdYesThe identifier of the user.
x-trace-idNoIdentifier to trace group of requests.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, destructiveHint=false and openWorld=true, and the description adds genuinely new behavioral context: this is a merge/partial update, not a full replace, so omitted fields survive. That is exactly the kind of mutation semantics annotations cannot express. It stops short of stating side effects (e.g. disabling a user locks them out) or permission requirements, so not a 5.

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?

Front-loaded with the verb, resource and endpoint, followed by two short sentences that each carry a rule. The opening 'Update specific user by id' lightly duplicates the title, which is the only waste.

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 3-parameter partial-update tool with full schema coverage and no output schema, the description covers the one thing the schema cannot: that the body is merged rather than replaced. Missing only permission prerequisites and the shape of the response, which are secondary here.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 nested body already documents every attribute (totp, roles, locale, enabled, names, secondaryEmail, sendInvoiceEmail) in detail. The description adds no parameter-level detail beyond the general 'only set what you change' rule, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource plus the HTTP method and path (PATCH /v1/users/{userId}), which pins down exactly which entity is mutated. It does not contrast with nearby siblings such as update_role or request_email_change, so an agent must infer the boundary, but the core 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a meaningful usage rule — only send the attributes you want changed, unset attributes are preserved — which tells the agent how to call it. It says nothing about when to prefer this over siblings (reset_password, request_email_change, generate_sso_token) for specific user modifications, so routing guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upgrade_instanceB

Upgrading instance capabilities [POST /v1/compute/instances/{instanceId}/upgrade] In order to enhance your instance with additional features you can purchase add-ons. Currently only firewalling and private network addon is allowed.

NameRequiredDescriptionDefault
bodyYesJSON request body
instanceIdYesThe identifier of the instance
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description adds real value by disclosing the commercial consequence ('you can purchase add-ons'), but it omits whether add-ons can be removed, what happens on repeated calls, and any billing/approval prerequisite. It also names the wrong add-on set relative to the schema ('firewalling' vs. the schema's 'backup').

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences plus the endpoint, with the purpose front-loaded and no filler. Minor redundancy between the header line and the explanatory sentence, but nothing wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with annotations present, no output schema, and a fully described nested body, the description covers the essentials of what the tool does. It falls short on consequences: cost/approval implications are only hinted at, reversibility is unstated, and the add-on list contradicts the schema, which is the one thing an agent most needs to get right here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already documented and baseline would be 3. However the description's statement that 'only firewalling and private network addon is allowed' conflicts with the schema, which exposes 'backup' and 'privateNetworking'; this actively misleads the agent about which add-on fields are legal, dropping it below the schema-only baseline.

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?

States a specific verb and resource ('Upgrading instance capabilities', POST /v1/compute/instances/{instanceId}/upgrade) and explains the tool buys add-ons, which is far more informative than the name alone. It does not distinguish itself from nearby siblings such as patch_instance or upgrade_object_storage, so an agent must infer the boundary.

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?

'In order to enhance your instance with additional features you can purchase add-ons' implies when to reach for this tool, but there are no explicit when-not conditions and no named alternative (e.g. use patch_instance for other instance attributes). Usage is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upgrade_object_storageA

Upgrade object storage size resp. update autoscaling settings. [POST /v1/object-storages/{objectStorageId}/resize] Upgrade object storage size. You can also adjust the autoscaling settings for your object storage. Autoscaling allows you to automatically purchase storage capacity on a monthly basis up to the specified limit.

NameRequiredDescriptionDefault
bodyYesJSON request body
x-trace-idNoIdentifier to trace group of requests.
objectStorageIdYesThe identifier of the object storage.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the mutation profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false). The description usefully explains that autoscaling buys capacity monthly up to a limit, which is real behavioral context beyond the annotations. It omits the billing consequence and irreversibility (no downgrade) that live in the schema, so a 3.

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?

Short and front-loaded, but the opening phrase 'Upgrade object storage size' is immediately restated in the endpoint summary sentence, and the title repeats it a third time. Two sentences do the work of one.

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 mutation tool with no output schema, the schema is fully described and the description explains the autoscaling concept the agent needs to set fields correctly. What is missing is the sibling disambiguation against update_object_storage, so not a 5.

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% and the nested body documents autoScaling.state, autoScaling.sizeLimitTB and totalPurchasedSpaceTB in detail, so baseline is 3. The description adds a small amount of directional meaning by tying autoscaling to a monthly purchase limit, which helps interpret sizeLimitTB.

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?

States a specific verb and resource ('Upgrade object storage size') plus a secondary capability ('update autoscaling settings'), and pins the endpoint POST /v1/object-storages/{objectStorageId}/resize. That separates it from generic update_object_storage and retrieve_object_storage in the sibling list, though the distinction is implicit rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (increase capacity or adjust autoscaling) but never states when to pick this over update_object_storage, nor any prerequisite such as 'no downgrade possible' as a precondition to check before calling. Usage is inferable, not guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_domain_availabilityB

Check domain availablility [POST /v1/registries-domains/{domain}/check-availability] Check if a specific domain is available or not

NameRequiredDescriptionDefault
domainYesDomain Name
x-trace-idNoIdentifier to trace group of requests.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare openWorldHint=true, destructiveHint=false, idempotentHint=false, and readOnlyHint=false. The description restates the availability check and adds the HTTP endpoint, but does not clarify why a 'check' is marked readOnly=false, whether the call has side effects, or what auth/rate-limit behavior applies. It does not explicitly contradict the annotations, but it leaves notable ambiguity.

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 short and front-loaded, but the second sentence repeats the title and the bracketed endpoint adds noise without explaining behavior. The typo 'availablility' also slightly reduces polish.

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 domain-check tool, the schema and annotations cover parameters and safety hints. However, there is no output schema, and the description does not specify the exact return format or explain how this check relates to ordering or suggesting domains, leaving some completeness gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both the domain and x-trace-id parameters are documented in the schema. The description embeds the domain in the URL path but adds no semantics beyond what the schema already provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: check whether a specific domain is available. This clearly distinguishes it from siblings like list_domains, suggest_domains, retrieve_domain, and order_domain. The endpoint is also included, though the typo 'availablility' is minor.

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 explain when to use this tool instead of suggest_domains, list_domains, retrieve_domain, or order_domain. It also does not state any prerequisite such as checking availability before ordering a domain. Usage is only implied by the verb 'check'.

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. 158 tool updatesv1.1.0
    • First observedassign_instance_firewall
    • First observedassign_instance_private_network
    • First observedassign_ip
    • First observedbulk_delete_dns_zone_records
    • First observedcancel_domain
    • First observedcancel_ext_check
    • First observedcancel_ext_check_collection
    • First observedcancel_ext_remedy
    • First observedcancel_instance
    • First observedcancel_object_storage
    • First observedcheck_set_new_host
    • First observedconfirm_domain_transfer_out
    • First observedcreate_assignment
    • First observedcreate_custom_image
    • First observedcreate_dns_zone
    • First observedcreate_dns_zone_record
    • First observedcreate_firewall
    • First observedcreate_handle
    • First observedcreate_instance
    • First observedcreate_object_storage
    • First observedcreate_private_network
    • First observedcreate_ptr_record
    • First observedcreate_role
    • First observedcreate_secret
    • First observedcreate_snapshot
    • First observedcreate_tag
    • First observedcreate_user
    • First observeddelete_assignment
    • First observeddelete_dns_zone
    • First observeddelete_dns_zone_record
    • First observeddelete_firewall
    • First observeddelete_image
    • First observeddelete_private_network
    • First observeddelete_ptr_record
    • First observeddelete_role
    • First observeddelete_secret
    • First observeddelete_snapshot
    • First observeddelete_tag
    • First observeddelete_user
    • First observedgenerate_client_secret
    • First observedgenerate_sso_token
    • First observedget_auth_code
    • First observedget_ext_check
    • First observedget_ext_check_collection
    • First observedget_ext_check_collection_template
    • First observedget_ext_remedy
    • First observedget_object_storage_credentials
    • First observedinstance_rescue
    • First observedinstance_reset_password
    • First observedinstance_restart
    • First observedinstance_shutdown
    • First observedinstance_start
    • First observedinstance_stop
    • First observedlist_domains
    • First observedlist_ext_check_collection_templates
    • First observedlist_ext_check_collections
    • First observedlist_ext_checks
    • First observedlist_ext_remedies
    • First observedlist_handles
    • First observedlist_object_storage_credentials
    • First observedlist_pending_actions
    • First observedlist_user_accounts
    • First observedmake_default_account
    • First observedorder_domain
    • First observedpatch_firewall
    • First observedpatch_instance
    • First observedpatch_private_network
    • First observedput_firewall
    • First observedregenerate_object_storage_credentials
    • First observedreinstall_instance
    • First observedremove_handle
    • First observedrequest_email_change
    • First observedrequest_recovery_codes_reset
    • First observedrequest_region_change
    • First observedresend_email_verification
    • First observedreset_password
    • First observedretrieve_api_permissions_list
    • First observedretrieve_assignment
    • First observedretrieve_assignment_list
    • First observedretrieve_assignments_audits_list
    • First observedretrieve_available_instance_products
    • First observedretrieve_custom_images_stats
    • First observedretrieve_data_center_list
    • First observedretrieve_dns_audits_list
    • First observedretrieve_dns_zone
    • First observedretrieve_dns_zone_records_list
    • First observedretrieve_dns_zones_list
    • First observedretrieve_domain
    • First observedretrieve_domains_audits_list
    • First observedretrieve_firewall
    • First observedretrieve_firewall_audits_list
    • First observedretrieve_firewall_list
    • First observedretrieve_handle
    • First observedretrieve_handles_audits_list
    • First observedretrieve_image
    • First observedretrieve_image_audits_list
    • First observedretrieve_image_list
    • First observedretrieve_instance
    • First observedretrieve_instances_actions_audits_list
    • First observedretrieve_instances_audits_list
    • First observedretrieve_instances_list
    • First observedretrieve_object_storage
    • First observedretrieve_object_storage_audits_list
    • First observedretrieve_object_storage_list
    • First observedretrieve_object_storages_stats
    • First observedretrieve_preset_rules
    • First observedretrieve_private_network
    • First observedretrieve_private_network_audits_list
    • First observedretrieve_private_network_list
    • First observedretrieve_ptr_record
    • First observedretrieve_ptr_records_list
    • First observedretrieve_record_audits_list
    • First observedretrieve_role
    • First observedretrieve_role_audits_list
    • First observedretrieve_role_list
    • First observedretrieve_secret
    • First observedretrieve_secret_audits_list
    • First observedretrieve_secret_list
    • First observedretrieve_snapshot
    • First observedretrieve_snapshot_list
    • First observedretrieve_snapshots_audits_list
    • First observedretrieve_tag
    • First observedretrieve_tag_audits_list
    • First observedretrieve_tag_list
    • First observedretrieve_user
    • First observedretrieve_user_audits_list
    • First observedretrieve_user_client
    • First observedretrieve_user_is_password_set
    • First observedretrieve_user_list
    • First observedretrieve_vip
    • First observedretrieve_vip_audits_list
    • First observedretrieve_vip_list
    • First observedrevoke_cancel_domain
    • First observedrevoke_domain_transfer_out
    • First observedrollback_snapshot
    • First observedset_default_handle
    • First observedstart_ext_check
    • First observedstart_ext_check_collection
    • First observedstart_ext_remedy
    • First observedsuggest_domains
    • First observedswitch_account
    • First observedunassign_instance_firewall
    • First observedunassign_instance_private_network
    • First observedunassign_ip
    • First observedupdate_dns_zone_record
    • First observedupdate_domain
    • First observedupdate_handle
    • First observedupdate_image
    • First observedupdate_object_storage
    • First observedupdate_ptr_record
    • First observedupdate_role
    • First observedupdate_secret
    • First observedupdate_snapshot
    • First observedupdate_tag
    • First observedupdate_user
    • First observedupgrade_instance
    • First observedupgrade_object_storage
    • First observedvalidate_domain_availability

TDQS

C2.9/5.0

Scored across 158 tools

Disambiguation3/5

The tools are grouped around distinct resources (compute, DNS, domains, users, firewalls, object storage, tags, etc.), so many are clearly separable by resource. However, several boundaries are fuzzy: patch_firewall vs put_firewall both update firewalls, retrieve/list/get synonyms overlap, and audit tools such as retrieve_tag_audits_list and retrieve_assignments_audits_list are hard to distinguish without close reading.

Naming Consistency3/5

Most names use snake_case and include a resource, which provides a readable pattern. But verb conventions are mixed: retrieve_*, list_*, get_*, patch_*, put_*, update_*, and action-style names like instance_start coexist, and some names omit the resource while others include it.

Tool Count1/5

The server exposes 158 tools, far beyond a manageable tool set even for a broad cloud API. While the underlying API is large, this count creates severe selection and context-loading problems for an agent.

Completeness5/5

The surface covers a very broad cloud-provider domain with CRUD, lifecycle actions, assignments, audits, troubleshooting, credentials, and ancillary resources like images, snapshots, DNS, domains, tags, users, roles, firewalls, and object storage. Obvious core workflows and lifecycle operations appear to be present.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to interact with Coolify for complete infrastructure management including applications, databases, servers, deployments, and team operations. Provides 100% API coverage with 64 tools for managing the entire Coolify ecosystem through natural language.
    18
    10 npm
    6
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to manage Cloudways infrastructure, including servers, applications, monitoring, and security via the Cloudways API.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables LLMs to manage a self-hosted Coolify instance, including applications, databases, services, servers, projects, deployments, environment variables, tags, teams, private keys, and S3 backup storages via the Coolify REST API.
    215 npm
    MIT