Skip to main content
Glama

vcf-automation-mcp

vcf-automation-mcp

MCP server for VCF Automation 9 (VM Apps organization). Every REST operation in the VCF Automation API set becomes one MCP tool: 696 operation tools across 16 services, generated straight from the OpenAPI specs that VCF Automation serves at https://<vcfa>/tenant/<org>/api-docs.

Sister project of vcf-orchestrator-mcp.

Services and tools

Service key

Tools

API

abx

33

ABX: actions, versions, secrets, action runs, flows

approvals

11

Approvals and work items

metrics

5

Deployment Metric (aggregator) and deployment limits

blueprint

40

Blueprint / cloud templates: create, validate, version, release, provision

catalog

45

Catalog items, sources, content sharing, requests, icons, notifications, pricing

deployment

38

Deployments, resources, day-2 actions, requests

policy

9

Policies and policy types

form

42

Custom Forms

content

11

Content Gateway (content sources, source control)

eventbroker

7

Event Broker: events, topics, audit, subscriptions

iaas

265

Provisioning Service (IaaS): cloud accounts, zones, mappings, networks, storage, machines

identity

53

Identity Service (/csp/gateway/am/api)

onboarding

27

Onboarding (relocation) plans, resources, deployments

vro

8

Orchestrator Gateway: workflows and runs

project

11

Project Service

provider

91

Provider Management / Access Control (/cloudapi)

Tool names follow <service>_<operation>, for example deployment_get_deployments, catalog_request_catalog_item, iaas_create_machine, abx_post_action_runs, vro_run_workflow, provider_query_users. Run npx vcf-automation-mcp --list-tools to see them all.

There are also two helper tools:

  • vcfa_connection_status: shows the host, org, auth mode in use, token expiry and tool counts. Pass test: true to log in now and call GET /iaas/api/about.

  • vcfa_describe_operation: returns the full nested request-body schema for any tool. Tool input schemas are summarised past three levels of nesting to keep tools/list small.

About 700 tools is a lot. Some MCP clients cap or slow down with that many. Use VCFA_SERVICES to load only what you need, for example VCFA_SERVICES=catalog,deployment,blueprint,abx,vro.

Related MCP server: Relay

Quick start

Login works the same way as vcf-orchestrator-mcp. A one-time setup creates a VCF Automation service account and stores its refresh token on your machine. After that the server keeps its own login alive, so no token or password goes into your MCP config.

1. Run setup once

npm i -g vcf-automation-mcp
vcf-automation-mcp setup --url "https://auto.vmw.lab" --org "vmapps-org" --user "<local-admin>" --name "Lab-VCFA-MCP" --role "Organization Owner" --insecure

Setup asks for the password with a masked prompt. It uses it once to log in and never stores it. Then it:

  1. Logs in as user@org at /cloudapi/1.0.0/sessions.

  2. Registers the service account at /oauth/tenant/{org}/register.

  3. Requests device authorization.

  4. Grants the request as you.

  5. Exchanges the device code for an access token and a refresh token.

It saves the refresh token to ~/.vcf-automation-mcp/tokens.json (on Windows, C:\Users\<you>\.vcf-automation-mcp\tokens.json), checks which automation APIs the service account's role can reach, and prints the MCP config to paste.

Option

Meaning

--url

VCF Automation URL

--org

Organization name, from the tenant URL https://<fqdn>/tenant/<name>

--user

Local org user, typed without @org

--name

Service account display name (under Access Control > Service Accounts)

--role

Comma-separated role names. Default: the role of the user you log in with

--password

Skips the prompt (the password then ends up in your shell history)

--client-id

Uses a service account created in the UI instead; you approve the access request there. Use this for SSO-only orgs

--insecure

Accepts self-signed lab certificates

If the access check shows 403 for an API, the service account's role doesn't cover it. Give it a broader role (e.g. Organization Owner), then restart your MCP client.

2. Add it to your MCP client

{
  "mcpServers": {
    "vcf-automation": {
      "command": "vcf-automation-mcp",
      "env": {
        "VCFA_HOST": "https://auto.vmw.lab",
        "VCFA_AUTH_MODE": "api-token",
        "VCFA_ORG": "vmapps-org",
        "VCFA_INSECURE": "true",
        "VCFA_SERVICES": "catalog,deployment,blueprint,project,abx,vro,eventbroker"
      }
    }
  }
}

The config file is at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS and %APPDATA%\Claude\claude_desktop_config.json on Windows.

Configuration

Variable

Default

Description

VCFA_HOST

required

VCF Automation URL, e.g. https://auto.vmw.lab

VCFA_ORG

System

VM Apps organization name, e.g. vmapps-org (System means provider)

VCFA_AUTH_MODE

auto

api-token, token, vcfa-cloudapi, vcfa (see below)

VCFA_API_TOKEN

Seeds a refresh-token chain yourself instead of running setup

VCFA_CLIENT_ID

Service account client ID, if you seed a token yourself

VCFA_TOKEN

Static access token; it expires and isn't renewed

VCFA_USERNAME / VCFA_PASSWORD

For vcfa-cloudapi / vcfa

VCFA_DOMAIN

Identity domain for vcfa (CSP) login

VCFA_TOKEN_FILE

~/.vcf-automation-mcp/tokens.json

Where rotated refresh tokens are kept

VCFA_INSECURE

false

Skip TLS verification (self-signed lab certificates)

VCFA_READ_ONLY

false

Load only GET operations; writes are also blocked at call time

VCFA_SERVICES

all

Comma-separated service keys to load

VCFA_EXCLUDE_SERVICES

Comma-separated service keys to skip

VCFA_TOOL_FILTER

Regex; load only tools whose name matches

VCFA_CLOUDAPI_VERSION

9.1.0

Accept: application/json;version= for /cloudapi calls

VCFA_MAX_RESPONSE_CHARS

100000

Responses longer than this are truncated

VCFA_TIMEOUT_MS

120000

Per-request timeout

Auth modes

The names and behaviour match vcf-orchestrator-mcp.

Mode

How it logs in

api-token

Refresh token, plus client ID when known, posted to /oauth/tenant/{org}/token (falls back to /tm/oauth/...). VCF Automation rotates the refresh token on every use, so the server writes each new one to the token file before carrying on. Restarts keep working with no new setup

token

VCFA_TOKEN used as-is

vcfa-cloudapi

POST /cloudapi/1.0.0/sessions (then /tm/cloudapi) with Basic user@org, trying Accept versions 9.1.0 / 9.0.0 / 40.0. It stops at the first 401, so a wrong password counts only once towards the account lockout

vcfa

8.x-style /csp/gateway/am/api/login then /iaas/api/login, for VM Apps orgs upgraded from Aria Automation 8

auto

api-token if a token is set or stored, else token, else vcfa-cloudapi then vcfa

Access tokens are renewed a minute before they expire, and once more after a 401. There's no background timer: an idle server refreshes on its next call.

One token chain per machine, per server. Don't copy tokens.json between machines, and don't run two copies of this server against the same org at the same time (for example Claude Desktop and Claude Code). Whichever refreshes first invalidates the other's token, and the other gets invalid_grant; running setup again fixes it. This server keeps its own token file, separate from vcf-orchestrator-mcp's, so the two never break each other. Give each one its own service account.

Calling conventions

  • Path, query and header parameters are top-level arguments.

  • Request bodies go in body: a JSON object, or a string for YAML/text endpoints.

  • OData parameters drop the $ because MCP clients reject $ in argument names: $top becomes top, and likewise skip, filter, select, orderby, count.

  • Many automation endpoints take an optional apiVersion query parameter.

Development

npm install
npm run generate   # specs/*.json|yaml -> data/operations.json
npm run build
npm test           # mock VCFA server + real MCP client over stdio

To refresh the specs, download each one from https://<vcfa>/tenant/<org>/api-docs, drop it into specs/, then run npm run generate. The file-to-service mapping lives at the top of scripts/generate.mjs.

License

MIT

Available Tools

698 tools
abx_cancel_action_runB

Cancel an action run Cancels an action run which is currently being executed PATCH /abx/api/resources/action-runs/{id}/cancel

NameRequiredDescriptionDefault
idYesID of the action run (path)
bodyYesConfiguration of the action run

TDQS

B3.3/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, open-world mutation. The description adds the PATCH endpoint and the in-progress state condition, but it does not explain what cancellation does to the run, whether it is immediate, 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.

Conciseness4/5

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

The description is short and front-loaded with the core action. However, the first two sentences are redundant, repeating that it cancels an action run, which keeps it from being maximally concise.

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

Completeness2/5

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

For a mutation tool with a required nested body and no output schema, the description is too thin. It does not explain what the body should contain, what the response is, or what happens to a run after cancellation, leaving important call-time context 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?

Top-level schema description coverage is high, so the schema already documents the id and body parameters. The description adds no parameter-level detail, and it does not clarify the large nested body object, but the baseline for high schema coverage is 3.

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

Purpose4/5

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

The description states a specific verb and resource: cancel an action run. It also narrows scope to runs currently being executed. It does not explicitly differentiate from nearby siblings such as delete action run or get action run, 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 'currently being executed' implies the tool applies only to in-progress runs, but the description gives no explicit when-to-use guidance, exclusions, or alternative tools. Usage is therefore implied rather than clearly instructed.

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

abx_create_action_versionC

Create a version for an action Creates a new version for the specified action POST /abx/api/resources/actions/{id}/versions

NameRequiredDescriptionDefault
idYesID of the action (path)
bodyYesDetails of the action version
projectIdYesProject ID of action (required for non-system actions)

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, destructiveHint=false, so safety is covered. The description adds nothing behavioral beyond re-stating the POST path already duplicated in the annotation title — it does not say that each call appends a new version, whether the supplied body replaces the action definition, or what permissions/project scoping are required for non-system actions.

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?

Line 1 and line 2 say the same thing in slightly different words, and line 3 is just the HTTP method and path already present in the annotation title. The text is short, but almost none of it earns its place; information density is near zero rather than front-loaded with useful 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 mutation endpoint with a large nested request body and no output schema, yet the description says nothing about the response (version id? full object?), whether the new version becomes active/released, or how the body relates to the existing action definition. For a 3-required-param nested-payload creation call, that leaves meaningful unknowns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 of 3 applies: id, projectId and body are documented in the schema. The description contributes no extra meaning, which is a real gap given the nested body requires a full action payload (actionType, entrypoint, runtime, orgId, name) that an agent must infer from the schema alone.

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 version for an action") and repeats it in the second line, so the agent knows exactly what object is produced. It does not, however, distinguish this from nearby siblings such as abx_release_action_version, abx_delete_action_version, abx_restore_action_version, or abx_put_actions_by_id, which an agent must disambiguate by 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 use this rather than the release/unrelease/restore/patch version siblings, and no prerequisites (e.g. that the action must already exist, or that a version can be created without releasing it). The only guidance is the verb itself, which is exactly the bare minimum.

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

abx_delete_actionC
DestructiveIdempotent

Delete an action Deletes an action with a specific ID DELETE /abx/api/resources/actions/{id}

NameRequiredDescriptionDefault
idYesID of the action (path)
forceNo
projectIdNoProject ID of action (required for non-system actions)

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, destructiveHint=true, idempotentHint=true, and openWorldHint=true. The description adds no behavioral context beyond repeating that it deletes, such as what force does, whether deletion is reversible, or what project scoping is 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?

The definition is short and front-loaded with the verb, but the first two lines repeat the same delete-action idea. The endpoint line also duplicates the annotation title rather than adding useful 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?

Annotations cover the destructive and idempotent profile, but the description omits important operation-specific context for a delete tool with a force parameter and projectId requirement. An agent still lacks guidance on force semantics and non-system action scoping.

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

Parameters2/5

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

The schema already describes id and projectId, while force has no description; schema coverage is 67%. The description only repeats that a specific ID is used and does not explain the force flag or the projectId requirement for non-system actions.

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: "Delete an action" and "Deletes an action with a specific ID." The phrase "specific ID" implies single-action deletion, which distinguishes it from bulk alternatives like abx_delete_multiple_actions, but no sibling is explicitly named.

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 guidance on when to use this tool versus alternatives. It does not mention abx_delete_multiple_actions or any other sibling, nor does it state prerequisites or when deletion should be avoided.

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

abx_delete_action_runsC
DestructiveIdempotent

Delete multiple action runs Deletes multiple action runs with their specific ID DELETE /abx/api/resources/action-runs

NameRequiredDescriptionDefault
bodyYesIDs of the action runs

TDQS

C2.5/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 safety profile is covered structurally. The description adds only a restatement of the name plus the raw DELETE endpoint, which is already reflected in the title; it discloses nothing new such as irreversibility, per-ID error handling, or whether partial failures roll back.

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 first two sentences say the same thing twice ('Delete multiple action runs' / 'Deletes multiple action runs with their specific ID'), and the trailing REST path duplicates the annotation title. Half the text is redundant.

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 destructive, open-world bulk-delete with no output schema, the description should at minimum signal irreversibility and distinguish itself from the single-ID sibling. Neither is present, leaving gaps that annotations alone do not fill for an agent choosing between delete variants.

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

Parameters3/5

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

Schema description coverage is 100% — the single 'body' property is documented as 'IDs of the action runs'. The description's 'with their specific ID' is slightly misleading in the singular, given the body is an array of strings, but adds no real 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.

Purpose3/5

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

States a specific verb and resource ('Delete multiple action runs') and clarifies that IDs are supplied, which distinguishes it from a bulk-everything delete. However, it never acknowledges the closest sibling abx_delete_action_runs_by_id, so an agent cannot tell from the text whether this is the plural form of that tool or something different.

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 abx_delete_action_runs_by_id, abx_cancel_action_run, or abx_delete_action. No prerequisites, no warnings that the deleted runs are permanently removed, and no indication of what happens to runs that are still executing.

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

abx_delete_action_runs_by_idC
DestructiveIdempotent

Delete an action run Deletes an action run with a specific ID DELETE /abx/api/resources/action-runs/{id}

NameRequiredDescriptionDefault
idYesID of the action run (path)

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, so the safety profile is covered. The description adds nothing beyond that: no statement of irreversibility, whether related runs/logs are removed, or what happens when the ID doesn't exist or the run is in progress.

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 first two lines say the same thing twice ('Delete an action run' / 'Deletes an action run with a specific ID'), so nearly half the text is redundant. The HTTP route is useful for API-literate agents but is also duplicated in the annotation title.

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-parameter destructive call whose annotations and schema are already complete, the description is minimally sufficient. It still leaves the agent without any consequence or precondition information for an irreversible 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?

Only one parameter, and the schema already documents it at 100% coverage ('ID of the action run (path)'). The description restates the same idea without adding format, source, or lookup guidance, 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: 'Deletes an action run with a specific ID', which implicitly contrasts with the bulk sibling abx_delete_action_runs. It doesn't name that sibling explicitly, so the differentiation is inferred rather than stated.

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

Usage Guidelines2/5

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

No guidance on when to use this versus abx_delete_action_runs, abx_cancel_action_run, or the get/list siblings. No prerequisites, permissions, or state conditions (e.g., whether the run must be finished) are given.

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

abx_delete_action_secretC
DestructiveIdempotent

Delete an action secret Deletes an action secret DELETE /abx/api/resources/action-secrets/{id}

NameRequiredDescriptionDefault
idYesID of the action secret (path)

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. The description adds nothing beyond restating the operation and echoing the HTTP route; it doesn't say whether the secret is permanently removed, whether callers need specific permissions, or how errors surface.

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 action is front-loaded, and the HTTP route is mildly useful for endpoint mapping. However, 'Delete an action secret' and 'Deletes an action secret' are pure duplication, so roughly a third of the text 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?

For a single-parameter destructive delete with complete annotations and full schema coverage, the description is adequate but thin. It never states reversibility or failure behavior, which matters 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?

There is a single parameter and the schema documents it fully ('ID of the action secret (path)'), so the schema does the work. The description adds no extra semantics, which meets the baseline-3 expectation at 100% 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 an action secret'), so the agent instantly knows the operation. It does not distinguish this from siblings such as abx_get_action_secrets, abx_put_action_secrets_by_id, or abx_post_action_secrets, but the intent itself 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 the get/put/post siblings, no note about prerequisites such as needing the secret's ID first, and no mention of what happens if the secret doesn't exist. The agent must infer everything 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.

abx_delete_action_versionC
DestructiveIdempotent

Delete an action version Deletes an action version DELETE /abx/api/resources/actions/{id}/versions/{versionId}

NameRequiredDescriptionDefault
idYesID of the action (path)
projectIdYesProject ID of action (required for non-system actions)
versionIdYesID of the action version (path)

TDQS

C2.5/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 carried elsewhere. The description adds nothing beyond that — no statement about permanence, whether released versions can be removed, or any authorization requirement, only the REST path.

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?

Three lines where one would do: line 1 and line 2 are the same sentence with different capitalization, which is pure redundancy rather than front-loading. The only unique content is the raw endpoint.

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 three-required-parameter destructive tool with no output schema but full annotation coverage, the definition is minimally sufficient — an agent can identify and invoke it. It still omits the consequences of the delete and the projectId scoping rule.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 id, versionId, and projectId all documented in-schema, so the baseline of 3 applies. The path template in the description loosely corroborates that id and versionId are path segments but adds no meaning beyond the schema, and projectId's unusual role for non-system actions is left to the schema alone.

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 ("Delete an action version") is unambiguous, but the second line merely restates the first verbatim and the third is the raw HTTP route. It never distinguishes this from nearby siblings such as abx_delete_action, abx_restore_action_version, or abx_release_action_version.

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 exclusions, no mention of alternatives. An agent gets no help deciding between deleting a version versus deleting the whole action (abx_delete_action) or restoring it (abx_restore_action_version).

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

abx_delete_multiple_actionsC
DestructiveIdempotent

Delete multiple actions by their id and projectId Deletes actions with a specific ID and projectId DELETE /abx/api/resources/actions

NameRequiredDescriptionDefault
bodyYesIDs of the actions

TDQS

C2.6/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 safety profile is covered without the description. The description adds nothing beyond that: no permissions needed, no statement on whether deletes are atomic, and no mention of what happens when an id does not exist.

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 operation, which is good, but the first two lines restate the same fact ('Delete multiple actions by their id and projectId' / 'Deletes actions with a specific ID and projectId') without adding information. Three lines for one sentence of 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 destructive bulk-mutation tool with no output schema, the description says nothing about response, partial-success behavior, permission requirements, or limits on batch size. The safety annotations cover only part of what an agent needs before calling it.

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 would be 3, but the description actively misleads: it says actions are deleted 'by their id and projectId' while the schema requires id and orgId and treats projectId as optional. An agent could omit a required field or assume an optional one is mandatory.

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 multiple actions) and the endpoint path, so the operation is identifiable. However it does not distinguish itself from the sibling abx_delete_action (single delete), leaving the 'multiple' scope to be inferred only by 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?

There is no guidance on when to use bulk delete versus the sibling abx_delete_action, no prerequisites, and no note about partial failures. The agent must infer selection purely from tool names.

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

abx_exportB

Export actions Exports the specified actions as a zip bundle POST /abx/api/resources/actions/export

NameRequiredDescriptionDefault
bodyYesIdentities of the actions to export

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 and openWorldHint=true, so safety is covered. The description contributes one genuinely useful behavioral fact beyond them — the result is a zip bundle, which matters since no output schema exists — but says nothing about permissions, whether the export is synchronous, or 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.

Conciseness3/5

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

The operative sentence is short and front-loaded, but the first line merely restates the name and the third line is a raw POST path that duplicates the annotation title, so roughly a third of the text is filler.

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

Completeness3/5

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

With one required body parameter at full schema coverage, annotations present, and no output schema, the description covers the core contract and the return format. It still leaves gaps an agent would want — whether the response is a direct download versus a job handle, and what happens when an action identity is invalid.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 nested body/actions identity object is fully documented in the schema, so baseline 3 applies. The phrase "the specified actions" mirrors the actions array but adds no semantics about id/orgId/projectId or how multiple identities are handled.

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 ("Exports the specified actions") and adds the output form ("as a zip bundle"), which lets an agent distinguish it from siblings like abx_import_actions or abx_get_all_actions. It does not explicitly name an 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?

Usage is only implied by the verb: an agent can infer this is the tool for pulling an action bundle out of the system. There is no statement of prerequisites, when to prefer this over listing actions, or any exclusion, and the raw endpoint line adds nothing to selection.

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

abx_get_action_by_idC
Read-onlyIdempotent

Fetch all actions by ID across all projects Retrieves all actions with a specific ID across all projects GET /abx/api/resources/actions/{id}

NameRequiredDescriptionDefault
idYesID of the action (path)
pageNoPage to fetch (starting from 0)
sizeNoAmount of entities per page
projectIdNoProject ID of action (required for non-system actions)
allProjectsYesInclude actions from all projects
groupByProjectYesGroup results by project

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already establish that this is a read-only, idempotent, non-destructive, open-world GET. The description adds the cross-project scope and the endpoint, but does not explain pagination behavior, authentication needs, or whether multiple actions can share the same ID.

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 it repeats the same idea in two nearly identical sentences and then lists the endpoint. It is not bloated, but the redundancy prevents it from being tightly front-loaded.

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

Completeness3/5

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

For a read-only GET with full schema coverage and strong annotations, this is minimally adequate. However, because there is no output schema, the description should clarify whether same-ID actions across projects are returned as a collection and how paging behaves.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 six parameters. The description only echoes the ID and all-project scope and adds no syntax or behavioral meaning beyond what the schema provides.

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 specific operation and resource, but the phrase 'Fetch all actions by ID' is internally ambiguous: a by-ID lookup usually returns one action, while 'all actions' implies many. It also does not distinguish this tool from sibling listing or per-action tools such as abx_get_all_actions.

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 guidance on when to use this tool, when not to use it, or which sibling to use instead. The 'across all projects' wording implies a scope, but the agent is left to infer the selection criteria.

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

abx_get_action_run_by_idC
Read-onlyIdempotent

Fetch an action run by its ID Retrieves an action run entity with a specific ID GET /abx/api/resources/action-runs/{id}

NameRequiredDescriptionDefault
idYesID of the action run (path)

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 non-destructive, so safety is covered. The description adds nothing beyond the endpoint path: no word on behavior for an unknown/expired ID, whether run logs or output are included, or whether deleted runs are visible.

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?

Three lines that repeat the same fact three times: fetch, retrieve, and the GET path. Front-loaded and short, but genuinely redundant rather than dense.

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-parameter read with full annotation coverage, the basics are there. Without an output schema, though, the description should at least hint at what an action run entity contains, since that determines whether the agent calls this or a projections/logs sibling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 single parameter is documented as the path ID, so the schema carries the semantics. The description only restates 'by its ID' and adds no format hints (UUID vs. opaque string) 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?

States a specific verb and resource: fetch/retrieve an action run entity by ID, plus the underlying endpoint. It does not distinguish itself from nearby siblings such as abx_get_action_runs_by_action_id (list runs for an action) or abx_get_all_action_run_projections, so an agent must infer which retrieval variant it needs.

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 the sibling list/query tools for action runs, nor any prerequisite (e.g. needing a run ID obtained from abx_get_action_runs_by_action_id). The only implied usage is 'you have an ID'.

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

abx_get_action_runs_by_action_idC
Read-onlyIdempotent

Fetch all action runs of an action Retrieves all action runs of an action GET /abx/api/resources/actions/{id}/action-runs

NameRequiredDescriptionDefault
idYesID of the action (path)
pageNoPage to fetch (starting from 0)
sizeNoAmount of entities per page

TDQS

C2.8/5.0
Behavior2/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 fully covered. The description adds nothing beyond that — no pagination behavior, ordering, or response characteristics — and merely restates 'fetch all' twice.

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?

Three lines say the same thing: 'Fetch all action runs of an action', 'Retrieves all action runs of an action', and the GET path. The duplication is waste, not reinforcement, and nothing is front-loaded beyond the first line.

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 list endpoint with full schema coverage and rich annotations, the description is adequate but thin — it omits any hint of return shape or list ordering, which would help since there is no output schema.

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

Parameters3/5

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

Schema description coverage is 100%, with id, page and size each documented inline, so the baseline is 3. The description only echoes the path parameter '{id}' and adds no semantics for pagination 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 ('Fetch all action runs of an action') and the REST path confirms the scope is limited to a single action id. It is distinguishable from abx_get_action_run_by_id (singular) by wording, though it does not explicitly name siblings like abx_get_all_action_run_projections.

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 abx_get_all_action_run_projections or abx_get_action_run_by_id, and no mention of prerequisites. Usage is only weakly implied by the 'of an action' phrasing.

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

abx_get_action_secretsB
Read-onlyIdempotent

Fetch all action secrets Retrieves all action secrets for given organization GET /abx/api/resources/action-secrets

NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare this as a read-only, idempotent, non-destructive GET. The description adds the organization-level scope and HTTP endpoint, but it does not explain return format, pagination, or whether secret values are returned or redacted.

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: 'Fetch all action secrets' and 'Retrieves all action secrets for given organization' restate the same purpose before repeating the endpoint. It is front-loaded but not maximally efficient.

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

Completeness4/5

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

For a simple, parameterless list operation with rich safety annotations and no output schema, the description is adequate to invoke correctly. It leaves some context gaps around sensitive-data handling and response shape, but those are secondary for selection and invocation.

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

Parameters4/5

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

There are zero parameters, so there is no parameter semantics to document. The baseline for a parameterless tool is 4.

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

Purpose4/5

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

The description states a specific verb and resource: fetch all action secrets for the organization. It is clear it is a bulk retrieval, but it does not name or distinguish against siblings such as abx_get_action_secrets_by_id or abx_post_action_secrets.

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 it retrieves all action secrets, but gives no explicit when-to-use guidance, no exclusions, and no mention of alternatives like the by-id secret lookup or the create/delete secret tools.

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

abx_get_action_secrets_by_idC
Read-onlyIdempotent

Fetch action secret Retrieves action secret by given id GET /abx/api/resources/action-secrets/{id}

NameRequiredDescriptionDefault
idYesID of the action secret (path)

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, destructiveHint=false, and openWorldHint, so safety is covered. The description only repeats 'Fetch'/'Retrieves' and supplies the endpoint path; it adds no behavioral context such as authentication requirements, pagination, or how secret values are exposed.

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. The first two phrases are somewhat redundant ('Fetch action secret' / 'Retrieves action secret by given id'), but the endpoint path is useful and there is no filler.

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

Completeness3/5

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

For a simple read-by-ID tool with full schema coverage and strong annotations, the core operation is adequately described. However, with no output schema, the description does not clarify what is returned (e.g., secret value or metadata) or distinguish this from the list endpoint, leaving some ambiguity.

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

Parameters3/5

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

Schema coverage is 100% and the sole parameter is documented as 'ID of the action secret (path)'. The description adds nothing beyond the schema, so the baseline of 3 for high-coverage schemas applies.

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

Purpose4/5

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

The description clearly states a specific verb and resource ('Fetch action secret') and confirms retrieval by ID. It does not explicitly distinguish this tool from siblings such as abx_get_action_secrets (list) or abx_get_action_secret, but the by-ID intent is still evident.

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, nor any prerequisites or exclusions. An agent must infer from the name alone that this is the single-item retrieval counterpart to the list endpoint.

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

abx_get_action_template_by_idB
Read-onlyIdempotent

Fetch an action template by its ID Retrieves an action template entity with a specific ID GET /abx/api/resources/action-templates/{id}

NameRequiredDescriptionDefault
idYesID of the action template (path)

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 fully covered. The description adds only the REST path (GET /abx/api/resources/action-templates/{id}), which is mild extra context but discloses nothing new about behavior, errors, or 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 three lines are front-loaded and short, but the first two sentences restate the same fact and the third merely repeats the endpoint already present in the annotation title. Roughly half the text is redundant with structured fields.

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

Completeness4/5

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

For a one-parameter idempotent read with full annotation coverage and complete schema descriptions, the definition is complete enough to invoke correctly. Missing detail is limited to what happens on an unknown ID, which is minor for a simple GET.

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

Parameters3/5

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

Schema coverage is 100% and the single parameter already documents that it is the path ID of the action template. The description says 'by its ID' but adds no format, source, or lookup guidance beyond the schema, which is the expected baseline when 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?

States a specific verb and resource ('Fetch an action template') and scopes it to a single entity via 'by its ID', which implicitly distinguishes it from the sibling abx_get_all_action_templates. It never names the list sibling explicitly, so the differentiation is inferred 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 implied by 'by its ID' — an agent can infer this is the single-record lookup rather than the list tool — but there is no explicit when-to-use/when-not guidance, no prerequisites, and no named alternative.

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

abx_get_all_action_run_projectionsA
Read-onlyIdempotent

Fetch all action run projections Retrieves projections of all action runs (lightweight representation for UI) GET /abx/api/resources/action-runs

NameRequiredDescriptionDefault
pageNoPage to fetch (starting from 0)
sizeNoAmount of entities per page
projectionYesFlag to return projections instead of full entities

TDQS

A3.6/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 open-world behavior, so the safety profile is covered. The description usefully adds that projections are a lightweight UI representation, but says nothing about pagination defaults, ordering, or result size limits — and notably the required 'projection' flag makes the naming slightly confusing given the endpoint's own purpose.

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, front-loaded lines with no padding. There is mild redundancy between 'Fetch all action run projections' and 'Retrieves projections of all action runs', which keeps it from a 5.

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 read-only list endpoint with full schema coverage and complete annotations, the description supplies everything needed to select and invoke it, including the lightweight/UI intent and the underlying route.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 page, size and projection are already documented in the schema. The description adds no additional semantics about paging behavior, acceptable values, or why projection is required despite the tool already returning projections.

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

Purpose4/5

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

The description states a specific verb and resource (fetch/retrieve action run projections) and clarifies the payload is a lightweight representation for UI use. This distinguishes it in substance from siblings like abx_get_action_run_by_id or abx_get_action_runs_by_action_id, though it never names 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 Guidelines3/5

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

The 'lightweight representation for UI' note implies when this tool is preferable to full-entity retrieval, but there is no explicit when-to-use statement or reference to the filtered/bulk siblings. 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.

abx_get_all_actionsC
Read-onlyIdempotent

Fetch count of subscribable actions by ID Retrieves count of subscribable actions matching the name criteria GET /abx/api/resources/actions

NameRequiredDescriptionDefault
pageNoPage to fetch (starting from 0)
sizeNoAmount of entities per page
projectionNoFlag to return projections instead of full entities
nameCriteriaNoName criteria to filter actions

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare read-only, idempotent, non-destructive behavior, so the safety profile is covered. The description adds that it retrieves a count matching name criteria, but it does not clarify how pagination, projection, or the count return value behave, and 'by ID' introduces confusion.

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 first two sentences repeat the same 'count of subscribable actions' idea and the 'by ID' wording is not clarified. It could be compressed into one precise sentence.

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 four parameters, no output schema, and many sibling action-related tools, the description should clarify whether this returns a count or entities and how it differs from related ABX tools. It leaves those selection-critical questions unresolved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 page, size, projection, and nameCriteria are already documented in the schema. The description only echoes the name criteria concept and adds no extra parameter semantics, which is acceptable given full schema coverage.

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 says it fetches a count of 'subscribable actions by ID', but the tool name suggests listing all actions and the schema has no ID parameter. The phrase 'matching the name criteria' helps, but the count-vs-list ambiguity and undefined 'subscribable' leave the purpose muddled.

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 abx_get_action_by_id, abx_get_all_action_templates, or abx_get_all_action_run_projections. It also does not state exclusions or prerequisites.

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

abx_get_all_action_templatesC
Read-onlyIdempotent

Fetch all action templates Retrieves all action templates GET /abx/api/resources/action-templates

NameRequiredDescriptionDefault

No parameters

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 description adds nothing about safety. It also says nothing about collection size, pagination, filtering, or ordering — the behaviors that actually matter for a 'fetch all' endpoint. The three lines merely restate the same fact plus the raw HTTP path.

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?

Three lines that repeat the identical idea ('Fetch all action templates' / 'Retrieves all action templates') plus the HTTP path. Only one sentence of content is present; the rest is duplication with no front-loaded added 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?

Annotations cover the read-only safety profile and there is no output schema or parameters to explain, so the basics are covered. However, for a 'get all' collection endpoint, an agent would benefit from knowing whether the response is paginated or how large it can be, and none of that is disclosed.

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

Parameters4/5

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

The tool takes zero parameters and the schema is fully specified, so there is nothing for the description to clarify. Baseline 4 applies for a no-parameter tool.

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: fetch/retrieve all action templates, and the endpoint path confirms it is a collection read. It is implicitly distinguishable from the sibling abx_get_action_template_by_id, but the description never names that sibling to make the contrast 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 or when-not-to-use guidance. The only signal is the word 'all', which weakly implies 'use this for the full collection rather than a single template', and no mention is made of the obvious alternative abx_get_action_template_by_id.

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

abx_get_all_flows_using_actionC
Read-onlyIdempotent

Fetch all action flows using an action Retrieves a list of all action flows which are using the specified action GET /abx/api/resources/actions/{id}/flows

NameRequiredDescriptionDefault
idYesID of the action (path)
projectIdNoProject ID of action (required for non-system actions)

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, destructiveHint=false and openWorldHint, so the safety profile is fully covered structurally. The description adds only the raw endpoint path and otherwise repeats the operation; it says nothing about pagination, result ordering, or the project-scoping behavior for non-system actions.

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 two lines are near-verbatim restatements of each other and the third is a bare HTTP path, so roughly half the text is redundant. It is short and front-loaded, but the duplication means not every line earns its place.

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

Completeness3/5

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

For a simple read-only lookup with full schema coverage, rich annotations and no output schema, the definition is functionally adequate. It nonetheless omits the practical gotcha that non-system actions need a projectId, and gives no hint of the shape or size of the returned flow list.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented, which sets the baseline at 3. The description corroborates that the ID identifies the action being searched for but adds nothing about the conditionally required projectId.

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: fetch/retrieve the list of action flows that use a given action, scoped by action ID. That is enough for an agent to distinguish it from the many abx_* CRUD siblings, though the description 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 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 alternatives (e.g. abx_get_action_by_id for the action itself), and no note that non-system actions require projectId to be supplied. The agent 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.

abx_get_all_provisioning_endpointsB
Read-onlyIdempotent

Proxy to fetch provisioning endpoints Retrieves provisioning endpoints for given organization GET /abx/api/provisioning/endpoints

NameRequiredDescriptionDefault

No parameters

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 and destructiveHint=false, so the safety profile is covered. The description adds only the unusual claim that this is a "Proxy" call and that results are scoped to an organization, without explaining pagination, response shape, or how organization scope is determined when no parameter exists.

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?

Three short lines, yet the first two say the same thing ("fetch" / "Retrieves") and the third just restates the HTTP route already present in the annotation title. Front-loaded but partly 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?

A parameterless read with no output schema and annotations covering safety needs little, but the description omits pagination/result volume and never clarifies the organization scoping it mentions. Adequate, not complete.

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

Parameters3/5

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

There are zero parameters, which would normally be a baseline 4, but the phrase "for given organization" implies an organization input that does not exist in the schema. That mismatch can make an agent search for a parameter that isn't there, so it is scored below 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 ("Retrieves provisioning endpoints") and pins the scope to an organization, plus the underlying GET path. It is clear what the tool returns, but it never distinguishes itself from the sibling abx_get_provisioning_endpoints_by_id beyond the word "all" in the name.

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

Usage Guidelines2/5

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

No indication of when to call this versus abx_get_provisioning_endpoints_by_id, or what preconditions apply. The agent must infer that this is the unfiltered list variant 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.

abx_get_all_versionsC
Read-onlyIdempotent

Fetch all versions of an action Retrieves all created versions for an action GET /abx/api/resources/actions/{id}/versions

NameRequiredDescriptionDefault
idYesID of the action (path)
pageNoPage to fetch (starting from 0)
sizeNoAmount of entities per page
projectIdYesProject ID of action (required for non-system actions)

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 that – no pagination behavior, no default page/size semantics, no note on whether versions are returned newest-first, and no auth context for the projectId requirement.

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 content is short and front-loaded, but the three lines are near-verbatim restatements of the same fact, with the raw path adding little for an agent. Two of the three lines could be dropped without information 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 simple paginated read with full annotation coverage, a fully documented schema, and no output schema to explain, the description supplies enough to call the tool correctly. Missing pagination/default-size hints are minor gaps rather than blockers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 four parameters (id, projectId, page, size) are documented in the schema, so the baseline of 3 applies. The description contributes no additional meaning about parameter usage or interactions.

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 ('Fetch all versions of an action') and even names the underlying endpoint, so an agent can distinguish it from sibling version tools such as abx_create_action_version, abx_delete_action_version, and abx_release_action_version. It does not explicitly name or contrast any alternative, but the name-plus-scope 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 related tools, no preconditions, and no mention of the non-system vs system action distinction implied by the projectId parameter. The only signal is the implied 'list version history', which the agent must infer.

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

abx_get_provisioning_endpoints_by_idB
Read-onlyIdempotent

Proxy to fetch a provisioning endpoint by self link Retrieves provisioning endpoints for given organization GET /abx/api/provisioning/endpoints/{id}

NameRequiredDescriptionDefault
idYes(path)

TDQS

B3/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 only that this is a 'proxy' call and the underlying REST route; it says nothing about behavior on a missing/invalid id or error conditions.

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?

Three short lines, front-loaded with the purpose, so it is compact. But the second line is a misleading plural/organization claim that should either be removed or reconciled, so not every sentence earns its place.

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

Completeness3/5

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

For a one-parameter, read-only GET with no output schema and rich annotations, the definition is minimally sufficient. The internal inconsistency about scope (single endpoint vs. list for an organization) is the main gap an agent would notice when calling 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 coverage is 100% for the single 'id' parameter, so the baseline is 3. The phrase 'by self link' hints that the id is a self-link-style identifier rather than a plain UUID, which is marginal added meaning, but the description never clarifies whether it is the endpoint id, an org id, etc.

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 opening clause 'fetch a provisioning endpoint by self link' names a specific verb and resource and implies a by-id lookup that differs from the plural sibling abx_get_all_provisioning_endpoints. However, the next line ('Retrieves provisioning endpoints for given organization') is plural and organization-scoped, contradicting the by-id framing and leaving the agent unsure whether this returns one endpoint or many.

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 self link' and the single 'id' path parameter suggest you call this when you already have an identifier. There is no explicit statement to use abx_get_all_provisioning_endpoints when you lack an id, 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.

abx_import_actionsC

Import an action bundle Imports an action bundle and saves all actions POST /abx/api/resources/actions/import

NameRequiredDescriptionDefault
bodyYesBundle of actions to import

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, and destructiveHint=false, so the safety profile is covered. The description adds essentially nothing beyond that: it never explains how the import handles name collisions, whether existing actions are replaced, or whether authentication/scope constraints apply.

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 text is short, but the first two lines restate the same fact ('Import an action bundle' / 'Imports an action bundle and saves all actions'), and the raw HTTP route adds little for an agent choosing a tool. Front-loading is fine; redundancy costs it a point.

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

Completeness2/5

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

This is a mutating import with a nested body object, a four-way conflict-resolution enum, and no output schema. The description should explain what the option values mean for existing actions and what the result is, but it stops at a paraphrase of the name.

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

Parameters3/5

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

With schema description coverage reported at 100%, the schema carries the parameter burden, so baseline 3 applies. The description does not compensate for the weakest point, namely the meaning of the option enum (FAIL/IGNORE/OVERWRITE/CREATE), which is the single most consequential decision in the call.

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

Purpose4/5

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

The description uses a specific verb and resource ('Import an action bundle') and clarifies the effect ('saves all actions'). It does not distinguish itself from nearby siblings such as abx_export or abx_post_actions, 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?

There is no statement of when to use this versus abx_export, abx_post_actions, or abx_create_action_version, nor any prerequisite context. The agent must infer usage entirely from the tool name and the raw POST path.

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

abx_patch_actions_by_idB

Patch an action Updates the state of the action based only on the supplied properties PATCH /abx/api/resources/actions/{id}

NameRequiredDescriptionDefault
idYesID of the action (path)
bodyYesProperties of the action to patch

TDQS

B3.4/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), so the bar is lower. The description adds one genuinely useful behavior beyond them: untouched properties are preserved. It omits permissions needed, whether the action's version state is affected, and why a PATCH body still has required 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?

Three short lines, front-loaded with the verb and the key patch semantics. The final line repeats the endpoint path that is already present in the annotation title, which is minor 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 nested 26-property body with no per-property descriptions and no output schema, the description is thin: it says nothing about what the enum actionType values imply, which fields are meaningful together, or what the response contains. Adequate to identify the tool, not adequate to call it confidently with a complex payload.

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

Parameters3/5

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

Schema coverage is 100% (both `id` and `body` are documented), so the baseline is 3. 'Based only on the supplied properties' adds a little meaning about how body fields are interpreted, but the 26 nested body properties and the required actionType/entrypoint/name/orgId/runtime set are left entirely to 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 (patch) and resource (an action) and clarifies partial-update semantics with 'Updates the state of the action based only on the supplied properties.' It does not name the closely related sibling abx_put_actions_by_id, so an agent must infer the PATCH-vs-PUT split from the HTTP verb 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?

The phrase 'based only on the supplied properties' implicitly signals partial updates and therefore contrasts with a full-replace PUT, but the description never states when to prefer this over abx_put_actions_by_id, abx_create_action_version, or abx_restore_action_version, and gives no preconditions such as whether the action must be unreleased.

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

abx_post_action_runsA

[DEPRECATED] Create an action run Creates a new action run. This endpoint is deprecated and will be removed in a future version. Use: POST '/abx/api/resources/actions/{action-id}/action-runs' POST /abx/api/resources/action-runs

NameRequiredDescriptionDefault
bodyYesConfiguration of the action run

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare the write/non-idempotent/open-world profile, so the description's main added value is the deprecation status and removal warning, which is genuinely behavioral context not captured by annotations. It does not describe side effects or what gets created, but the safety profile is covered.

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-loads the deprecation tag and the action, with the replacement path last where it belongs. Slightly redundant in restating 'Create an action run' then 'Creates a new action run', but no substantive 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 create tool with no output schema and a large nested body, the description covers purpose and deprecation but says nothing about required fields, expected result, or what state the new run starts in. Adequate but leaves real gaps an agent calling a creation endpoint would 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% and the single 'body' parameter carries a full nested property list, so the description adds nothing about fields like runState, actionType, or actionVersionId. Baseline 3 is appropriate when the schema does all 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?

States a specific verb and resource ('Creates a new action run') and the endpoint path, so an agent knows exactly what it does. It does not name the sibling tool that supersedes it (abx_post_actions_by_id_action_runs), which would have made the differentiation explicit.

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

Usage Guidelines4/5

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

Gives clear exclusions — 'deprecated and will be removed' — and points to the recommended replacement path POST /abx/api/resources/actions/{action-id}/action-runs. The guidance is in raw URL form rather than the MCP tool name, so the agent must map the path to a sibling itself.

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

abx_post_actionsC

Create an action Creates a new action POST /abx/api/resources/actions

NameRequiredDescriptionDefault
bodyYesProperties of the action to patch

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, openWorldHint=true, idempotentHint=false and destructiveHint=false, so the description's only added content is the raw POST path, which merely restates the annotation title. Nothing is said about side effects, authentication, or what happens on duplicate names.

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 three lines say the same thing three times ('Create an action', 'Creates a new action', 'POST /abx/api/resources/actions'), so length is wasted on redundancy rather than on useful detail. It is short but not 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?

For a creation endpoint taking a ~25-property nested body with required fields like actionType, entrypoint, runtime and orgId, and with no output schema, the description should at least say what an ABX action is and what the required payload means. Instead it repeats the tool name and path.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 even though the description says nothing about the single nested body parameter. Notably the schema labels the body 'Properties of the action to patch', a confusing mismatch for a create operation that the description does nothing to clarify.

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 ('Creates a new action'), which is enough to tell it apart from read/delete siblings like abx_get_all_actions or abx_delete_action. It does not, however, differentiate it from closely related write-path siblings such as abx_post_actions_by_id_action_runs or abx_put_actions_by_id.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, no mention of prerequisites such as an existing org, runtime, or project, and no note about how it relates to version-creation or import tools. The agent is left to 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.

abx_post_actions_by_id_action_runsB

Trigger an action run Runs the specified action taking into consideration the supplied configuration POST /abx/api/resources/actions/{id}/action-runs

NameRequiredDescriptionDefault
idYesID of the action (path)
bodyYesConfiguration of the action run

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 and openWorldHint=true, so the fact that this mutates remote state is covered structurally. The description confirms execution occurs ('Runs the specified action taking into consideration the supplied configuration') and is consistent with those hints, but adds nothing beyond them - no mention of asynchronous behaviour, returned run identifier, or that runs can later be cancelled.

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-loads the verb 'Trigger'. It wastes a little space by restating the same idea twice ('Trigger an action run' / 'Runs the specified action...') and by appending the HTTP path, which the annotations title already carries.

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 trigger tool with a large nested body object and no output schema, the description should say what comes back (a run id? a run object?) and whether the call blocks or is asynchronous - both are completely absent. With no output schema to compensate, an agent cannot tell how to obtain or track the run it just started.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 reported at 100%, and both top-level parameters carry descriptions ('ID of the action (path)', 'Configuration of the action run'), so the baseline of 3 applies. The phrase 'taking into consideration the supplied configuration' adds no actionable meaning - it does not say which of the ~20 nested body properties (inputs, runtime, timeoutSeconds, actionId) are actually honoured versus echoed.

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: 'Trigger an action run' against /actions/{id}/action-runs, which is concrete enough for an agent to know this launches an action execution. However it never distinguishes this tool from the close sibling abx_post_action_runs, which appears to do the same thing via a different path, so the agent has no basis for choosing between 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 when-to-use guidance at all: nothing explains when to pick this over abx_post_action_runs, or that abx_cancel_action_run and abx_get_action_run_by_id are the follow-on tools for an in-flight run. The only hint of usage is implied by the verb 'Trigger'.

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

abx_post_action_secretsC

Create an action secret Creates a new action secret POST /abx/api/resources/action-secrets

NameRequiredDescriptionDefault
bodyYesAction secret to create

TDQS

C2.8/5.0
Behavior2/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. The description adds no behavioral context beyond restating that this is a POST create operation, and says nothing about secret sensitivity, value handling, permissions, 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.

Conciseness3/5

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

It is short and front-loaded, but the first two lines are redundant: 'Create an action secret' and 'Creates a new action secret' say the same thing. The endpoint line is useful, but the duplication means not every sentence earns its place.

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

Completeness2/5

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

Given a secret-creation mutation with no output schema, the description is too sparse. It does not explain what is returned, how secret values are handled, whether orgId is required, or why this differs from updating an existing secret.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 body parameter and its nested fields are structurally documented. The description adds no meaning about the body fields such as name, orgId, value, or encrypted, so the schema does the work and 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?

The description clearly states the verb and resource: create an action secret. The endpoint path confirms this is a collection POST, which distinguishes it somewhat from get/put/delete secret siblings, though it never 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?

It provides no explicit guidance on when to use this tool versus abx_put_action_secrets_by_id, abx_get_action_secrets, or abx_delete_action_secret. There is no mention of prerequisites, org scoping, or when creating a secret is appropriate.

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

abx_put_actions_by_idB
Idempotent

Update an action Updates the action with the new supplied state PUT /abx/api/resources/actions/{id}

NameRequiredDescriptionDefault
idYesID of the action (path)
bodyYesProperties of the action to patch

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=true, destructive=false and openWorld=true, so the safety profile is covered. The phrase 'new supplied state' hints at full-replace PUT semantics rather than partial update, which is genuinely useful, but the description does not say whether omitted fields are cleared or what a successful 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?

Three short lines, front-loaded with the verb and state-change summary, with no filler. The path echo essentially repeats the tool title and adds little, keeping it short of a 5.

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 whose body is a large nested object and with no output schema, the description should say what replacement semantics mean for omitted fields and what comes back. Annotations cover the safety flags, but replace-vs-merge behavior and return shape remain unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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% (id is documented as the path ID, body as 'Properties of the action to patch'), so the schema does the heavy lifting. The description adds nothing about the body's required fields (actionType, entrypoint, name, orgId, runtime) or how they must relate to the existing action, 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 ('Update an action') and the second line clarifies it replaces the action with the supplied state. However, it never distinguishes this PUT from the sibling abx_patch_actions_by_id or abx_create_action_version, so the agent must infer which mutation 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 when-to-use guidance, no mention of the PATCH alternative in the sibling set, and no preconditions (e.g. that a version must exist or that the full required state is supplied). The agent gets context only from the raw HTTP path.

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

abx_put_action_secrets_by_idC
Idempotent

Update an action secret Updates an existing action secret PUT /abx/api/resources/action-secrets/{id}

NameRequiredDescriptionDefault
idYesID of the action secret (path)
bodyYesAction secret to create

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, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond them: it doesn't say whether a PUT fully replaces the secret (omitted fields cleared), what happens to the encrypted flag, or what the response contains. The nested schema description 'Action secret to create' for a PUT endpoint adds mild confusion.

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?

Extremely short, front-loaded, but the first two lines are near-duplicates ('Update an action secret' / 'Updates an existing action secret') and the third is a raw route. Little waste in length, but the repetition adds nothing.

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 body object, no output schema, and no annotations explaining replace semantics, the description is too thin. An agent cannot tell whether omitted body fields are cleared or preserved, which matters materially for a PUT.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 documents both the path id and the body object with its fields. The description contributes no additional meaning about which body fields matter or are required during an update, so the 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 ("Update an action secret") plus the underlying PUT route. It is distinguishable from siblings like abx_get_action_secrets_by_id and abx_delete_action_secret by the verb, but it never explicitly contrasts itself with abx_post_action_secrets or abx_put_actions_by_id.

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

Usage Guidelines2/5

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

No guidance on when to use this instead of abx_post_action_secrets (create) or abx_patch_actions_by_id, and no prerequisites such as required ID or permissions. The agent must infer update-vs-create semantics 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.

abx_release_action_versionC
Idempotent

Mark an action version as released Marks an exisiting version of an action as released PUT /abx/api/resources/actions/{id}/release

NameRequiredDescriptionDefault
idYesID of the action (path)
bodyYesID of the version to release
projectIdYesProject ID of action (required for non-system actions)

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnly=false, idempotent=true, destructive=false, and the title carries the PUT endpoint, so the description adds nothing new. It does not say what 'released' means operationally (e.g. version becomes deployable/visible), whether a version must first be unreleased, what permissions are required, or how projectId affects scope.

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 two lines restate the identical fact ('Mark an action version as released' / 'Marks an existing version of an action as released'), and the raw PUT path duplicates the annotation title. Redundancy rather than density.

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 state-mutating tool with no output schema and no description of the resulting state change, side effects, or prerequisites. For a release/state-transition operation, an agent needs to know the semantic effect of the action, which 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 id, projectId, and the nested body.version are fully documented in structured fields. The phrase 'existing version of an action' loosely reinforces the id/version pairing but adds no format, precondition, 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?

The first line states a specific verb and resource: mark an action version as released, with the underlying PUT endpoint. It's distinct from the inverse sibling abx_unrelease_action_version by implication, but the description never names that sibling or abx_restore_action_version, so the differentiation is left to the agent's 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?

There is no explicit when-to-use guidance and no mention of the closely related abx_unrelease_action_version or abx_restore_action_version tools. The agent must infer from naming convention alone which state-transition tool to pick.

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

abx_restore_action_versionB
Idempotent

Restore the action state based on a specified version Change the current action state to the state specified in the version PUT /abx/api/resources/actions/{id}/versions/{versionId}/restore

NameRequiredDescriptionDefault
idYesID of the action (path)
projectIdYesProject ID of action (required for non-system actions)
versionIdYesID of the action version (path)

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare the mutation profile (readOnly=false, idempotent=true, destructive=false), and the description adds that the current action state is replaced by the version's state, which is useful context about the effect. It says nothing about what happens to unsaved/current edits, required permissions, or the response, so it adds only moderate value. Note the soft tension: overwriting current state is arguably destructive while destructiveHint=false, but the description does not assert destructiveness, so this is not a 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?

The first two sentences restate the same idea ('restore the action state based on a specified version' vs 'change the current action state to the state specified in the version'), and the trailing PUT path duplicates the annotation title. Content is front-loaded but partially 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?

For a 3-required-param mutation with full schema coverage and no output schema, the description covers the core effect but omits practical detail such as the projectId requirement rationale (only in schema) and what the call returns. Adequate but with visible 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 three parameters (id, versionId, projectId) are already documented in the schema. The description only echoes the path semantics and adds no extra meaning, which is exactly the baseline-when-schema-covers 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?

Names a specific verb (restore) and resource (action state to a specified version), which is clearly distinct from siblings like abx_create_action_version or abx_release_action_version. It does not explicitly name or contrast those siblings, 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 description implies the use case (roll an action back to a prior version's state) but never states when to choose this over adjacent tools such as abx_release_action_version or abx_get_all_versions, nor any preconditions. Usage must be inferred from the verb.

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

abx_unrelease_action_versionC
DestructiveIdempotent

Mark an action version as not released Marks an actions released version as not released DELETE /abx/api/resources/actions/{id}/release

NameRequiredDescriptionDefault
idYesID of the action (path)
projectIdYesProject ID of action (required for non-system actions)

TDQS

C2.4/5.0
Behavior2/5

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

The annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered; the description's only additional content is the raw DELETE endpoint, which merely repeats the title. It says nothing about the consequence of unreleasing — whether existing deployments or subscriptions referencing the version break, whether runs fail, or that re-releasing via abx_release_action_version is the way back.

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?

Three lines, two of which are redundant paraphrases of the first, and the third is a raw endpoint string duplicating the annotation title. The text is short but wasted space, and no consequence or guidance is front-loaded.

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

Completeness2/5

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

For a destructive, open-world mutation with no output schema, the description should describe the resulting state change and any downstream effects. It currently supplies only a restated purpose and the HTTP route, leaving an agent unable to predict the outcome 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%, with both id and projectId documented in the schema itself, so the baseline of 3 applies. The description adds no meaning beyond the schema — notably it does not explain the path {id} versus the projectId scoping rule beyond what the schema already states.

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?

A verb+resource is present ("mark an action version as not released"), so the general intent is graspable. But the three lines restate the same thing and never clarify the unit of operation: the schema only accepts an action id, not a version id, leaving it ambiguous whether this unreleases one version, the current version, or all of them. It also doesn't distinguish itself from close siblings such as abx_release_action_version, abx_restore_action_version, and abx_delete_action_version.

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 the sibling release/restore/delete version tools, and no prerequisites or warnings. An agent must guess whether "unrelease" is a soft rollback, a deprecation, or a prerequisite for deletion.

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

approvals_answer_work_itemC

Answers the specified work item POST /workitem/api/workitems/{id}/answer

NameRequiredDescriptionDefault
idYes(path)
bodyYesRequest body

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=false, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond the endpoint path — no mention that answering is irreversible once submitted, that it likely requires the work item to be in a pending state, or who is authorized to answer.

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, so nothing is wasted structurally. But the single content sentence is a tautological restatement of the name and the endpoint string does no semantic work for an agent that already sees 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?

This is a non-idempotent mutation with a nested, opaque `formEntries` object and no output schema. The description gives no hint about where form entries come from (e.g. the work item's form definition), what a successful answer does to the approval lifecycle, or what identifiers are needed.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema carries the documentation burden and the baseline is 3. The description contributes nothing about the required uuid `id` (is it the work item id from approvals_get_work_items?) or the shape/source of `body.formEntries`.

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 restates the tool name almost verbatim ('Answers the specified work item'), plus a raw REST endpoint path. An agent learns nothing about what 'answering' entails (submitting form entries to complete/approve an approval request) or how this differs from siblings such as approvals_reject_work_item or approvals_execute_action_on_approval_request.

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

Usage Guidelines1/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 prerequisite guidance is provided. It does not say that answering is the affirmative counterpart to approvals_reject_work_item, nor that the work item should first be read via approvals_get_work_item_by_id.

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

approvals_execute_action_on_approval_requestC

Approves or Rejects the approval request POST /approval/api/approvals/action

NameRequiredDescriptionDefault
bodyYesapproval request action
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /approval/api/about

TDQS

C2.9/5.0
Behavior2/5

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

The annotations already declare this is a non-read-only, open-world, non-idempotent mutation. The description adds no additional behavioral context such as required permissions, the effect of CANCEL, or the difference between fullApproval and currentLevelApproval.

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

Conciseness4/5

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

The description is brief and front-loads the core action, but the included endpoint path largely duplicates the annotation title and does not help tool selection. There is little waste, but also little structure beyond two short lines.

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 nested mutation tool with several action options and no output schema. The description does not explain the supported actions beyond approve/reject, omits CANCEL despite it being in the schema, and does not help distinguish full approval from current-level approval.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents all parameters and nested fields. The description adds no further parameter semantics beyond the high-level approve/reject action, which is the expected baseline when the schema is comprehensive.

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: approving or rejecting an approval request. It is clearer than the generic tool name, but it does not distinguish this action tool from sibling tools such as approvals_reject_work_item and approvals_answer_work_item.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus the other approval-related sibling tools. It only restates the action and endpoint, leaving the agent to infer the appropriate context.

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

approvals_get_aboutA
Read-onlyIdempotent

Get about page The page contains information about the supported API versions and the latest API version. The version parameter is optional but highly recommended. If you do not specify explicitly an exact version, you will be calling the latest supported API version. Here is an example of a call which specifies the exact version you are using: GET /approval/api/approvals?apiVersion=2022-01-25 GET /approval/api/about

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /approval/api/about

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare this is read-only, idempotent, open-world, and non-destructive. The description adds meaningful behavior beyond that by explaining the default-to-latest-version behavior when apiVersion is omitted and showing the endpoint path. It does not discuss auth or rate limits, but those are less critical 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 core information is front-loaded, but the description is somewhat rambling and includes a confusing example with both a /approvals?apiVersion=... path and a separate /about path. It is reasonably short overall, yet not every sentence is tightly organized.

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 metadata endpoint with no required parameters, no output schema, and annotations covering safety, the description is largely complete: it states what the page contains and how apiVersion affects the response. It could be slightly clearer about the response format, but an agent has enough to call it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already documents the single apiVersion parameter. The description still adds value by stating that the parameter is optional but highly recommended, that omitting it calls the latest supported API version, and by giving an example date-formatted value.

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 opening 'Get about page' is generic and mostly restates the tool name/title. The second sentence clarifies that it returns supported and latest API version information, but the description never says this is the approvals API about endpoint or distinguishes it from the many sibling get_about tools.

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

Usage Guidelines3/5

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

Usage is implied: call this to discover supported API versions. The description gives useful guidance that apiVersion is optional but highly recommended and that omitting it defaults to the latest supported version, but it does not state when to use this versus sibling about endpoints or any prerequisites.

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

approvals_get_approval_requests_v3C
Read-onlyIdempotent

Returns approval requests GET /approval/api/approvals

NameRequiredDescriptionDefault
pageNoResults page you want to retrieve (0..N)
sizeNoNumber of records per page.
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending.
searchNoSearching is enabled on following attributes: deploymentId, deploymentName, projectId, projectName, requestedBy or action.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /approval/api/about
requestStateNo
approverStateNo
filterEntitledRequestsNoFlag for approval admin to filter the approval requests which has himself/herself as one of the approver

TDQS

C2.3/5.0
Behavior2/5

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

The annotations already declare readOnly, idempotent, non-destructive and open-world, so the safety profile is covered. The description adds only the raw endpoint path "GET /approval/api/approvals", with no note on pagination defaults, search behavior, or whether filterEntitledRequests changes the result set.

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 lines with the verb-resource statement front-loaded, so there is no waste. But the terseness comes at the cost of usefulness rather than from efficient information packing.

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?

Eight parameters, no required fields, no output schema, and a broad search/filter surface: an agent needs guidance on paging, default sort, and how the two approval-state filters interact. None of that is present, so the definition 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 75%, close to the high-coverage baseline, so the schema does most of the work. The description contributes nothing about the two undocumented enum filters (requestState, approverState) or about paging semantics, so it neither helps nor hurts beyond baseline.

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?

"Returns approval requests" restates the tool name with no added specificity. It does not distinguish this collection endpoint from close siblings such as approvals_get_work_items, approvals_get_approval_request_v3 or approvals_get_work_items_for_deployment.

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, when not to, or which sibling to prefer for a single request versus a list. The agent is left to infer everything from the name and parameters.

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

approvals_get_approval_request_v3B
Read-onlyIdempotent

Returns details of the approval request GET /approval/api/approvals/{id}

NameRequiredDescriptionDefault
idYesapproval request id (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /approval/api/about

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 and side-effect profile is fully covered without the description. The description adds only the raw GET path, which restates the annotation title rather than adding behavioral context such as error behavior for missing/invalid ids; this is minimum viable given 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?

Two very short lines, front-loaded with the purpose, so the signal comes first. The second line duplicating the endpoint path is largely redundant with the annotation title but 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 simple read-by-id tool the schema and annotations carry most of the burden, but with no output schema the description says nothing about what 'details' are returned or what the response shape looks like. It is adequate to call the tool but leaves the agent guessing about the return payload.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 'id' (uuid, path) and 'apiVersion' (yyyy-MM-dd versioning) documented in the schema itself. The description adds no syntax or format guidance beyond what the schema provides, so the baseline of 3 applies.

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

Purpose4/5

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

The description states a specific verb and resource ('Returns details of the approval request') and echoes the endpoint path, so the agent knows this is a single-record read. It does not distinguish itself from close siblings such as approvals_get_approval_requests_v3 (list) or approvals_get_work_item_by_id, leaving the agent to infer which one 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 explicit when-to-use or when-not-to-use guidance, and no alternatives are named despite several similar retrieval tools in the sibling list. The agent must infer usage purely from the fact that a single 'id' path parameter is required.

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

approvals_get_logged_in_user_groupsC
Read-onlyIdempotent

GET /approval/api/approvals/userGroups GET /approval/api/approvals/userGroups

NameRequiredDescriptionDefault

No parameters

TDQS

C2.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 provided structurally. The description adds no behavioral context beyond the endpoint, such as scope, auth expectations, or return characteristics.

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 line is an exact duplication of the first and neither line is written for an agent to read quickly. The space is not used to front-load meaningful purpose or usage 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?

Although the tool is simple and annotations are rich, the description does not explain what approval user groups are, whose groups are returned, or how this differs from related identity tools. An agent must infer too much from the name and endpoint alone.

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

Parameters4/5

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

The tool has zero parameters, so there are no parameter semantics to explain. The baseline for a no-parameter tool applies; the description neither helps nor harms here.

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 just the HTTP endpoint path, repeated twice. It conveys a GET on userGroups but adds no plain-language statement of what the tool returns or why it exists, so it largely restates the tool name/endpoint rather than clarifying purpose.

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

Usage Guidelines1/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, when not to use it, or which sibling tool is the alternative. The repeated endpoint path provides no selection criteria for an agent choosing among many identity and approvals tools.

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

approvals_get_work_item_by_idC
Read-onlyIdempotent

Returns work item by id GET /workitem/api/workitems/{id}

NameRequiredDescriptionDefault
idYes(path)
expandNo

TDQS

C2.6/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. The description adds nothing beyond that — no note on what a work item represents, whether the id is scoped to a user/tenant, or what happens on an unknown id (404 vs empty).

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 lines, front-loaded with the verb, so it is easy to scan. However, the second line is a raw endpoint path that mostly duplicates the name and annotation title rather than adding 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 simple read there is no output schema, so the description should say something about what is returned (work item type, state, approval request linkage) and clarify the undocumented 'expand' parameter. Neither is present, leaving the agent with only annotations and the name.

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 only 50%: 'id' is tagged merely as '(path)' with a uuid format, and 'expand' has no description in either the schema or the description. The description reinforces that the id identifies the item but gives no hint about what 'expand' expands or what values it accepts.

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 work item identified by its id. The 'by id' phrasing implicitly separates it from the listing siblings such as approvals_get_work_items and approvals_get_work_items_for_deployment, though no sibling is named.

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 the list endpoints or the deployment-scoped variants. The agent must infer that this is the single-item fetch 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.

approvals_get_work_itemsC
Read-onlyIdempotent

Returns work items for the logged in user GET /workitem/api/workitems

NameRequiredDescriptionDefault
pageNoResults page you want to retrieve (0..N)
sizeNoNumber of records per page.
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending.
typeNo
stateNo
searchNoSearching is enabled on following attributes: deploymentName, work item name and workflow details
assigneeStateNo

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so safety is covered. The description adds almost nothing on top: no pagination defaults, no ordering behavior, no indication of what a work item contains or whether unanswered items dominate results. The raw path string "GET /workitem/api/workitems" is the only extra content and carries no behavioral meaning.

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, purpose front-loaded, no filler prose. The trailing raw endpoint path duplicates the annotation title and could be dropped, but the overall size is tight.

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 seven-parameter paginated list endpoint with no output schema needs the description to say what comes back and how paging/filtering behaves; it does neither. Given the absence of an output schema and only partial parameter documentation, the definition leaves an agent under-equipped to call it correctly.

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

Parameters2/5

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

Schema description coverage is only 57% (type, state and assigneeState have no prose, only enums), and the description mentions no parameters at all. It does not explain that page/size control paging, that search covers deploymentName/work item name/workflow details, or how state and assigneeState interact — leaving the agent to read the schema cold.

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 ("Returns work items") plus the scope ("for the logged in user"), which is enough to separate it from approvals_get_work_item_by_id and approvals_get_work_items_for_deployment. It never names those siblings explicitly, so the differentiation is inferred rather than stated.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of the deployment-scoped and by-id siblings, and no explanation of when to apply the state/assigneeState filters versus when to call a different endpoint. The only hint is the implicit "logged in user" scope.

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

approvals_get_work_items_for_deploymentC
Read-onlyIdempotent

Returns all work items for a deployment GET /workitem/api/workitems/deployment/{deploymentId}/workitems

NameRequiredDescriptionDefault
idsNo
pageNoResults page you want to retrieve (0..N)
sizeNoNumber of records per page.
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending.
typeNo
stateNo
expandNo
deploymentIdYes(path)

TDQS

C2.7/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 the safety profile is covered. The description restates the endpoint and says nothing additional about pagination defaults, result limits, or whether 'all' conflicts with the paging 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?

A single short, front-loaded sentence with the endpoint appended; no wasted prose. The raw path is somewhat redundant with the annotation title but is brief.

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 8 parameters, no output schema, and half the parameters undocumented, the description is too thin. It does not explain what a work item contains, how the type/state/expand filters behave, or how results are paginated.

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?

With 8 parameters at 50% schema description coverage, several properties (ids, type, state, expand) have no documentation anywhere. The description only echoes deploymentId from the path and adds no meaning about filtering, expansion, or how page/size interact with 'all'.

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 ('Returns all work items for a deployment') and the path makes the scope concrete. It does not distinguish itself from the nearby siblings approvals_get_work_items or approvals_get_work_items_for_deployment_request, so an agent must infer 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 statement of when to use this versus the generic approvals_get_work_items or the deployment-request variant. The only clue is the path containing deploymentId, which is left implicit.

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

approvals_get_work_items_for_deployment_requestC
Read-onlyIdempotent

Returns work items for a deployment request GET /workitem/api/workitems/{deploymentId}/{requestId}

NameRequiredDescriptionDefault
idsNo
pageNoResults page you want to retrieve (0..N)
sizeNoNumber of records per page.
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending.
typeNo
stateNo
expandNo
requestIdYes(path)
deploymentIdYes(path)

TDQS

C2.7/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 covered. The description adds nothing beyond the raw HTTP path – no notes on result set size, pagination defaults, or what 'work items' contain here versus the unfiltered 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?

Two lines, front-loaded, no filler – but the second line merely restates the endpoint path an agent gains little from. Conciseness is fine; the 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.

Completeness3/5

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

For a read-only filtered list tool with no output schema, the description is too thin: nine parameters, 56% schema coverage, and several ambiguous ones (ids vs. deploymentId/requestId, expand) are left unexplained. An agent can invoke it but may misuse the filters.

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 only 56%; nine parameters exist and the description only indicates that deploymentId and requestId come from the path. It says nothing about ids, type (enum MUI), state (ACTIVE/ANSWERED/REJECTED/EXPIRED), expand, or the paging parameters, leaving half the parameters undocumented in both schema and description.

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 ('Returns work items for a deployment request') and the path template makes the deploymentId/requestId scoping explicit. It doesn't however name or distinguish itself from the very close siblings approvals_get_work_items and approvals_get_work_items_for_deployment, which an agent could easily confuse with 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?

There is no guidance on when to use this versus approvals_get_work_items, approvals_get_work_items_for_deployment, or approvals_get_work_item_by_id. The description is purely a restatement of the endpoint with no usage context or exclusions.

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

approvals_reject_work_itemC

Rejects the specified work item POST /workitem/api/workitems/{id}/reject

NameRequiredDescriptionDefault
idYes(path)
bodyYesRequest body

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, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond the REST path, which merely restates the annotation title: no word on resulting state transitions, whether the rejection is reversible, whether a reason/formEntries payload is mandatory, 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.

Conciseness4/5

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

Two short lines with the action front-loaded. The second line is a raw POST path that duplicates the annotation title and earns little space, but the definition is not bloated.

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 in an approval workflow with a nested request body and no output schema, the description omits the essentials: what rejection does to the work item/approval request, whether the body is required content, and what the caller gets back. An agent could invoke it but not predict its 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 nominally 100%, so the baseline is 3, but the schema descriptions are vacuous ('(path)' and 'Request body') and the nested formEntries object is entirely unexplained. The description does nothing to clarify that the body carries rejection form data, so it neither helps nor hurts relative to 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 ('Rejects the specified work item'), which is more informative than the name alone. However, it does not differentiate itself from siblings such as approvals_answer_work_item or approvals_execute_action_on_approval_request, which plausibly also act on work items.

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 reject versus using approvals_answer_work_item or approvals_execute_action_on_approval_request, and no prerequisites (e.g., approver role, work item state). The agent must infer the entire selection logic 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.

blueprint_cancel_blueprint_requestC

Cancel request POST /blueprint/api/blueprint-requests/{requestId}/actions/cancel

NameRequiredDescriptionDefault
requestIdYes(path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about

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, openWorldHint=true, idempotentHint=false, and destructiveHint=false, so the safety profile is largely covered. The description adds only the HTTP endpoint and does not explain the effect of cancellation, whether it is asynchronous, what state the request enters, or any 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?

The description is very short and front-loads the action before the endpoint, with no wasted prose. It is slightly under-specified rather than verbose, but structurally it is efficient.

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

Completeness2/5

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

For a mutation action with no output schema, the description should explain what cancellation actually does and any conditions around it. It leaves the agent with only the endpoint and verb, which is not enough to understand the operation's consequences or edge 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 description coverage is 100%, so requestId and apiVersion are already documented in the input schema. The description adds no parameter meaning, but the baseline is 3 when the schema fully carries parameter documentation.

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

Purpose4/5

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

The description states a clear verb, 'Cancel', and the endpoint path ties it to blueprint request cancellation. It does not explicitly distinguish this action from sibling tools like blueprint_delete_blueprint_request or blueprint_get_blueprint_request, but the core purpose is identifiable.

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 prerequisites, and no note about when a blueprint request is cancellable. The agent can infer it is for cancellation, but nothing tells it whether to choose cancel over delete or another request-management tool.

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

blueprint_create_blueprintC

Creates a blueprint POST /blueprint/api/blueprints

NameRequiredDescriptionDefault
bodyYesBlueprint object
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about

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, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that: it does not say whether a version is auto-created, whether content YAML must be valid first, what permissions or project scope are required, or what happens on duplicate names.

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 action, but the second line ('POST /blueprint/api/blueprints') merely restates the annotation title and adds no decision-relevant information for an agent.

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

Completeness2/5

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

For a nested-body mutation tool with no output schema, the description omits what the caller gets back (e.g., created blueprint id), whether the new blueprint is a draft or released, and how it relates to version/mapping creation flows. The rich schema covers inputs, but the operational context 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 the nested body fields (name, content, projectId, organizationSharings, requestScopeOrg) are already documented in the schema. The description contributes no additional meaning about required combinations or field interactions, 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 verb+resource pair is explicit: 'Creates a blueprint.' However, it does not distinguish itself from close siblings such as blueprint_create_blueprint_from_mapping, blueprint_create_blueprint_version, or blueprint_update_blueprint, so an agent cannot tell from the description alone which creation path applies.

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 alternative creation tools in the sibling set. The only extra text is the raw endpoint path, which conveys nothing about selection criteria.

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

blueprint_create_blueprint_from_mappingB

Creates a blueprint from a Terraform blueprint configuration (obtained from /create-blueprint-mapping). POST /blueprint/api/blueprint-integrations/terraform/create-blueprint-from-mapping

NameRequiredDescriptionDefault
bodyYesA Terraform blueprint configuration.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare this as a non-read-only, open-world, non-idempotent write operation, so the description needn't repeat that. It adds minor context about the source of the configuration but does not describe side effects, permissions required, or what happens on success/failure.

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 in the first sentence, but the second sentence merely repeats the endpoint already present in the title and annotations. That repetition does not earn its place, reducing conciseness.

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

Completeness3/5

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

With no output schema, the description should ideally explain return values or key behavioral outcomes, which it does not. It provides the minimal context needed to understand the operation but leaves gaps about return values and error behavior given the nested request body.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents both parameters (body and apiVersion). The description offers no additional parameter-level detail beyond the schema, 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 ("Creates") and resource ("a blueprint from a Terraform blueprint configuration"). The parenthetical source endpoint distinguishes it from sibling tools like blueprint_create_blueprint, though it stops short of naming the mapping tool directly.

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 "obtained from /create-blueprint-mapping" implies a prerequisite workflow step, but the description does not explicitly say when to use this tool versus alternatives or state any exclusions. The usage context is present but must be inferred.

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

blueprint_create_blueprint_mappingC

Retrieves and parses the specified Terraform configuration file(s) and returns relevant information for blueprint construction. POST /blueprint/api/blueprint-integrations/terraform/create-blueprint-mapping

NameRequiredDescriptionDefault
bodyYesReference information about a Terraform Configuration source that stores Terraform configuration files.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about

TDQS

C2.3/5.0
Behavior1/5

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

Annotations declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, and destructiveHint=false, but the description frames the operation as retrieving/parsing and returning information. That reads as a read-only operation and omits the side effects implied by creating a blueprint mapping, contradicting the mutation annotation.

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 action, but the second line is a raw endpoint path that does not help an agent decide when to call the tool. The first sentence is also misleading about the mutation, so the structure is efficient but not fully effective.

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 nested-body, non-read-only integration endpoint with no output schema, the description does not explain the result, side effects, or usage conditions. The schema is complete, but the behavioral and routing context needed for safe invocation 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%: repositoryId, commitId, sourceDirectory, and apiVersion are all documented in the schema. The description adds no parameter-level semantics beyond 'specified Terraform configuration file(s),' so the baseline 3 is appropriate.

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

Purpose3/5

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

The sentence names a specific action and resource: retrieving and parsing Terraform configuration files for blueprint construction. However, it does not describe creating a blueprint mapping as the tool name and endpoint imply, and it does not differentiate from siblings like blueprint_create_blueprint_from_mapping or blueprint_get_terraform_configuration_sources.

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 prerequisites, and no alternatives named. The phrase 'for blueprint construction' is too vague to help an agent choose between this tool and the many other blueprint_* siblings.

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

blueprint_create_blueprint_requestC

Creates a blueprint request POST /blueprint/api/blueprint-requests

NameRequiredDescriptionDefault
bodyYesRequest body
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already declare readOnly=false, openWorld=true, idempotent=false, destructive=false, so the safety baseline is covered. The description adds nothing beyond the endpoint path: it does not say the call is asynchronous and returns a request to poll, mention plan/simulate/destroy flag interplay, or note that the optional destroy flag can tear down an existing deployment despite destructiveHint=false.

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 that brevity comes from omission rather than discipline; the second line is a raw REST path that duplicates the annotation title "POST /blueprint/api/blueprint-requests" and adds 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?

For a create/mutation tool with a deeply nested body, no output schema, and an async execution model, the description should explain the returned request identifier and how to follow up (get_blueprint_request, get_blueprint_request_execution). None of that is present, so an agent cannot infer the post-call workflow.

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

Parameters3/5

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

Schema description coverage is 100%, including the nested body fields with their own explanations of plan, simulate, destroy, and mutual-exclusion rules, so the schema does the heavy lifting. The description adds no additional semantics, which is the baseline-3 case.

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?

"Creates a blueprint request" states a verb and a resource, but it essentially restates the tool name plus the raw endpoint path. It gives no indication of what a blueprint request actually is (an execution/plan of a blueprint) or how it differs from close siblings like blueprint_create_blueprint, blueprint_create_blueprint_version, or blueprint_validate_blueprint.

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 at all: nothing says to call this rather than blueprint_create_blueprint, blueprint_validate_blueprint, or catalog_request_catalog_item_instances, and no mention of prerequisites such as a released blueprint version being required.

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

blueprint_create_blueprint_versionC

Creates version for the given blueprint ID POST /blueprint/api/blueprints/{blueprintId}/versions

NameRequiredDescriptionDefault
bodyYesBlueprint version object
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about
blueprintIdYes(path)

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, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond restating that it creates something and the endpoint path — it does not say whether the new version starts in released state or unreleased, whether it requires the blueprint to be validated first, or how it interacts with the release/unrelease tools.

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, with no filler. The inclusion of a raw POST path adds little for an agent but is not wasteful enough to penalize heavily.

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 that creates a new version object with a nested body containing release and sourceControlPush flags, the description omits the meaningful outcomes an agent needs: resulting version state, effect of release=true versus a separate release call, and source control push behavior. With no output schema, that gap is not filled anywhere else.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 version, release, changeLog, description, and sourceControlPush, so the schema carries parameter semantics. The description contributes no additional parameter meaning, which is acceptable but not additive; 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: creates a blueprint version for a given blueprint ID, which distinguishes it from get/list counterparts. It does not differentiate from the closely related siblings blueprint_release_blueprint_version or blueprint_restore_blueprint_version, so an agent must infer which mutating 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 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 blueprint_release_blueprint_version, blueprint_restore_blueprint_version, or blueprint_update_blueprint, and no stated prerequisites (existing blueprint, required permissions). The only context is the raw REST path, which is schema-level information rather than usage guidance.

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

blueprint_create_property_groupC

Creates a property group POST /properties/api/property-groups

NameRequiredDescriptionDefault
bodyYesRequest body
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about

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, destructiveHint=false and openWorldHint=true, so the safety profile is partly covered. The description adds nothing beyond restating the write operation — no mention of required authorization, uniqueness constraints on name, or what happens on conflict. It does not contradict 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 verb and resource. The trailing 'POST /properties/api/property-groups' duplicates the annotation title and adds little, but overall there is no bloat.

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 creation tool with a deeply nested body (properties map with recursive type definitions) and no output schema. The description never explains what the request body must contain, what INPUT vs CONSTANT types mean, or what the response returns (e.g., the created group ID), leaving significant gaps for a complex mutation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 nested property definitions, so the schema carries parameter meaning fully. The description contributes no additional detail on the body structure or the meaning of the apiVersion parameter, which is the correct 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 ('Creates a property group'), which distinguishes it from blueprint_update_property_group, blueprint_delete_property_group and blueprint_list_property_groups by name alone. It does not explicitly contrast with those siblings in the text, 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 guidance on when to create a property group versus updating an existing one, no prerequisites (project selection, permissions), and no mention of the alternative sibling tools. The agent must infer all usage context from the tool name and annotations.

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

blueprint_create_terraform_versionC

Creates a version POST /blueprint/api/blueprint-integrations/terraform/versions

NameRequiredDescriptionDefault
bodyYesTerraform version object
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about

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, openWorldHint=true, destructiveHint=false. The description adds nothing beyond that: it does not warn that repeated POSTs create duplicate versions (non-idempotent), what happens if the version string already exists, or that url/authenticationType govern an outbound download.

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, with no wasted prose, but the brevity is under-specification rather than economy. The duplicated raw HTTP route is the only structural content beyond a one-line verb phrase.

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 body object, no output schema, and non-idempotent semantics, yet the description says nothing about the returned version object, duplicate handling, or required download/auth configuration. For this complexity level, the definition is materially incomplete.

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

Parameters3/5

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

Schema description coverage is 100%, so all two top-level parameters and the eight nested body fields (url, version, sha256Checksum, authenticationType, credentials, enabled) are self-documented. The description contributes no additional parameter meaning, which is acceptable given the schema carries the load.

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?

"Creates a version" essentially restates the name (create + terraform_version); only the bare POST route adds the fact that this is a Terraform version integration record. It draws no distinction from close siblings such as blueprint_create_blueprint_version, blueprint_update_terraform_version, or blueprint_list_terraform_versions.

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 create a new version versus updating an existing one, and no prerequisites (the version must presumably be a Terraform release with a downloadable binary URL). The agent is left to infer everything from the name and the HTTP route.

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

blueprint_delete_blueprintA
DestructiveIdempotent

Deletes a blueprint DELETE /blueprint/api/blueprints/{blueprintId}

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about
blueprintIdYes(path)

TDQS

A3.7/5.0
Behavior3/5

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

The annotations already cover critical behavioral traits (destructiveHint, readOnlyHint, idempotentHint). The description adds the REST endpoint structure, which is contextually useful but does not disclose new behavioral constraints or limits beyond the structured data.

Agents need to know what a tool does to the world before 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 definition is highly concise, front-loading the action and providing the resource identifier structure in a clear, single-line manner.

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

Completeness3/5

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

While the endpoint structure is helpful, the definition is not complete for an agent making a choice between the raw API call and the wrapped onboarding function. It lacks context on why one would choose this over the other.

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

Parameters3/5

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

Since schema description coverage is 100%, the schema already details the purpose of `blueprintId` and `apiVersion`. The description merely restates the parameter's role within the URL path.

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

Purpose5/5

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

The description clearly states the action (Deletes a blueprint) and provides the specific HTTP method and URL structure (DELETE /blueprint/api/blueprints/{blueprintId}), making it highly distinguishable from other potential tools.

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

Usage Guidelines3/5

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

While the API route implies a specific implementation style, the description fails to distinguish when this specific tool should be used versus the similar onboarding tool, onboarding_delete_blueprint_by_id, which exists in the sibling list.

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

blueprint_delete_blueprint_requestC
DestructiveIdempotent

Deletes request DELETE /blueprint/api/blueprint-requests/{requestId}

NameRequiredDescriptionDefault
forceNoForce delete if not in final stage
requestIdYes(path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about

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 safety profile is covered structurally. The description adds nothing beyond that — no statement of what is destroyed, whether a running/final-stage request can be removed, or what happens when 'force' is used on a non-final-stage request.

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 with no filler, but the second line merely restates the HTTP route already encoded in the tool name and schema path parameter. The wording that would actually help an agent choose this tool is absent while a redundant line is present.

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?

This is a destructive, single-required-parameter operation, and the annotations plus the fully described schema carry the safety profile and parameter semantics. What the description lacks is usage routing rather than missing mechanics, so for its complexity level it is close to sufficient.

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

Parameters3/5

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

Schema description coverage is 100%: requestId (path), force ('Force delete if not in final stage'), and apiVersion are all documented in the schema. The description adds no parameter meaning, so the baseline 3 applies — the schema, not the prose, does the work.

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 ('Deletes request') plus the raw path make it clear this removes a blueprint request by ID, so the basic operation is identifiable. But there is no differentiation from closely related siblings such as blueprint_cancel_blueprint_request or blueprint_delete_blueprint — an agent must guess which removal semantic applies.

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 when-to-use or when-not-to-use guidance. It never mentions the cancel_blueprint_request alternative, nor when the 'force' flag is appropriate, leaving the agent to infer the choice of tool from the resource path alone.

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

blueprint_delete_property_groupB
DestructiveIdempotent

Deletes a property group DELETE /properties/api/property-groups/{propertyGroupId}

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about
propertyGroupIdYes(path)

TDQS

B3.2/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 safety profile is covered structurally. The description adds only the underlying HTTP route (DELETE /properties/api/property-groups/{propertyGroupId}), not what else is affected — e.g. whether consumers of the group are detached or broken. Useful context, but thin for a destructive 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?

One front-loaded sentence plus the endpoint line — no filler prose. The REST route largely duplicates what the annotations' title already convey, so it is marginally redundant rather than 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 two-parameter destructive delete with no output schema, the basic shape of the call is fully conveyed by the schema and annotations. What is missing is consequence information: what a deleted property group orphans, and whether the call fails on in-use groups — the pieces an agent would need to act safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 propertyGroupId typed as uuid and marked '(path)', and apiVersion documented in the schema. The description adds no semantics beyond the route template that echoes the same parameter, 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 and resource ('Deletes a property group'), which distinguishes it from the sibling read/update operations (blueprint_get_property_group, blueprint_update_property_group, blueprint_list_property_groups). It does not explicitly name those siblings as alternatives, but the operation is unambiguous on its own.

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 alternatives, no statement of prerequisites (ownership/permissions), and no caution that deletion is irreversible or that a group still referenced by blueprints may fail. The 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.

blueprint_delete_terraform_versionC
DestructiveIdempotent

Deletes a terraform version DELETE /blueprint/api/blueprint-integrations/terraform/versions/{versionId}

NameRequiredDescriptionDefault
versionIdYes(path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about

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 no behavioral context beyond restating the operation and endpoint; it does not mention permanence, impact on dependent blueprints, or any side effects.

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

Conciseness4/5

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

The description is short and front-loaded with the action. The second line, an HTTP endpoint path, largely repeats the annotation title and is not especially informative, but the overall text is not verbose.

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

Completeness3/5

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

For a simple delete operation with complete parameter schema coverage and strong annotations, the description is minimally sufficient for invocation. However, it omits meaningful context such as whether deletion is irreversible, whether versions in use can be deleted, or any dependency on blueprints referencing the version.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 documented in the schema. The description adds no additional meaning about versionId or apiVersion beyond what the schema already provides, so the baseline score of 3 is appropriate.

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

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: 'Deletes a terraform version'. The HTTP DELETE path reinforces the operation. It does not explicitly differentiate itself from siblings like blueprint_get_terraform_version or blueprint_update_terraform_version, but the action and resource are 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?

There is no guidance on when to use this tool versus alternatives such as updating, listing, or retrieving Terraform versions. No prerequisites or warnings are provided, aside from the implicit meaning of 'delete'.

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

blueprint_get_aboutB
Read-onlyIdempotent

Returns blueprint API information The page contains information about the supported API versions and the latest API version. The version parameter is optional but highly recommended. Only assembler admin in VM Apps Org can access. If you do not specify explicitly an exact version, you will be calling the latest supported API version. Here is an example of a call which specifies the exact version you are using: GET /blueprint/api/blueprints?apiVersion=2019-09-12 GET /blueprint/api/about

NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and non-destructive, so the safety profile is covered. The description adds genuinely new context: it names the required privilege (assembler admin in VM Apps Org) and describes the payload (supported and latest API versions). It stops short of return structure or failure modes, which keeps it out of the top band.

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, but the body trails off into generic REST documentation ('Here is an example of a call...') and raw endpoint URLs that add little for an MCP caller. The important access restriction is buried mid-paragraph rather than surfaced.

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 zero-parameter read tool with no output schema, describing the returned content and the access requirement is the right coverage, and it does that. However, the misleading version-parameter discussion leaves ambiguity about what the tool actually returns and whether arguments are accepted, which undermines completeness.

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?

Zero parameters, so the schema baseline would be 4, but the description actively invents a 'version parameter' that does not exist in the input schema (which is an empty object with additionalProperties=false). The apiVersion example refers to the underlying REST URL, not to any MCP argument, so an agent reading this may attempt to pass an argument the tool cannot accept.

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 ('Returns blueprint API information') and then narrows to what the page contains: supported API versions and the latest version. An agent can distinguish it from blueprint_get_blueprint or blueprint_list_blueprints because it clearly reads as an endpoints/version discovery call, 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?

It hints at the reason to call it ('version parameter is optional but highly recommended' before issuing other blueprint calls) and adds an access gate ('Only assembler admin in VM Apps Org can access'). It does not state explicitly when to prefer this over sibling tools or what to do if access is denied, so usage remains implied rather than prescribed.

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

blueprint_get_blueprintC
Read-onlyIdempotent

Returns blueprint details GET /blueprint/api/blueprints/{blueprintId}

NameRequiredDescriptionDefault
selectNoFields to include in content.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about
revalidateNoPerform a revalidation of the blueprint or just return the errors saved in the DB
blueprintIdYes(path)

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 covered structurally. The description adds almost no behavioral context beyond the endpoint: it does not explain what blueprint details are returned, how revalidate behaves, or any auth/caching considerations.

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

Conciseness4/5

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

The description is brief and front-loaded, with no wasted prose. The endpoint path is somewhat redundant with the tool name and annotation title, but the overall structure is compact and 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?

Given the rich schema descriptions and annotations, the definition is minimally adequate for invocation. However, it does not explain what 'blueprint details' contains, and since there is no output schema, an agent has little context about the response shape or how revalidate/select affect 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%, so the input schema already explains all four parameters. The description adds no parameter-level meaning beyond what the schema provides, which is the baseline case for high 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 states a specific verb and resource: 'Returns blueprint details.' This is clear enough to distinguish a read operation from create/update/delete siblings. However, it does not differentiate this tool from closely related read siblings such as blueprint_get_blueprint_version, blueprint_get_blueprint_request, or blueprint_get_blueprint_resources_plan.

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. It merely states the operation and HTTP endpoint, leaving the agent to infer whether it should call this or one of the many other blueprint-related retrieval tools.

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

blueprint_get_blueprint_inputs_schemaB
Read-onlyIdempotent

Returns blueprint inputs schema GET /blueprint/api/blueprints/{blueprintId}/inputs-schema

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about
blueprintIdYes(path)

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, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds only the underlying GET endpoint, which implies a plain retrieval, but says nothing about errors (missing blueprint), auth, or what the returned schema represents — the lower bar when annotations are present makes this acceptable but unremarkable.

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 purpose. The raw HTTP route 'GET /blueprint/api/blueprints/{blueprintId}/inputs-schema' is mostly filler already implied by the tool name, but it 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?

There is no output schema, and the description never says what an 'inputs schema' looks like or how it should be used (e.g., to render parameters or validate a request). For a simple read tool that is marginally adequate but leaves a real explanatory 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 apiVersion and blueprintId are documented in the schema, including the '(path)' marker. The description repeats the blueprintId path variable but adds no extra semantics, 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: 'Returns blueprint inputs schema' for a given blueprintId. It is understandable without the schema, but it does not distinguish itself from the sibling blueprint_get_blueprint_version_inputs_schema, which sounds near-identical.

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 at all. With a sibling that fetches an inputs schema for a blueprint *version*, the description gives the agent no basis to choose between the two and no prerequisites are mentioned.

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

blueprint_get_blueprint_requestC
Read-onlyIdempotent

Returns blueprint request details GET /blueprint/api/blueprint-requests/{requestId}

NameRequiredDescriptionDefault
requestIdYes(path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about

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, and the description adds nothing beyond restating the endpoint path. It does not explain what a blueprint request represents, what happens on an unknown id, or any error/miss 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?

Two short lines, front-loaded with the action. Slightly wasteful because the second line merely repeats the annotation title, but there is no padding or rambling.

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-by-id tool with full schema coverage and annotations, the essentials are present. Still missing is any explanation of what a blueprint request is or how the returned detail relates to its execution/plan/resources siblings, which would help an agent choose 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%: requestId (uuid path param) and apiVersion are documented in the schema. The description adds no meaning beyond that, 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 (returns blueprint request details) and matches the requestId path parameter. However, it does not distinguish itself from close siblings such as blueprint_list_blueprint_requests, blueprint_get_blueprint_request_execution, or blueprint_get_blueprint_requests_by_request_id_resources_plan, so an agent must infer the boundary 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?

The only usage signal is the implicit requirement of a requestId. There is no statement of when to use this versus the list, execution, or plan endpoints, and no prerequisites or exclusions are mentioned.

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

blueprint_get_blueprint_request_executionC
Read-onlyIdempotent

Returns request execution details GET /blueprint/api/blueprint-requests/{requestId}/execution

NameRequiredDescriptionDefault
expandNoDetailed execution
requestIdYes(path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about

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. The description mainly restates that this is a GET that returns details, without adding behavioral context such as whether the execution may be in progress or what operational state it exposes.

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 in the first line. The second line duplicates the endpoint already present in the annotations title, so it is slightly redundant but still 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?

For a simple read-only GET with full schema coverage and rich annotations, the description is minimally sufficient. However, in a large sibling set it does not explain when to choose this execution-details endpoint over the request-details 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 requestId, expand, and apiVersion are already documented in the schema. The description adds no extra parameter semantics, which is acceptable at baseline when 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 states a specific verb and resource: returns request execution details. The word 'execution' distinguishes it from a generic blueprint request lookup, but it does not explicitly name or distinguish it from siblings such as blueprint_get_blueprint_request.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus blueprint_get_blueprint_request or the resource-plan siblings. The endpoint path implies a GET, but it does not explain when execution details are the right target.

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

blueprint_get_blueprint_requests_by_request_id_resources_planC
Read-onlyIdempotent

Returns request resources plan GET /blueprint/api/blueprint-requests/{requestId}/resources-plan

NameRequiredDescriptionDefault
expandNoDetailed plan
requestIdYes(path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about

TDQS

C2.3/5.0
Behavior2/5

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

The annotations already state readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context such as whether the request must be completed, whether the plan may change, or what the response 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 very short and front-loaded, but the raw endpoint path duplicates information already present in the title and name and does not earn its place. It is concise but not especially informative.

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

Completeness2/5

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

There is no output schema, yet the description does not explain what the returned resources plan contains or how it should be interpreted. Given the ambiguity between this tool and the similarly named blueprint_get_blueprint_resources_plan sibling, the definition is underspecified.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters are already documented. The description adds no extra meaning for requestId, expand, or apiVersion beyond what the schema provides, matching the baseline for fully covered schemas.

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?

"Returns request resources plan" mostly restates the tool name and only adds the raw endpoint path. It does not explain what a resource plan is or how this differs from the sibling blueprint_get_blueprint_resources_plan.

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 context, no prerequisites, and no differentiation from related blueprint request/resource-plan tools. An agent must infer usage entirely from the name and endpoint.

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

blueprint_get_blueprint_resources_planC
Read-onlyIdempotent

Returns request plan GET /blueprint/api/blueprint-requests/{requestId}/plan

NameRequiredDescriptionDefault
expandNoDetailed plan
requestIdYes(path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about

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, openWorldHint=true and destructiveHint=false, so safety semantics are covered. The description adds no behavioral context of its own — not what the plan reflects (current state vs. pending execution), whether it is a point-in-time snapshot, or how large it may be — and it merely restates the endpoint already present in the annotation title.

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 second line is a raw HTTP path that duplicates the annotation title, so it consumes space without adding information. Brevity here reflects under-specification rather than efficient 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?

With no output schema, the description carries the burden of explaining what a "plan" object looks like or what an agent would use it for, and it does not. For a 3-parameter read tool with a complex domain (blueprint requests), this leaves the agent unable to judge relevance or interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 requestId, apiVersion and the expand boolean are documented in the schema itself. The description adds nothing (e.g., what a "detailed plan" with expand=true actually returns), which lands at the baseline for a fully covered schema.

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 pairs a verb ("Returns") with a resource ("request plan") and the underlying HTTP path, so the general intent is discernible. However, "request plan" is vague — it never says whether this is a provisioning/execution plan, what it contains, or how it differs from the very similarly named sibling blueprint_get_blueprint_requests_by_request_id_resources_plan.

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 blueprint_get_blueprint_request, blueprint_get_blueprint_request_execution, or the near-duplicate sibling plan endpoint. The only implicit signal is the GET path, which the agent must interpret unaided.

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

blueprint_get_blueprint_versionC
Read-onlyIdempotent

Returns versioned blueprint details GET /blueprint/api/blueprints/{blueprintId}/versions/{version}

NameRequiredDescriptionDefault
selectNoFields to include in content.
versionYes(path)
blueprintIdYes(path)

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, covering the safety profile. The description adds no behavioral context beyond restating the endpoint, saying nothing about auth needs, error behavior, or payload shape.

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 minimal, with the purpose front-loaded before the endpoint path. There is no wasted prose, though the terseness crosses into under-specification rather than genuine conciseness.

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

Completeness3/5

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

For a simple read-only GET with full schema coverage and rich annotations, the core is present. However, against a dense sibling set of blueprint retrieval tools, it omits any disambiguation or return-shape hint that would make selection confident.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 documents all three parameters including the 'select' field-inclusion array. The description adds no parameter meaning beyond what the schema provides, so the baseline of 3 applies.

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

Purpose4/5

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

The description names a specific verb (Returns) and resource (versioned blueprint details), and includes the exact REST path. An agent understands what it fetches, though it does not distinguish this from close siblings like blueprint_get_blueprint or blueprint_get_blueprint_version_inputs_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?

There is no guidance on when to use this versus alternatives. It doesn't say when to prefer this over blueprint_list_blueprint_versions (to discover a version) or blueprint_get_blueprint (latest version), so the agent must infer the distinction.

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

blueprint_get_blueprint_version_inputs_schemaB
Read-onlyIdempotent

Returns blueprint version inputs schema GET /blueprint/api/blueprints/{blueprintId}/versions/{version}/inputs-schema

NameRequiredDescriptionDefault
versionYes(path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about
blueprintIdYes(path)

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 fully covered. The description adds only the REST path, giving a small amount of context about the underlying resource hierarchy but nothing about return format 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.

Conciseness4/5

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

Two lines, front-loaded with the purpose followed by the endpoint. Nothing is padded, though the endpoint line largely duplicates information already implied by the title and annotations.

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

Completeness3/5

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

For a simple read-only retrieval with a fully described schema and complete annotations, the description is minimally sufficient. Without an output schema, it could have said more about what the returned inputs schema looks like or how it relates to the blueprint-level variant, but nothing critical 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 the schema already documents blueprintId, version and apiVersion. The description's path template reinforces which parameters are path-scoped, but adds no syntax, format or constraint details 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 names a specific verb ('Returns') and resource ('blueprint version inputs schema'), making the operation identifiable. It does not explicitly distinguish itself from the sibling blueprint_get_blueprint_inputs_schema, which differs by being blueprint-level rather than version-scoped.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus the related blueprint_get_blueprint_inputs_schema or blueprint_get_blueprint_version. The agent must infer the version-scoped use case from the endpoint path alone.

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

blueprint_get_configuration_source_treeB
Read-onlyIdempotent

Shows directories of the configuration source repository that correspond to Terraform configurations. GET /blueprint/api/blueprint-integrations/terraform/get-configuration-source-tree

NameRequiredDescriptionDefault
pathNoA file path prefix. The prefix is interpreted in the context of the configuration source's path prefix. Results will only include directories under this path.
commitIdNoThe commit ID corresponding to the version of the configuration source.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about
configurationSourceIdYesThe ID of the configuration source to inspect.

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, so the safety profile is fully covered. The description adds the useful behavioral detail that only directories (not files) are returned. It does not mention result size limits, pagination, or behavior when the path prefix matches nothing.

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 one-sentence purpose followed by the raw REST endpoint, which is conventional but adds nothing an agent can act on. No wasted prose in the functional 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 read-only directory-listing tool with a fully described 4-parameter schema and no output schema, the description conveys enough: it implies the return value is a set of directory paths under the given prefix. Missing only the linkage to sibling source/commit tools that would help an agent assemble the correct call sequence.

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

Parameters3/5

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

Schema description coverage is 100%, including the non-obvious detail that `path` is interpreted relative to the configuration source's own path prefix, so the schema carries the parameter burden. The description adds no parameter-level meaning beyond what is already documented. 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 ("Shows directories") and resource ("configuration source repository") with the key qualifier that results correspond to Terraform configurations. An agent can tell this returns directories rather than files or commits. It does not, however, distinguish itself from siblings such as blueprint_get_terraform_configuration_sources or blueprint_get_terraform_configuration_source_commit_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 says what the tool returns but never when to call it versus the sibling configuration-source tools (source list, commit list) or how it fits into a workflow. There are no prerequisites, no exclusions, and no alternatives named; the only guidance is implicit in the noun "tree".

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

blueprint_get_property_groupB
Read-onlyIdempotent

Returns property group details GET /properties/api/property-groups/{propertyGroupId}

NameRequiredDescriptionDefault
selectNoFields to include in content.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about
propertyGroupIdYes(path)

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 by structured data. The description adds only the underlying HTTP route, which is mild context, and says nothing about error behavior when the ID does not exist or about what the returned details contain.

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 resource, with zero filler. The second line is a raw route string rather than prose, which is terse but useful for agents that reason over endpoints.

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-by-id tool with full schema coverage and complete annotations, the definition is sufficient to invoke correctly. However, with no output schema, the description never indicates what the returned property group details include, leaving that entirely to discovery.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 already documented, including the field-selection array and the apiVersion date format. The description adds no additional meaning about `select` semantics or version fallback behavior, 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 ("Returns property group details") plus the exact endpoint, so the agent knows this fetches a single property group by ID. It does not explicitly distinguish itself from blueprint_list_property_groups or blueprint_get_resource_type, but the singular resource and required ID make 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 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 blueprint_list_property_groups (enumerate then fetch) or blueprint_update_property_group/blueprint_delete_property_group. The only implied condition is the presence of a required propertyGroupId parameter, which is inference rather than stated guidance.

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

blueprint_get_resource_typeB
Read-onlyIdempotent

Returns resource type details GET /blueprint/api/resource-types/{resourceTypeId}

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about
resourceTypeIdYes(path)

TDQS

B3.4/5.0
Behavior3/5

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

The annotations already provide strong behavioral hints (readOnlyHint, destructiveHint: false). The description adds the API endpoint structure, which confirms its read-only nature but adds little functional behavioral context beyond what the surrounding structured data implies.

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

Conciseness5/5

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

The description is concise and front-loaded, immediately stating the purpose and providing the full API path in a single, efficient 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 read operation, the description is complete enough to allow the agent to correctly identify and invoke the tool based on the required resource type ID.

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

Parameters3/5

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

Since the schema coverage is 100%, the schema fully documents the required parameters. The description merely repeats the endpoint path, adding no semantic meaning or value beyond the structured data already present.

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

Purpose4/5

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

The description clearly states the tool 'Returns resource type details.' While the name is descriptive, it does not explicitly distinguish this function from similar 'get_resource_type' functions found in sibling tools (e.g., catalog_get_type_by_id or form_get_resource_type).

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

Usage Guidelines2/5

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

There is no guidance provided on when to use this tool versus similar lookup functions within the broader suite. It offers no exclusion criteria or context for its specific application.

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

blueprint_get_terraform_configuration_source_commit_listB
Read-onlyIdempotent

Returns a paginated list of commits for a specified configuration source. GET /blueprint/api/blueprint-integrations/terraform/get-configuration-source-commits

NameRequiredDescriptionDefault
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about
configurationSourceIdYesA Configuration Source ID.

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 non-destructive behavior, so safety is covered. The description adds that results are paginated, which is genuinely useful context for the caller, but says nothing about what a commit record contains, ordering beyond the schema default, or any rate/permission constraints.

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

Conciseness4/5

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

One front-loaded sentence carries the substance; the trailing GET path duplicates what the annotation title already contains and adds little for an agent. Still tight and free of filler.

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

Completeness3/5

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

There is no output schema, so the description carries the burden of describing return values, and 'paginated list of commits' leaves the shape of a commit undefined. For a read-only listing operation with fully described parameters and rich annotations, this is adequate but 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 description coverage is 100%, so paging, sorting, apiVersion, and configurationSourceId are all documented in the schema. The description only restates the required configurationSourceId implicitly and adds no format or sourcing hint 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.

Purpose4/5

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

States a specific verb and resource: it returns a paginated list of commits for a specified configuration source, which is unambiguous against sibling list tools like blueprint_get_terraform_configuration_sources (sources, not commits) or blueprint_get_configuration_source_tree. It does not explicitly name a sibling to disambiguate against, which keeps it out of the 5 band.

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 never says when to reach for this tool versus the configuration-sources or configuration-source-tree siblings, nor where a usable configurationSourceId comes from. The only implied guidance is that you must already have a source ID, which an agent must infer.

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

blueprint_get_terraform_configuration_sourcesB
Read-onlyIdempotent

Returns a paginated list of configuration sources configured as storage for Terraform configurations. GET /blueprint/api/blueprint-integrations/terraform/get-configuration-sources

NameRequiredDescriptionDefault
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
searchNoA search parameter to search based on configuration source name or repository.
projectsYesA comma-separated list of project IDs. Results will be filtered so only configuration sources accessible from one or more of these projects will be returned.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds that results are paginated, which is useful, but says nothing about result visibility being project-scoped beyond what the schema states, nor about ordering effects of the anonymous apiVersion parameter.

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 purpose front-loaded and no filler. The trailing raw HTTP path is marginally useful for API mapping and 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?

With no output schema, the description should indicate what a returned configuration source contains or at least the pagination envelope; it only says 'paginated list'. Combined with fully documented parameters and read-only annotations, it is adequate but leaves the return shape underspecified.

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

Parameters3/5

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

Schema coverage is 100%: paging, sort, search, projects, and apiVersion are all documented in the schema, including the required projects filter. The description adds no parameter 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?

States a specific verb and resource: returns a paginated list of configuration sources that serve as Terraform configuration storage. That is clear enough to distinguish it from most siblings, but it does not name the closely related blueprint_get_configuration_source_tree or blueprint_get_terraform_configuration_source_commit_list, which an agent must choose among.

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 exclusions, and no indication of how to obtain the required projects IDs or why filtering is mandatory. An agent is left to infer that this is the enumeration step before fetching a tree or commit list.

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

blueprint_get_terraform_versionC
Read-onlyIdempotent

Returns Terraform Version details GET /blueprint/api/blueprint-integrations/terraform/versions/{versionId}

NameRequiredDescriptionDefault
versionIdYes(path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about

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. The description adds nothing beyond restating the endpoint path — no note on what is returned, error behavior for a missing versionId, or any auth/scope 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 fragments, front-loaded with the purpose. The REST path line is largely redundant with the annotation title, but the overall entry is tight and wastes 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 read-only getter with full schema coverage and complete annotations, this is minimally sufficient. However, with no output schema, the description could say what a Terraform version record contains or how it relates to blueprint versions, which 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 both versionId (uuid path param) and apiVersion are already documented in the schema. The description mentions the versionId path segment but adds no format, sourcing, or versioning guidance beyond it, 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 ('Returns') and resource ('Terraform Version details'), which distinguishes it from blueprint_list_terraform_versions, blueprint_create_terraform_version, and blueprint_delete_terraform_version. It does not explicitly name those siblings, but the singular retrieval 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 statement of when to use this tool versus the list/create/update/delete Terraform version siblings, nor any prerequisite or context. Only the tool name and REST path imply it is a single-resource fetch.

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

blueprint_list_blueprint_requestsC
Read-onlyIdempotent

Lists blueprint requests GET /blueprint/api/blueprint-requests

NameRequiredDescriptionDefault
topNoNumber of records you want
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
selectNoFields to include in content.
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is descending on updatedAt. Sorting is supported on fields createdAt, updatedAt, createdBy, updatedBy.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about
includePlanNoPlan Requests filter
deploymentIdNoDeployment Id filter

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=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so safety is covered. Beyond that, the description adds nothing — not pagination behavior, default sort (updatedAt DESC), result size defaults, nor what a "blueprint request" represents. The only extra content is the raw endpoint path, which discloses no 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 two short lines with the purpose front-loaded, so there is no bloat. The second line is a raw HTTP path that adds little value for an agent already given the annotations title, but it is harmless rather than wasteful.

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 ten optional filter/pagination parameters, no output schema, and a domain concept (blueprint requests, i.e., deployment requests generated from blueprints) that is not explained, the description is too thin. It should say what a blueprint request is, what the default ordering returns, and how includePlan/deploymentId narrow results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 ten parameters (top, page, size, skip, sort, select, orderby, apiVersion, includePlan, deploymentId) are documented in the schema, setting the baseline at 3. The description compensates with nothing — it does not clarify the overlap between top/skip and page/size or the two competing sort parameters (sort vs. orderby).

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 ("Lists blueprint requests") and the HTTP path reinforces the resource identity. It is clear what the tool does, but there is no differentiation from the many sibling blueprint read tools such as blueprint_get_blueprint_request, blueprint_list_blueprints, and blueprint_get_blueprint_requests_by_request_id_resources_plan.

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 named alternative for retrieving a single request or listing blueprints instead. The agent must infer from the name alone that this is the bulk-enumeration variant.

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

blueprint_list_blueprintsC
Read-onlyIdempotent

Lists draft blueprint GET /blueprint/api/blueprints

NameRequiredDescriptionDefault
topNoNumber of records you want
nameNoFilter by name
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
searchNoSearch by name and description
selectNoFields to include in content.
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is descending on updatedAt. Sorting is supported on fields createdAt, updatedAt, createdBy, updatedBy, name.
projectsNoA comma-separated list. Results must be associated with one of these project IDs.
releasedNoFilter blueprints with at least one released version
versionedNoFilter blueprints with at least one version
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about
propertyGroupsNoFilter blueprints with any of the specified property groups

TDQS

C2.8/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 open-world, so the safety profile is covered. The description adds nothing beyond the raw endpoint path — no pagination behavior, no note about default page size of 20 or total counts, and no explanation of what a returned blueprint record 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 very short and front-loads the verb, but the second line ("GET /blueprint/api/blueprints") merely repeats the endpoint already present in the annotations title, so it does not earn its place. The terseness 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?

With 14 optional filter parameters, no output schema, and no explanation of pagination or what the listing returns by default, the description is too thin. A one-line label plus a REST path leaves the agent without the context needed to use the filter set 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%, so every one of the 14 parameters is documented in the schema; that sets the baseline at 3. The description adds no additional meaning or examples beyond what the schema 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 gives a specific verb and resource ("Lists ... blueprint"), so an agent can tell it is the collection/list operation. It does not distinguish itself from siblings such as blueprint_get_blueprint or blueprint_list_blueprint_versions, and the "draft" qualifier is ambiguous since the tool actually lists all blueprints (with optional filters for released/versioned).

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 blueprint_get_blueprint (single fetch) or the other blueprint list tools, and no prerequisites or exclusions. The agent must infer 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.

blueprint_list_blueprint_versionsC
Read-onlyIdempotent

Lists blueprint versions GET /blueprint/api/blueprints/{blueprintId}/versions

NameRequiredDescriptionDefault
topNoNumber of records you want
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
selectNoFields to include in content.
statusNoFilter by blueprint status: versioned / released
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is descending on updatedAt. Sorting is supported on fields createdAt, updatedAt, createdBy, updatedBy, name, version.
versionNoFilter by version
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about
blueprintIdYes(path)
propertyGroupsNoFilter versions with any of the specified property groups

TDQS

C2.8/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 safety is covered. The description adds nothing beyond restating the endpoint URL, which duplicates the annotation title, and says nothing about pagination defaults, result ordering, or empty results for a 12-parameter listing 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?

Very short and front-loaded, which is good, but the second line is redundant with the annotation title and carries no information the agent cannot already see. It is terse without being efficiently informative.

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

Completeness2/5

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

For a 12-parameter paginated listing tool with no output schema, the description says nothing about the shape of the returned list, pagination conventions (skip/page/size interplay), or default sort behavior. The schema covers parameter names, but the description leaves the operation's result semantics entirely 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%, including the enum for status and the documented ordering fields, so the weighted baseline of 3 applies. The description contributes no additional meaning about how pagination, sort, or version filters interact.

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 ('Lists blueprint versions') and gives the backing REST endpoint, so the agent knows exactly what it returns. It does not differentiate from the sibling blueprint_get_blueprint_version, relying on the list/get naming distinction alone.

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

Usage Guidelines2/5

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

No statement of when to use this instead of blueprint_get_blueprint_version or blueprint_list_blueprints, and no prerequisites or exclusions. The only hint is the raw endpoint path, which implies a collection read but does not guide selection.

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

blueprint_list_property_groupsC
Read-onlyIdempotent

Lists Property Groups GET /properties/api/property-groups

NameRequiredDescriptionDefault
topNoNumber of records you want
nameNoFilter by name
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
typeNoFilter by type
searchNoSearch by name and description
selectNoFields to include.
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is descending on updatedAt. Sorting is supported on fields createdAt, updatedAt, createdBy, updatedBy, name, type.
projectsNoA comma-separated list. Results must be associated with one of these project IDs.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about

TDQS

C2.8/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 the endpoint path: no note on pagination defaults, large result sets, or how 'top'/'skip' interact with 'page'/'size'.

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 second line mostly restates the endpoint already present in the annotation title, so space is not used to add meaning. Efficient but under-informative.

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

Completeness2/5

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

A 12-parameter listing tool with no output schema should at least describe result shape or pagination semantics. Given the schema richness (which prevents the score from being lower), the description is still noticeably thin and leaves behavior and usage context for a complex listing operation 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 12 parameters are already documented in the schema; baseline 3 applies. The description adds no clarification about conflicting pagination or sort options, but that is not required when the schema is complete.

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?

'Lists Property Groups' states a specific verb and resource, clearly distinguishing a collection listing from sibling tools like blueprint_get_property_group, blueprint_create_property_group, and blueprint_delete_property_group. The GET path adds a little extra confirmation of read scope, but sibling differentiation is only implicit through the verb 'Lists'.

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 getting a single property group or how to use filtering for a narrowed result. The agent must infer usage 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.

blueprint_list_resource_typesC
Read-onlyIdempotent

Lists resource types GET /blueprint/api/resource-types

NameRequiredDescriptionDefault
topNoNumber of records you want
nameNoFilter by name
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
expandNoExpand with content
searchNoSearch by name and description
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is ascending on name. Sorting is supported on fields createdAt, updatedAt, createdBy, updatedBy, name.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about
providerIdNoFilter by provider ID

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, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description contributes nothing beyond that, not even that the result set is paginated and defaults to size 20 with a name ascending sort — meaningful behavior the agent must know.

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 lines, no padding, but the second line is just a redundant HTTP path that the annotation title already repeats. It is short without being informative — the brevity 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?

For an 11-parameter, open-world listing endpoint with no output schema, the description should at least say what a blueprint resource type is and what the list returns. Nothing beyond the tool name is communicated, so an agent must infer the entire contract from 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% across all 11 parameters, so defaults for page/size/sort/expand and the filter semantics of name, search, providerId and apiVersion are already documented in the schema. The description adds no parameter meaning, but the baseline of 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.

Purpose3/5

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

States a specific verb and resource ("Lists resource types"), which is clear on its own, but adds no differentiation from the many sibling list/get tools touching the same domain, including blueprint_get_resource_type, form_list_resource_types and deployment_list_resource_types. An agent cannot tell from the description which of these returns the same 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 guidance on when to use this versus blueprint_get_resource_type (single-item fetch) or the duplicate list endpoints under the form and deployment APIs. The description merely restates the endpoint path, leaving routing entirely to the agent's guesswork.

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

blueprint_list_terraform_versionsC
Read-onlyIdempotent

Lists terraform versions GET /blueprint/api/blueprint-integrations/terraform/versions

NameRequiredDescriptionDefault
topNoNumber of records you want
skipNoNumber of records you want to skip
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is descending on updatedAt. Sorting is supported on fields createdAt, updatedAt, createdBy, updatedBy, version.
pageableYes
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about
onlyEnabledNoInclude only enabled versions

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, destructiveHint=false and openWorldHint, so the safety profile is fully covered elsewhere. The description adds nothing behavioral beyond the raw path — no mention of pagination behavior despite top/skip/pageable parameters, no note on what a version record contains, and no default-page-size 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 with the purpose front-loaded and no filler prose. The second line duplicates the endpoint string already present in the annotation title, which is mild redundancy 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?

For a read-only list tool with a well-described schema and annotations covering safety, the definition is minimally viable. It omits any hint of return shape or pagination envelope, which matters since there is no output schema, but nothing critical to correct invocation 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 83%, so the schema already documents top, skip, orderby, apiVersion and onlyEnabled. The description contributes no additional parameter meaning (e.g. valid orderby fields or interaction between top/skip and pageable), 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 ('Lists terraform versions'), which is clear on its own. However, it never distinguishes itself from sibling blueprint_get_terraform_version (single fetch) or blueprint_create/update/delete_terraform_version, so an agent must infer the list-vs-get boundary 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 guidance on when to call this versus the singular blueprint_get_terraform_version, nor any stated preconditions. The only 'usage' signal is the embedded REST path, which describes the endpoint rather than when an agent should choose this tool.

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

blueprint_release_blueprint_versionC

Release versioned blueprint to catalog POST /blueprint/api/blueprints/{blueprintId}/versions/{version}/actions/release

NameRequiredDescriptionDefault
versionYes(path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about
blueprintIdYes(path)

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare the safety profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=true), so the description's main job is to add operational context. It adds almost none: no information about what 'release' does to version state, whether it is reversible, or what permissions are required, beyond restating the name and HTTP 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?

Two short lines with the action front-loaded and the endpoint path following it; there is no filler. The extreme terseness is efficient, though it borders on under-specification rather than being wasteful.

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 lifecycle operation with no output schema and only generic annotations, the description should explain the effect of releasing a version (e.g., making it available in the catalog) and any preconditions. It instead provides only the name restated plus the raw HTTP path, leaving the agent to infer the operational meaning.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 three parameters, which sets the baseline at 3. The description only echoes the path template for blueprintId and version and adds no semantics about valid values or lifecycle constraints for the version argument.

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 ('Release versioned blueprint to catalog') and includes the HTTP path, so the agent can distinguish it from lifecycle siblings like blueprint_un_release_blueprint_version. It stops short of explicitly differentiating itself from those siblings, which keeps it out of the top band.

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, prerequisites, or comparison to alternatives. It does not mention that release is the inverse of blueprint_un_release_blueprint_version or that the version must exist first, so the agent must infer all of that 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.

blueprint_restore_blueprint_versionB

Restores content of draft from versioned blueprint POST /blueprint/api/blueprints/{blueprintId}/versions/{version}/actions/restore

NameRequiredDescriptionDefault
versionYes(path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about
blueprintIdYes(path)

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare this is a mutating, non-idempotent, non-destructive, open-world operation. The description adds that the target is the draft and the source is a versioned blueprint, but it does not state whether the current draft is overwritten, whether the version must be released, or what permissions or side effects are involved.

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 before listing the endpoint. The endpoint line is somewhat redundant with the annotations title, but it still helps map the tool to the API path without adding excessive 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 three-parameter mutation tool with annotations and no output schema, this is minimally adequate. However, it omits important restore semantics such as whether existing draft content is replaced, whether the operation can be undone, and any prerequisites for the specified version.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 carries parameter documentation. The endpoint line reinforces that blueprintId and version are path parameters, but the description adds no format, constraint, or validation details 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 target: restoring draft content from a versioned blueprint. It clearly identifies the operation and its source/target, though it does not compare against sibling tools such as blueprint_get_blueprint_version or blueprint_list_blueprint_versions.

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 that this is the restore operation for a blueprint version, but it provides no explicit when-to-use guidance, no exclusions, and no alternatives. An agent must infer when restoring is preferable to fetching or creating a version.

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

blueprint_un_release_blueprint_versionC

UnRelease versioned blueprint from catalog POST /blueprint/api/blueprints/{blueprintId}/versions/{version}/actions/unrelease

NameRequiredDescriptionDefault
versionYes(path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about
blueprintIdYes(path)

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, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond restating the HTTP path — it does not say what 'unrelease' actually does to catalog availability, whether running deployments are affected, or whether authorization beyond normal is needed.

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

Conciseness4/5

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

Two short, front-loaded lines with the action stated first. The raw POST path duplicates the annotation title, so it is slightly redundant, but nothing is bloated.

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 catalog operation with no output schema, the description omits the important consequences: what happens to catalog items or deployments referencing that version, and whether the operation is reversible. An agent can guess the intent but not the impact.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 blueprintId and version are already documented. The description only echoes the path template and adds no meaning about format, required state, or what apiVersion changes. 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.

Purpose4/5

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

The description gives a specific verb+resource pair: 'UnRelease versioned blueprint from catalog', which is clearly distinct from the sibling blueprint_release_blueprint_version and blueprint_restore_blueprint_version. It stops short of explicitly naming those siblings or explaining the difference between unrelease and restore.

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 unrelease over release/restore/delete, and no prerequisites are stated (e.g., that the version must currently be released). The usage has to be inferred entirely from the verb.

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

blueprint_update_blueprintC
Idempotent

Updates a blueprint PUT /blueprint/api/blueprints/{blueprintId}

NameRequiredDescriptionDefault
bodyYesBlueprint object
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about
blueprintIdYes(path)

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already declare idempotentHint=true, destructiveHint=false, openWorldHint=true, so the safety profile is covered. The description's only contribution is the PUT endpoint string, which duplicates the annotation title. It omits the important behavioral question for a PUT: whether omitted body fields are cleared/overwritten, and whether a new blueprint version is created.

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 lines with no filler, so it is concise, but the brevity comes at the cost of substance — the second line is a raw endpoint rather than usable context. Front-loading is acceptable but the content earns little.

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 body object and no output schema. The description doesn't cover replace-vs-merge semantics, existence requirements, or versioning side effects. Annotations cover safety but not the operational behavior an agent needs to call a PUT update 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 the schema already documents blueprintId, body fields, and apiVersion. The description adds no parameter guidance — no indication of which body fields are required on update, or how to treat partial payloads. Baseline 3 applies when the schema carries the parameter 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 description says 'Updates a blueprint', which restates the tool name rather than clarifying scope, and adds only the raw HTTP path. It doesn't distinguish this full PUT replacement from siblings like blueprint_create_blueprint_version, blueprint_update_property_group, or onboarding_patch_blueprint_by_id. The verb+resource is identifiable, but the statement adds no meaning beyond 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?

There is no guidance on when to use this versus patching, creating a version, or calling onboarding_patch_blueprint_by_id. No prerequisites (e.g., the blueprint must already exist) or exclusions are stated. The agent must infer usage 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.

blueprint_update_property_groupC
Idempotent

Updates a property group PUT /properties/api/property-groups/{propertyGroupId}

NameRequiredDescriptionDefault
bodyYesRequest body
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about
propertyGroupIdYes(path)

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. The description adds no behavioral context beyond restating the PUT endpoint, and does not clarify replacement semantics, mutation scope, required body behavior, or authorization needs.

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 line restates the HTTP method and path already present in the annotations title. It is concise, yet too terse for a mutation with a complex nested body, and one of its two lines is largely redundant.

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

Completeness2/5

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

Given the nested request body, mutation behavior, and lack of an output schema, the description is not complete enough. The schema and annotations carry most of the burden, but the description says nothing about replacement semantics, body requirements, or side effects that an agent would need for a complex PUT 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 the three parameters and the nested body structure in detail. The description adds no parameter meaning beyond the schema, which is the baseline expectation when schema coverage is high.

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: 'Updates a property group.' This is clear enough to distinguish it from sibling property-group tools such as create, delete, get, and list. It does not explicitly explain how it differs from broader blueprint update tools, 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 guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. 'Updates a property group' only implies the obvious use case and leaves all routing 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.

blueprint_update_terraform_versionC

Updates a terraform version PATCH /blueprint/api/blueprint-integrations/terraform/versions/{versionId}

NameRequiredDescriptionDefault
bodyYesTerraform version object
versionIdYes(path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about

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. The description adds nothing beyond restating the HTTP method and path (which the annotation title already contains) — notably it omits whether the body is a partial merge or full replacement, which matters for a PATCH endpoint declared 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.

Conciseness3/5

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

The single-sentence purpose is front-loaded and efficient, but the second line duplicates the endpoint already present in the annotation title, so it does not earn its place. Net result is short but partly redundant.

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 with a nested body object, no output schema, and 100% schema coverage — yet the description leaves open substantive questions: whether the update is partial or full, what happens to omitted fields, and what the response contains. For a non-idempotent PATCH on infrastructure configuration, more context is warranted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 top-level fields and every nested body property are documented in the schema itself. The description adds no meaning beyond that, 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?

The description gives a clear verb+resource ('Updates a terraform version'), so an agent knows exactly what entity is being mutated. It does not, however, distinguish this from sibling operations such as blueprint_create_terraform_version, blueprint_get_terraform_version, or blueprint_delete_terraform_version — the agent must infer the distinction from the tool name alone.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus alternatives, no prerequisite (e.g. does the version need to exist / be disabled first?), and no mention of the create/get/delete siblings. The only implicit guidance is the word 'Updates' plus the PATCH path.

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

blueprint_validate_blueprintC

Validates a blueprint POST /blueprint/api/blueprint-validation

NameRequiredDescriptionDefault
bodyYesRequest body
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information please refer to /blueprint/api/about

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already state readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is partly covered. The description adds nothing about what validation actually does behaviorally—whether it persists anything, whether it is a dry-run, what happens on failure, or what the response contains—beyond restating 'validates' and the POST 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?

It is short and front-loaded with the verb, with no filler sentences. But for a nested-body validation endpoint the brevity crosses into under-specification rather than efficient conciseness.

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

Completeness2/5

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

The tool takes a nested request body with multiple optional identifiers, has no output schema, and the description says nothing about the return value, error behavior, or which body fields are needed for which validation mode. Given the complexity of the schema, the description is not complete enough to guide 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%, with documented fields for content, blueprintId, blueprintVersion, projectId, inputs and apiVersion, so the schema carries the parameter burden. The description adds no semantics about how these fields interact (e.g., inline content vs. existing blueprintId), which is a gap but the baseline is 3 when schema coverage is high.

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 ('Validates a blueprint'), so the basic operation is unambiguous. It does not, however, distinguish this tool from the many sibling blueprint_* tools such as blueprint_get_blueprint_inputs_schema or blueprint_create_blueprint_request, which an agent could plausibly confuse with validation.

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 validate versus when to create or retrieve a blueprint, no prerequisites, and no mention of alternatives. The only content beyond the title is the raw endpoint path, which is not usage guidance.

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

catalog_change_metering_assignment_strategyB

Updates the pricing card assignment strategy for the Org. PATCH /price/api/private/pricing-card-assignments/strategy

NameRequiredDescriptionDefault
bodyYesPricing card assignment strategy with 'EntityType' to override the strategy for the org

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare non-readOnly, non-idempotent, non-destructive, open-world, so the safety profile is covered. The description adds the org-wide scope ('for the Org') which is genuinely useful, but says nothing about what happens to existing per-entity assignments, reversibility, or permissions required for a private admin 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?

Two short lines with the verb-led purpose front-loaded; nothing is padded. The raw PATCH path is marginally useful for tracing the endpoint but is thin filler compared to what an agent actually needs.

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 one-parameter mutation with full schema coverage and annotations does not need much, but for a private org-level strategy override the description should note the effect of choosing ALL vs PROJECT vs CLOUDZONE and whether the change is global. Those omissions leave it only adequate.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already documents the single 'body' object and the entityType enum (ALL/PROJECT/CLOUDZONE), so the description need not repeat it. It adds no syntax, default, or semantics 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 ('Updates') and resource ('pricing card assignment strategy') scoped to the Org, which is clearer than the name alone. However it does not disambiguate from the sibling pair catalog_create_metering_assignment_strategy and catalog_get_metering_assignment_strategy, so an agent could confuse 'update' with 'create' on a similar-looking metering-strategy resource.

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 this should be chosen over the create or get variants, nor any prerequisite (e.g. that a strategy must already exist to patch). The only context is the raw PATCH path, which implicitly says 'mutate existing' but requires inference.

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

catalog_create_metering_assignment_strategyC

Selecting the new pricing card assignment strategy,PROJECT or CLOUDZONE are possible values can be used while creating strategy. Also there can be only one strategy for a given org at a given point o… Create a new pricing card assignment strategy based on request body and validate its field according to business rules. POST /price/api/private/pricing-card-assignments/strategy

NameRequiredDescriptionDefault
bodyYesPricing card assignment strategy with 'EntityType' to override the strategy for the org

TDQS

C2.8/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 mutation profile is covered. The description adds that fields are validated against business rules (implying request rejection on invalid input) and the one-per-org uniqueness constraint, which is useful non-obvious behavior for a non-idempotent create – but says nothing about failure modes, permissions, or the truncation-hidden content.

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 opens with a malformed, ellipsis-truncated sentence before the useful sentence, and then repeats the tool's own name inside the description plus a raw endpoint path that the annotations title already carries. Front-loading is poor: the load-bearing statement arrives second.

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 create that validates business rules on a nested body, the description is truncated and leaves key questions open – what validation rules apply, what happens on conflict with an existing strategy, and what the response returns (no output schema exists). The visible text signals the gaps rather than filling 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% with a single nested body param, so the baseline is 3. The description restates two of the three allowed entityType values (PROJECT, CLOUDZONE) and omits ALL, so it does not add meaning beyond the schema and is even slightly incomplete relative to the enum.

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 second sentence names a concrete verb and resource ("Create a new pricing card assignment strategy") and adds the REST endpoint, so the intent is recoverable. However, the opening sentence is garbled and mid-sentence truncated, and it never contrasts with close siblings such as catalog_get_metering_assignment_strategy or catalog_change_metering_assignment_strategy, leaving the agent to infer that this is strictly a POST-create.

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

Usage Guidelines3/5

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

The "only one strategy for a given org at a given point of time" rule is a real precondition that tells an agent an existing strategy must be changed rather than created again. But it is phrased as a business fact, not as explicit when-to-use/when-to-use-instead guidance, and no alternative tool is named.

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

catalog_create_metering_policy_assignmentC

Create a new pricing card assignment Create a new pricing card policy assignment based on request body and validate its field according to business rules. Request body with ALL entityType will delete the older assignments for the given pricingCardId POST /price/api/private/pricing-card-assignments

NameRequiredDescriptionDefault
bodyYesA pricing card assignment with pricing card Id to override existing pricing card Id

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare a non-readonly, non-idempotent write, so the description is not the sole source of the safety profile. It does add real behavioral context the annotations lack: that a body with entityType=ALL deletes older assignments for the given pricingCardId, and that fields are validated against business rules. However, it never explains those business rules or the response, and the 'deletes older assignments' side effect sits uneasily with destructiveHint=false without being acknowledged.

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 duplicates the tool title, the second restates the same create action at greater length, and the endpoint path is tacked on at the end. 'Validate its field according to business rules' is vague filler that consumes space without telling the agent anything actionable.

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-parameter, fully documented create endpoint with no output schema, the description covers the write action and the key replace-on-ALL side effect. It still leaves open what is returned and how the tool relates to the metering-policy naming, which matters for an agent deciding between the several assignment-related siblings.

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 semantics the schema lacks: the body must carry ALL fields, and entityType=ALL specifically means prior assignments for that pricingCardId are removed. The enum's own schema description ('Pricing card assigned entity type') does not convey that replace behavior, so this is genuine added meaning.

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 does state a create action on a concrete resource (pricing card assignment) and even names the endpoint, so the operation is identifiable. But the tool is named catalog_create_metering_policy_assignment while the text talks only about 'pricing card assignments', leaving the metering-policy relationship unexplained, and it never distinguishes itself from siblings such as catalog_create_metering_assignment_strategy or catalog_patch_metering_policy_assignment.

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

Usage Guidelines2/5

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

There is no statement of when to use this versus the existing create/patch/delete assignment siblings, nor of prerequisites or permissions. The only guidance-like content is a behavioral rule about entityType=ALL replacing older assignments, which is a side effect rather than usage guidance.

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

catalog_create_or_updateC

Creates or updates a notification scenario branding of an organization POST /notification/api/scenario-branding

NameRequiredDescriptionDefault
bodyYesThe notification scenario branding to be created or updated

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, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that: it does not say whether an existing branding is fully overwritten, what permissions are needed, which organization is targeted, or what the response contains. Note the mild tension between the 'creates or updates' upsert framing and idempotentHint=false, but this is not 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.

Conciseness4/5

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

Two short lines with the action front-loaded. The trailing 'POST /notification/api/scenario-branding' restates what the annotation title already carries, so it is mild redundancy rather than value.

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

Completeness3/5

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

For a single-body-parameter tool with a fully described schema this is nearly sufficient, but the description says the branding belongs to 'an organization' without indicating how that organization is identified (presumably from the authenticated session) and gives no hint about the returned payload since there is no output schema.

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

Parameters3/5

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

Schema coverage is 100%: footer and header are documented in the schema and the body wrapper is described. The description adds no meaning beyond the schema (e.g. format, length limits, or the effect of the undocumented 'customized' flag), 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 pair and resource: it creates or updates the notification scenario branding of an organization, and the upsert semantic is explicit. It does not name the closely related siblings (catalog_delete_scenario_branding, catalog_get_scenario, catalog_preview_notification_config), so the agent must infer the boundary from the resource 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 guidance on when to call this versus catalog_delete_scenario_branding or catalog_preview_notification_config, no statement of prerequisites, and no explanation of how the create-vs-update branch is selected (existing branding vs. none). The agent is left to infer everything about context of use.

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

catalog_create_policyC

Create a new pricing card Create a new pricing card based on request body and validate its field according to business rules. POST /price/api/private/pricing-cards

NameRequiredDescriptionDefault
bodyYesThe pricing card to be created

TDQS

C2.7/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 one genuinely useful behavioral detail — fields are validated against business rules, implying possible validation failures — but says nothing about what those rules are, what an error looks like, or whether creation requires a specific org 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?

The text is short but the first line ('Create a new pricing card') is immediately restated in the second line, wasting the most prominent position. The raw POST path is useful context, but the opening could have been used to disambiguate pricing cards from policies.

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 deeply nested body schema (metering items, tag-based items, charge models) and no output schema. The description never explains the payload shape, the response, or which nested item collections are mutually exclusive, so an agent has to reverse-engineer intent entirely from the schema — and several nested item properties are empty objects with no typing.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 'body' parameter with 100% schema description coverage and an inline description ('The pricing card to be created'), so the schema does the heavy lifting. The description adds no field-level guidance for the complex nested payload (fixedPrice, chargeModel, the various metering item arrays), which remains the hardest part of invoking this tool correctly.

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 is clear ('Create') and the description names the resource as a 'pricing card', but the tool itself is named catalog_create_policy, so an agent must reconcile two different resource nouns (policy vs. pricing card). The POST path confirms it targets /pricing-cards, but this naming mismatch makes it harder to distinguish from sibling tools like catalog_create_metering_policy_assignment and policy_create_policy.

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

Usage 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 sibling creation tools (catalog_post, catalog_create_or_update, catalog_create_metering_policy_assignment), nor any prerequisites such as required org scope or permissions. The only selection hint is the implicit 'new' in 'Create a new pricing card', which the agent must infer.

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

catalog_delete_admin_sources_by_source_idC
DestructiveIdempotent

Delete catalog source. Deletes the catalog source with the supplied ID. DELETE /catalog/api/admin/sources/{sourceId}

NameRequiredDescriptionDefault
sourceIdYesCatalog source ID (path)

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 and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that – no mention of irreversibility, cascading effects on catalog items sourced from this source, or required privileges – so beyond the structured fields its contribution is essentially zero.

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 first two sentences say the same thing and the third repeats the route already present in the title annotation. Nothing is front-loaded with information value; it is under-specified rather than truly concise.

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

Completeness2/5

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

For a destructive admin delete with no output schema, the description should say what is destroyed (just the source record, or its synced content/policies) and whether the action can be undone. None of that is present, leaving a meaningful gap even though annotations flag destructiveness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 single sourceId parameter is fully documented as a UUID path parameter, so the schema does the work. The description only says 'with the supplied ID', adding no format or sourcing hints 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 clear verb (delete) and resource (catalog source) plus the HTTP route, which disambiguates an otherwise opaque tool name. It does not differentiate from the closest sibling catalog_get_admin_sources_by_source_id or from other catalog delete tools such as catalog_delete_icons_by_id.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus the matching get tool, no prerequisites (admin rights implied only by the tool name), and no warning about consequences. The agent must infer everything from the word 'Delete'.

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

catalog_delete_icons_by_idC
DestructiveIdempotent

Delete an icon Delete an existing icon by its unique id. DELETE /icon/api/icons/{id}

NameRequiredDescriptionDefault
idYesIcon id (path)

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 description's restatement of 'delete' adds nothing beyond structured data. It omits genuinely useful behavior: whether deletion is permanent, what happens to icons still referenced by catalog items, and whether a 404 is returned for unknown ids.

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?

Three short lines, but the first two sentences say the same thing twice ('Delete an icon' / 'Delete an existing icon by its unique id'), and the raw HTTP route restates the tool name. Front-loaded but padded with 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 single-parameter delete with full annotation coverage and no output schema, the description is minimally sufficient. It is still incomplete on the consequences of a destructive operation — irreversibility and handling of in-use icons — which is exactly what the description should supply when annotations only flag destructiveness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 single 'id' parameter is documented as a UUID path parameter, so the schema does the work. The description's 'by its unique id' merely echoes the schema and adds no format, lookup, or sourcing 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?

The description states a specific verb and resource ('Delete an icon ... by its unique id'), so an agent knows exactly what the tool acts on. It does not differentiate itself from the many other delete tools in the sibling list, but the 'icon' resource is unique enough to avoid ambiguity.

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 prerequisites (e.g. ownership or permission requirements), and no mention of what to do if the icon does not exist. The agent must infer all of this.

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

catalog_delete_metering_policy_assignmentC
DestructiveIdempotent

Delete the pricing card assignment with specified id Deletes the pricing card assignment with the specified id DELETE /price/api/private/pricing-card-assignments/{id}

NameRequiredDescriptionDefault
idYespricing card Assignment Id (path)

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, openWorldHint=true and readOnlyHint=false, so the safety profile is carried structurally. The description adds nothing beyond restating the HTTP DELETE verb — no mention of irreversibility, side effects on related catalog items, or authorization requirements, which is the value it should add for a destructive operation.

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?

Three lines conveying the identical fact — a prose 'Delete the pricing card assignment with specified id', a near-duplicate 'Deletes the pricing card assignment with the specified id', and the raw 'DELETE /price/...' path. Two of the three sentences are pure duplication and the useful routing/impact information is absent.

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-parameter delete with full annotation coverage and full schema coverage, the description is minimally adequate: the agent knows it deletes an assignment by id. It is not complete, though — consequences of removal, permission requirements, and the pricing-card vs metering-policy terminology mismatch are all unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 id parameter is documented as the pricing card assignment id (path), so the schema does the work. The description only says 'with specified id' and contributes no format, sourcing, or lookup guidance beyond that — 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 ('Delete the pricing card assignment') and identifies the target by id, so the action is unmistakable. It loses a point because the tool name says 'metering_policy_assignment' while the description repeatedly says 'pricing card assignment', and it never distinguishes itself from siblings like catalog_patch_metering_policy_assignment or catalog_delete_policy.

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 catalog_patch_metering_policy_assignment or catalog_get_metering_policy_assignment, no prerequisites, and no note about needed permissions or scope. The only usage signal is the implied 'delete = removal', which an agent must infer.

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

catalog_delete_policyC
DestructiveIdempotent

Delete the pricing card with specified Id Deletes the pricing card with the specified id DELETE /price/api/private/pricing-cards/{id}

NameRequiredDescriptionDefault
idYespricing card Id (path)

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, openWorldHint=true, and readOnlyHint=false, covering the safety profile. The description merely repeats the delete action and endpoint, adding no permission requirements, cascade effects, irreversibility details, or post-delete behavior beyond identifying the resource as a pricing card.

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 two near-identical sentences restate the same delete action, and the endpoint duplicates the annotation title. It is 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.

Completeness3/5

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

For a simple one-parameter destructive tool with rich annotations and no output schema, the description is sufficient to invoke the operation. However, it lacks disambiguation from policy-related siblings and does not clarify the relationship between 'policy' in the tool name and 'pricing card' in 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?

There is only one parameter, and schema description coverage is 100% ('pricing card Id (path)'). The description's 'specified Id' matches the schema and adds no format or constraint details, which is acceptable given the schema already 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 ('Delete') and resource ('pricing card') and includes the endpoint, so the action is identifiable. However, it does not distinguish this from catalog/policy siblings, and the name/description mismatch ('policy' vs 'pricing card') may create selection ambiguity.

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 when-to-use guidance, prerequisites, or alternatives. It does not say whether to inspect the policy first, what happens after deletion, or when another catalog/policy tool 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.

catalog_delete_scenario_brandingB
DestructiveIdempotent

Deletes a notification scenario branding DELETE /notification/api/scenario-branding

NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/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 covered. The description adds only the underlying HTTP route (DELETE /notification/api/scenario-branding); it does not say what is actually removed, whether the deletion is recoverable, or what permissions are needed. Critically, with zero parameters it never explains how the target branding is selected (session/tenant scope), which is the key behavioral unknown here.

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 action front-loaded, no filler. The raw HTTP route is of marginal value to an agent but does not bloat the definition.

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 destructive, parameterless deletion the description should at minimum explain what object is targeted and how scope is determined, plus any irreversibility warning. With no output schema and no such detail, an agent cannot confidently predict the effect of calling 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?

The schema declares zero parameters and 100% description coverage, so there is nothing parameter-level for the description to compensate for. The only deduction is that it never clarifies the implicit scoping that makes a parameterless delete meaningful.

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 ('Deletes') and resource ('notification scenario branding'), so the operation is identifiable. It does not differentiate from near-name siblings such as catalog_delete_scenario_configs_by_scenario_id or catalog_delete_icons_by_id, which an agent must disambiguate on its own.

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 related catalog_get_scenario or catalog_preview_notification_config siblings that would let an agent confirm the target first. The agent is left to 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.

catalog_delete_scenario_configs_by_scenario_idB
DestructiveIdempotent

Deletes a notification scenario configuration by scenario id of an organization DELETE /notification/api/scenario-configs/{scenarioId}

NameRequiredDescriptionDefault
scenarioIdYesNotification scenario Id (path)

TDQS

B3.2/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 covered structurally. The description adds the org-scoping context and the REST path but does not disclose what cascading effects deletion has or permission requirements, adding modest value beyond annotations.

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

Conciseness4/5

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

Two short lines with the scoping constraint front-loaded, no filler. The trailing HTTP path duplicates the annotation title, costing a little, but overall it is tight.

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-parameter destructive delete, annotations cover the safety profile and the schema covers the parameter, so no output schema is needed. The description is sufficient for correct invocation, with only cascading-effect/permission context 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% with a single required scenarioId param already documented as the path id. The description restates it as 'by scenario id of an organization' without adding format or validation detail, so baseline 3 applies.

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

Purpose4/5

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

The description states a specific verb ('Deletes') and resource ('notification scenario configuration') scoped 'by scenario id of an organization', which is enough for an agent to distinguish it from siblings like catalog_get_scenario_config or catalog_post_scenario_configs. It stops short of explicitly naming an alternative, but the verb+resource 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 tool versus alternatives or prerequisites (e.g., ownership/permission requirements before deletion). Usage is only implied by the verb 'Deletes', leaving the agent to infer context.

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

catalog_downloadB
Read-onlyIdempotent

Download an icon Download an existing icon by its unique id. GET /icon/api/icons/{id}

NameRequiredDescriptionDefault
idYesIcon id (path)

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, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description only adds the underlying endpoint path, which is already repeated in the annotation title, and says nothing about the returned payload (binary image, base64, or JSON metadata) or error behavior for 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.

Conciseness3/5

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

The opening "Download an icon" is immediately restated by "Download an existing icon by its unique id," and the GET path duplicates the annotation title, so roughly half the text is redundant. It is short, but not every line earns its place.

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

Completeness3/5

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

For a one-parameter read tool with no output schema, the definition covers the call itself adequately. The real gap is that nothing tells the agent what a "download" yields, which is the one thing an agent cannot infer for an icon-fetch 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 coverage is 100% and the single `id` parameter is documented as a UUID path parameter, so the schema does the work. "By its unique id" in the description adds no format or constraint detail beyond what the schema already states; baseline 3 applies for a single well-documented param.

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: "Download an existing icon by its unique id." That distinguishes it from catalog_upload and catalog_delete_icons_by_id. It stops short of naming an alternative explicitly, so it is clear but not sibling-routing.

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 neighbouring catalog tools for fetching or deleting icons. The only implied usage is the self-evident one of retrieving an icon when you have its id.

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

catalog_get_admin_sources_by_source_idB
Read-onlyIdempotent

Fetch a specific catalog source for the given ID. Returns the catalog source with the supplied ID. GET /catalog/api/admin/sources/{sourceId}

NameRequiredDescriptionDefault
sourceIdYesCatalog source ID (path)

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's only added context is the admin REST path (GET /catalog/api/admin/sources/{sourceId}), which hints at an admin-only surface but never states the required authorization or whether missing IDs 404.

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 first two sentences are near-verbatim restatements of each other ('Fetch a specific catalog source for the given ID' / 'Returns the catalog source with the supplied ID'), so one of the three lines is pure 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?

There is no output schema, and the description only says it returns 'the catalog source' without indicating the shape, admin-vs-consumer differences, or error behavior for an unknown ID. For a one-parameter read that is minimally viable, but it leaves the agent guessing about 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% and the single sourceId parameter is documented as a UUID path parameter, so the schema does the heavy lifting. The description adds nothing beyond confirming the ID is used to look up one source; 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 (Fetch) and resource (a catalog source) scoped by ID, which is clear enough to distinguish it from the sibling delete-by-source-id tool. It stops short of naming or contrasting any sibling list/get tool, but the verb+resource pairing 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 only implied by 'for the given ID' — the agent can infer this is a single-item lookup rather than a listing. There is no explicit when-to-use, no mention of prerequisites (admin scope), and no routing to alternatives.

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

catalog_get_all_metering_policy_assignmentsB
Read-onlyIdempotent

Fetch all pricing card assignment for private cloud Returns a paginated list of pricing card assignments GET /price/api/private/pricing-card-assignments

NameRequiredDescriptionDefault
topNoNumber of records you want
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
filterNoA subset of records that satisfy the given predicate expression
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
refreshEntitiesNoSearch by name and description

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, so the safety profile is covered structurally. The description adds genuine value by disclosing that results are paginated, but says nothing about default page size, total counts, or ordering behavior beyond what the schema implies.

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, which is good, but the third line restates the HTTP path already present in the annotations title, and the first two lines are near-duplicates of each other ('Fetch all pricing card assignment' / 'Returns a paginated list'). Mild redundancy rather than every sentence earning its place.

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

Completeness4/5

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

With read-only annotations covering safety and a fully described 8-parameter schema, the description needs only to confirm that this is a paginated collection read, which it does. No output schema exists, so the absence of return-field detail is acceptable, though a note on response shape/total count would have made it complete.

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

Parameters3/5

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

Schema description coverage is 100% across all eight parameters, so the schema carries the full burden of explaining top/page/size/skip/sort/filter/orderby/refreshEntities. The description adds no supplementary semantics (e.g. how 'top' interacts with 'size', or what refreshEntities actually refreshes), 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 ('Fetch all pricing card assignment for private cloud') plus the underlying endpoint, so the agent knows this is a collection-read. However, it never acknowledges the near-identical singular sibling catalog_get_metering_policy_assignment, nor explains why the name says 'metering policy assignments' while the description says 'pricing card assignments'.

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 distinguishes this list operation from catalog_get_metering_policy_assignment (single fetch) or catalog_get_metering_assignment_strategy, and no preconditions (private cloud only, permissions) are stated beyond the phrase 'for private cloud'.

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

catalog_get_all_scenario_configsA
Read-onlyIdempotent

Retrieves all notification scenario configurations of an organization GET /notification/api/scenario-configs

NameRequiredDescriptionDefault
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.

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, and destructiveHint=false, so the safety profile is covered. The description adds only the endpoint and the 'all configurations for an organization' scope; it does not mention pagination behavior or return format.

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

Conciseness4/5

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

The definition is concise and front-loads the core action. The raw endpoint repeats information also present in the annotation title, but it remains compact and readable.

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 three optional pagination parameters and no output schema, the description is largely sufficient. It could better clarify that 'all' is still paginated and that organization scope comes from the authenticated 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 page, size, and sort are already fully documented in the input schema. The description adds no parameter-specific meaning beyond that, which is acceptable at 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: 'Retrieves all notification scenario configurations of an organization.' The plural 'all' helps distinguish it from singular sibling tools like catalog_get_scenario_config, though it does not explicitly name 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?

Usage is implied by 'Retrieves all notification scenario configurations,' but the description gives no explicit when-to-use guidance or comparison to sibling tools such as catalog_get_scenario_config or catalog_get_catalog_items.

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

catalog_get_catalog_itemC
Read-onlyIdempotent

Find a catalog item with specified ID. Returns the catalog item with the specified ID. GET /catalog/api/items/{id}

NameRequiredDescriptionDefault
idYesCatalog item ID (path)
expandNoThe expanded details of the requested comma separated objects.
expandProjectsNoRetrieves the 'projects' field of the catalog item

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, destructiveHint=false, and openWorldHint, so the safety profile is fully covered. The description contributes nothing beyond that, only repeating the GET path, and does not mention whether unpublished/entitled items are visible or what happens for 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.

Conciseness3/5

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

Three short sentences, but the first two are near-identical restatements of each other and the third is just the HTTP route, so there is noticeable redundancy without added 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-by-ID call with annotations and a fully documented schema, this is minimally adequate. With no output schema, a description of what the returned catalog item contains (or the effect of expand/expandProjects) would have been valuable and 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 the schema already documents id, expand, and expandProjects. The description adds no meaning beyond the schema, which is the baseline expectation at this coverage level.

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

Purpose4/5

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

States a specific verb and resource: fetch a single catalog item by ID. However, it does not differentiate itself from close siblings such as catalog_get_catalog_items, catalog_get_catalog_item_for_admin, or catalog_get_versions, so the agent cannot resolve ambiguity from the description 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 guidance on when to use this versus the admin variant or the list endpoint, and no prerequisites mentioned (auth scope, whether the item must be released/visible to the caller). 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.

catalog_get_catalog_item_for_adminC
Read-onlyIdempotent

Find a catalog item with specified id. Returns the catalog item with the specified id. GET /catalog/api/admin/items/{id}

NameRequiredDescriptionDefault
idYesCatalog item id (path)
expandNoThe expanded details of the requested comma separated objects.
includeSourceNoIncludes the Content Source metadata for the Catalog Item

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, and destructiveHint=false, so the safety profile is covered. The description adds only a restatement of the return and the raw endpoint path; it says nothing about admin-level permissions, what the admin view exposes versus the non-admin view, or how expand/includeSource affect the result.

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 two sentences say the same thing twice and the third is a raw endpoint. The content is front-loaded but padded with restatement 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?

With no output schema, the description should say more about what the returned catalog item contains, especially the admin-specific fields. It is minimally adequate for a simple get-by-id tool, but the sibling ambiguity and thin return description leave gaps.

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

Parameters3/5

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

Schema coverage is 100%, so all three parameters are documented in the schema itself. The description adds no meaning beyond that, which is the expected baseline 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?

The description states a specific verb and resource: fetch a catalog item by id. It is clear what the tool does, but it never distinguishes this admin variant from the sibling catalog_get_catalog_item, leaving the agent unsure which one 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 when-to-use guidance and no mention of alternatives. The existence of catalog_get_catalog_item and catalog_get_catalog_items_for_admin makes the missing distinction a real gap, not a trivial one.

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

catalog_get_catalog_itemsB
Read-onlyIdempotent

Fetch a list of catalog items. Returns a paginated list of catalog items. GET /catalog/api/items

NameRequiredDescriptionDefault
topNoNumber of records you want
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
typesNoA list of Catalog Item Type IDs. Results will be one of these types.
expandNoThe expanded details of the requested comma separated objects.
searchNoMatches will have this string somewhere in their name or description.
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
projectsNoA list of project IDs. Results will belong to one of these projects.
expandProjectsNoWhether or not to return detailed project data for each result.

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=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds that results are paginated, but it does not discuss authorization requirements, rate limits, or the shape of returned catalog items beyond calling it a list.

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 purpose. It has minor redundancy between 'Fetch a list' and 'Returns a paginated list,' and the raw GET endpoint is not necessary for an agent, but the overall structure 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?

The tool has 11 optional filtering/pagination parameters, but the schema documents them fully and annotations cover read-only behavior. However, with no output schema, the description could say more about the returned catalog item structure, pagination metadata, or how this differs from admin listing tools, leaving clear gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter is already documented in the input schema, including filters like search, types, projects, sort, and pagination fields. The description adds no parameter-specific meaning, which is acceptable given the high schema coverage 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 verb and resource: fetch a list of catalog items. It is specific enough to understand the operation, but it does not distinguish itself from closely named siblings such as catalog_get_catalog_items_for_admin or catalog_get_catalog_item.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With many catalog-related siblings, an agent must infer whether this is the general user-facing list endpoint or the admin variant, and no exclusions or selection criteria are given.

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

catalog_get_catalog_items_for_adminC
Read-onlyIdempotent

Fetch a list of catalog items. Returns a paginated list of catalog items. GET /catalog/api/admin/items

NameRequiredDescriptionDefault
topNoNumber of records you want
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
typesNoA list of Catalog Item Type IDs. Results will be one of these types.
expandNoThe expanded details of the requested comma separated objects.
searchNoMatches will have this string somewhere in their name or description.
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
projectIdNoMatches which can be requested within project with the given projectId
sourceIdsNoA list of Content Source IDs. Results will be from one of these sources.

TDQS

C2.6/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 only added behavioral fact is 'paginated', which is already implied by the page/size/skip parameters in the schema, and nothing is said about admin authorization requirements 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-loaded, but the first two sentences are near-duplicates of each other and of the tool name, and the trailing 'GET /catalog/api/admin/items' is raw route text that adds little for an agent already given annotations carrying the same title.

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 11 fully documented parameters and rich annotations, the schema carries most of the load and no output schema is needed. However, the crucial admin-versus-user distinction and the meaning of the admin endpoint itself remain unexplained, which is the one gap that matters for correct tool selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 11 parameters, including enums, sorting syntax, and filter semantics for types/sourceIds/projectId. The description adds no parameter-level meaning at all, so the baseline of 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 does state a verb and resource (fetch a list of catalog items), but it largely decomposes the tool name and then repeats the same idea in a second sentence. It never explains the 'for admin' scope, which is the only thing distinguishing it from the sibling catalog_get_catalog_items, so an agent cannot tell the two apart from the text 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 use this tool, no mention of the non-admin sibling catalog_get_catalog_items or the single-item variant catalog_get_catalog_item_for_admin, and no prerequisites such as admin privileges. The agent must infer all selection logic 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.

catalog_get_metering_assignment_strategyB
Read-onlyIdempotent

Fetch pricing card assignment strategy for the Org Returns a pricing card assignment strategy for the Org GET /price/api/private/pricing-card-assignments/strategy

NameRequiredDescriptionDefault

No parameters

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 the Org scope and private endpoint path, but does not mention authentication requirements or what the returned strategy 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?

The description is short and front-loaded, but the first two lines are redundant, both saying it fetches/returns the strategy. The endpoint line adds useful context, but the repeated sentence does not earn its place.

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

Completeness4/5

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

For a zero-parameter, org-level read operation with strong annotations, the description is largely complete: it identifies what is retrieved and for whom. No output schema exists, so return-shape detail is absent but not required; the only minor gap is that it does not describe the strategy payload.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4. There are no parameter semantics for the description to clarify.

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 ('Fetch'/'Returns') and resource ('pricing card assignment strategy for the Org'), so an agent can tell this retrieves the current strategy. It does not explicitly name sibling alternatives such as change/create, and the wording 'pricing card' differs slightly from the tool name's 'metering', but the core purpose 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?

No guidance is given about when to use this tool versus related siblings like catalog_change_metering_assignment_strategy or catalog_create_metering_assignment_strategy. The GET endpoint implies a read, but prerequisites and alternatives are left unstated.

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

catalog_get_metering_policy_assignmentC
Read-onlyIdempotent

Fetch pricing card assignment for private cloud by id Returns a pricing card assignments by id GET /price/api/private/pricing-card-assignments/{id}

NameRequiredDescriptionDefault
idYespricing card assignment id (path)

TDQS

C2.9/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 even repeat the endpoint path, so the safety profile is fully covered without the prose. The description's one addition is the "private cloud" scope, which hints at a distinct endpoint family, but it says nothing about the response shape or what happens 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.

Conciseness2/5

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

The same fact is restated three times in three lines ("Fetch pricing card assignment... by id", "Returns a pricing card assignments by id", and the raw path). Only the first line carries information; the rest is duplication that dilutes rather than front-loads.

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-parameter read tool with full schema coverage and complete annotations, the minimum is met. However, with no output schema there is no statement of what a pricing card assignment contains or how an empty/missing assignment is surfaced, which is the remaining gap an agent would want closed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 single 'id' parameter is already documented as a UUID path parameter in the schema. The description only echoes "by id" and adds no format, sourcing, or lookup guidance 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 specific verb ("Fetch") and resource ("pricing card assignment for private cloud by id"), and the singular-by-id framing separates it from list siblings such as catalog_get_all_metering_policy_assignments. The only friction is the terminology drift between the tool name ("metering_policy_assignment") and the description ("pricing card assignment"), which an agent must infer are the same object.

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 catalog_get_all_metering_policy_assignments, catalog_get_metering_assignment_strategy, or catalog_patch_metering_policy_assignment. The agent must infer from the tool name alone that this is the single-record read.

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

catalog_get_pageB
Read-onlyIdempotent

Fetch catalog sources. Returns a paginated list of catalog sources. GET /catalog/api/admin/sources

NameRequiredDescriptionDefault
topNoNumber of records you want
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
searchNoMatches will have this string in their name or description.
typeIdNoFind sources which contains items that can be requested in the given typeId
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
projectIdNoFind sources which contains items that can be requested in the given projectId

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already establish readOnly, idempotent, non-destructive, and open-world behavior, so the description's main added value is noting that results are paginated. It does not mention the admin permission requirement or anything about ordering of results beyond the schema's sort 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?

Very short and front-loaded, but the first and second sentences overlap ('Fetch catalog sources' / 'Returns a paginated list of catalog sources'), and the raw GET path duplicates the annotation title 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 list tool with fully documented parameters and safety annotations, most of what an agent needs is present. However, there is no explanation of what a 'catalog source' contains, no default pagination behavior, and no return-shape guidance, even though 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%, so the schema already documents all nine parameters, including pagination and sort semantics. The description adds no parameter-specific detail, which is acceptable at baseline but leaves no extra value.

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: fetching a paginated list of catalog sources. It is clearly a read/list operation, but it never distinguishes itself from nearby siblings such as catalog_get_admin_sources_by_source_id or catalog_get_types.

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 prerequisites, and no mention of the admin scope implied by the endpoint path. The agent must infer everything from the name and siblings.

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

catalog_get_policiesB
Read-onlyIdempotent

Fetch all pricing cards for private-policy cloud Returns a paginated list of pricing cards GET /price/api/private/pricing-cards

NameRequiredDescriptionDefault
topNoNumber of records you want
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
filterNoA subset of records that satisfy the given predicate expression
searchNoSearch by name and description
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
expandPricingCardNoWhether or not returns detailed pricing card for each result.
expandAssignmentInfoNoWhether or not returns count of assignments.

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 that the result is a paginated list, which is useful behavioral context, but it does not describe return fields, pagination edge cases, or authentication requirements beyond what annotations already imply.

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

Conciseness4/5

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

The description is short and front-loaded, stating the core operation first. It is slightly redundant because 'Returns a paginated list of pricing cards' largely restates the first line, and the endpoint duplicates the annotation title, but there is no bloat.

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 ten optional parameters, full schema description coverage, annotations covering safety, and no output schema, the description is largely complete for correct invocation. It could do more to explain the relationship with catalog_get_policy or what a pricing card contains, but the essentials are 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 all ten parameters are documented in the input schema. The description only mentions that results are paginated and does not add meaning beyond the schema for parameters like top, page, size, filter, search, or the expand flags.

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: fetching all pricing cards for private-policy cloud, and adds that the response is a paginated list. This is clear enough to distinguish from most siblings, though the tool name 'catalog_get_policies' does not match the 'pricing cards' resource described and no sibling alternative is named.

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 guidance on when to use this tool versus alternatives such as catalog_get_policy or other catalog list tools. 'Fetch all pricing cards' implies a list operation, but there are no conditions, exclusions, or prerequisites to help an agent select this tool correctly.

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

catalog_get_policyC
Read-onlyIdempotent

Find the pricing card with specified Id Returns the pricing card with the specified id GET /price/api/private/pricing-cards/{id}

NameRequiredDescriptionDefault
idYespricing card Id (path)

TDQS

C2.9/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 safety is covered. The description adds the concrete endpoint (a 'private' pricing-cards path), hinting at authenticated access, but says nothing about error behavior when an unknown id is passed or what the returned card 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 first two sentences restate the same fact ('find ... with specified Id' / 'returns ... with the specified id') plus a raw endpoint, so a third of the text is redundant.

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 is the only place to characterize the returned pricing card, and it merely repeats the tool name. The policy-versus-pricing-card naming mismatch is left unexplained, which is a real ambiguity for an agent picking among many catalog and policy tools.

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

Parameters3/5

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

Schema coverage is 100% and the single id parameter is fully documented with type and '(path)' annotation, so the description adds nothing beyond 'specified Id'. Baseline 3 is appropriate when the schema carries the 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 ('Find/Returns the pricing card with specified Id'), so the operation is unambiguous. However, it never reconciles the tool name 'catalog_get_policy' with the described 'pricing card' resource, and it does not differentiate itself from siblings like catalog_get_policies.

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

Usage Guidelines2/5

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

There is no guidance on when to use this lookup versus catalog_get_policies or the metering/assignment tools, and no stated prerequisites. The agent must infer from the name alone that this is the single-item variant.

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

catalog_get_scenarioC
Read-onlyIdempotent

Retrieves notification scenarios GET /notification/api/scenarios/{id}

NameRequiredDescriptionDefault
idYesNotification scenario ID (path)
expandBodyNoThe 'body' field of each scenario will be retrieved.

TDQS

C2.6/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, but the description adds nothing beyond the raw HTTP path — no note about what a notification scenario contains, whether missing IDs 404, or any response characteristics, and there is no output schema to fall back on.

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 raw 'GET /notification/api/scenarios/{id}' line largely duplicates the annotation title, so it spends budget on redundancy rather than on information the agent lacks.

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 fetch with fully documented parameters this is nominally enough to invoke it, but with no output schema the description should at least indicate what is returned, especially given the unexplained expandBody 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 both parameters (id, expandBody) are documented in the schema itself; the description contributes no additional meaning such as accepted ID formats or when to set expandBody, which is the baseline-3 case.

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 ('Retrieves') and a resource ('notification scenarios'), so the basic purpose is inferable, but the plural phrasing conflicts with the single-ID-by-path semantics and nothing distinguishes it from nearby siblings like catalog_get_scenario_config or catalog_get_all_scenario_configs.

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 at all on when to use this versus the scenario-config siblings or the collection-level tools; the agent must infer usage from the path template alone.

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

catalog_get_scenario_configB
Read-onlyIdempotent

Retrieves a notification scenario configuration by scenario id of an organization GET /notification/api/scenario-configs/{scenarioId}

NameRequiredDescriptionDefault
expandBodyNoThe 'body' field of each scenario configuration will be retrieved.
scenarioIdYesNotification Scenario Id (path)
defaultConfigNoThe 'defaultConfig' of each scenario will be retrieved.

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 the safety profile is fully covered. The description adds nothing beyond that: no note on whether an unknown scenarioId errors, how 'of an organization' is resolved (implicit token scope?), or how expandBody/defaultConfig affect the payload.

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 purpose. The trailing raw route 'GET /notification/api/scenario-configs/{scenarioId}' duplicates the annotation title and does little work.

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 simple read tool with a fully described schema and complete annotations, but with no output schema the description never hints at the shape of a scenario configuration or what the expansion flags return. Adequate, not complete.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters including the two optional expansion flags are already documented in the schema. The description only reinforces that scenarioId is the lookup key; it adds no semantics about expandBody/defaultConfig behavior.

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 ('Retrieves a notification scenario configuration') scoped by 'scenario id of an organization'. This clearly separates it from the plural sibling catalog_get_all_scenario_configs, though the near-identical sibling catalog_get_scenario is never mentioned.

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 scenario id' — an agent can infer this is the single-item fetch versus catalog_get_all_scenario_configs. There is no explicit when-to-use, no mention of the close sibling catalog_get_scenario, and no prerequisites such as required org context.

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

catalog_get_type_by_idB
Read-onlyIdempotent

Fetch catalog item type associated with the specified ID. Returns the Catalog Item Type with the specified ID. GET /catalog/api/types/{id}

NameRequiredDescriptionDefault
idYesCatalog Type ID (path)

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 fully covered. The description adds only the raw HTTP verb/path, which merely restates what the annotations imply; it says nothing about error behavior for unknown IDs or what the returned payload 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?

Short, but redundant: sentences one and two say the same thing twice, while the third is a raw endpoint string. Front-loading is fine; the duplication costs it a point.

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 one-parameter read with full schema coverage and complete annotations, this is minimally sufficient to call correctly. However, with no output schema, a hint about what a catalog item type object contains would have been the natural place to add value, and that 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% and the single parameter is documented as 'Catalog Type ID (path)'. The description's reference to 'the specified ID' adds nothing 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: fetch a catalog item type by its ID, and the REST path GET /catalog/api/types/{id} reinforces it. It is distinguishable in practice from the sibling catalog_get_types (which lists types), though the description never names that 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 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 instead of catalog_get_types or the version/type siblings, and no prerequisites. The only implicit cue is that you need an ID in hand, which the agent must infer from the parameter.

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

catalog_get_typesB
Read-onlyIdempotent

Find all Catalog Item Types. Returns a paginated list of all available Catalog Item Types. GET /catalog/api/types

NameRequiredDescriptionDefault
topNoNumber of records you want
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is ascending. Multiple sort criteria are supported.

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, covering the safety profile. The description adds useful context that results are paginated and exposes the underlying GET endpoint, but does not mention authentication, rate limits, or response shape details.

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

Conciseness4/5

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

The description is short and front-loaded, but the first two sentences are largely redundant: 'Find all Catalog Item Types' and 'Returns a paginated list of all available Catalog Item Types' say nearly the same thing. The GET endpoint adds minor value.

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

Completeness4/5

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

For a low-complexity list tool with no output schema, the description communicates that the return is a paginated list of all available Catalog Item Types. Combined with fully documented input parameters and rich annotations, this is sufficient for an agent to select and invoke the tool correctly.

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

Parameters3/5

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

All six parameters have schema descriptions (100% coverage), so the schema already documents pagination, sorting, and paging behavior. The description adds no parameter-specific meaning beyond what the schema provides, making 3 the appropriate 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: 'Find all Catalog Item Types' and clarifies that it returns a paginated list. It is clear what the tool does, but it does not explicitly distinguish itself from the sibling catalog_get_type_by_id, 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?

There is no guidance on when to use this tool versus alternatives such as catalog_get_type_by_id. The phrase 'Find all' weakly implies listing, but no explicit conditions, exclusions, or alternatives are provided.

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

catalog_get_upfront_price_response_for_catalog_itemB
Read-onlyIdempotent

Get a response with upfront prices for a given catalog item. Returns upfront prices of a given catalog item. GET /catalog/api/items/{id}/upfront-prices/{upfrontPriceId}

NameRequiredDescriptionDefault
idYesCatalog Item ID (path)
projectNo
upfrontPriceIdYesUpfront Price Request ID (path)

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 the raw HTTP path; it does not say what the response body contains or whether the price request may still be pending, which is the meaningful extra context 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 first two sentences restate each other almost verbatim ('Get a response with upfront prices...' / 'Returns upfront prices...'), wasting a third of the text. The endpoint path is front-loaded usefully, but the duplication drags the score down.

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 describe the shape of the returned upfront price data, and it doesn't. For a simple read endpoint with annotated safety and documented path params, this is adequate but incomplete regarding return values and the project parameter.

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

Parameters3/5

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

Schema coverage is 67%: the two required path parameters (id, upfrontPriceId) are documented in the schema, so the essentials are covered. The description adds zero meaning beyond the schema and leaves the optional 'project' parameter entirely unexplained in both places, so this is minimum viable rather than strong.

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 (Get/Returns) and resource (upfront prices for a catalog item) and even pins the underlying endpoint. However it never distinguishes itself from the closely related sibling catalog_submit_upfront_price_request_for_catalog_item, so an agent must infer that this is the read side of that flow.

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 (e.g. that an upfront price must already have been submitted), and no mention of the sibling submit tool that is the natural alternative. The only usage signal is the implicit read-only nature of the endpoint.

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

catalog_get_version_by_idC
Read-onlyIdempotent

Fetch detailed catalog item version. Returns a detailed catalog item version. GET /catalog/api/items/{id}/versions/{versionId}

NameRequiredDescriptionDefault
idYesCatalog Item ID (path)
versionIdYesCatalog Item Version ID (path)

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnly=true, idempotent=true, destructive=false, so the safety profile is fully covered. The description adds nothing beyond that — 'Returns a detailed catalog item version' restates the first sentence, and the raw endpoint string duplicates what the schema already labels as '(path)'.

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?

Three lines, but the first two sentences say the same thing ('Fetch detailed catalog item version' / 'Returns a detailed catalog item version'), so a third of the text is pure redundancy. The useful content (the endpoint path) is buried last.

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

Completeness3/5

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

For a simple two-parameter read with full annotation and schema coverage and no output schema, this is adequate to invoke correctly. It stops short of describing what 'detailed' actually includes or how it differs from the admin and list variants.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 (id, versionId) are documented as UUID/path values. The description adds no extra meaning such as format expectations or what happens if the version does not belong to the item; 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 ('Fetch detailed catalog item version'), which tells an agent exactly what is returned. It does not, however, distinguish itself from the near-identical sibling catalog_get_version_by_id_for_admin or from catalog_get_versions.

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 catalog_get_version_by_id_for_admin, catalog_get_versions, or catalog_get_catalog_item. The agent must infer that this is the non-admin variant 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.

catalog_get_version_by_id_for_adminC
Read-onlyIdempotent

Fetch a detailed catalog item version. Returns a detailed catalog item version. GET /catalog/api/admin/items/{id}/versions/{versionId}

NameRequiredDescriptionDefault
idYesCatalog Item ID (path)
versionIdYesCatalog Item Version ID (path)

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 the description owes little on safety. The only added signal is the raw admin URL path, which hints at elevated privileges, but it says nothing about auth requirements, error behavior on unknown ids, or response shape.

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

Conciseness2/5

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

The first two sentences are near-identical restatements ("Fetch a detailed catalog item version" / "Returns a detailed catalog item version"), and the third is a raw endpoint string. The duplication wastes the limited space that could have carried scope or sibling 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?

For a two-param, fully documented read getter with rich annotations, this is minimally viable. But with no output schema, the description should say what "detailed" version data includes or how it differs from the version-list sibling, 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% and both parameters (id, versionId) are documented as path parameters in the schema, so the baseline is 3. The description adds no meaning beyond echoing the path template, which is already visible in the schema.

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 gives a clear verb+resource ("Fetch a detailed catalog item version") and the underlying admin endpoint path, so the operation itself is unambiguous. However, it never distinguishes this from the near-identical sibling catalog_get_version_by_id, nor does it explain what the "admin" variant adds.

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 admin version versus catalog_get_version_by_id or catalog_get_versions_for_admin. The agent must infer the choice entirely from the tool name, which is not the description's job.

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

catalog_get_versionsB
Read-onlyIdempotent

Fetch a list of catalog items with versions. Returns a paginated list of catalog item versions. GET /catalog/api/items/{id}/versions

NameRequiredDescriptionDefault
idYesCatalog Item ID (path)
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.

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, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered. The description's only added behavioral fact is that results are paginated, which the page/size/sort parameters already imply; it says nothing about ordering, default page size behavior, or what a 'version' 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?

Three short lines, but the first two sentences largely restate each other and the first is the least accurate of the three, so the front-loading works against comprehension. The endpoint line is useful for mapping to the underlying API but is not otherwise load-bearing.

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 operation with full schema coverage and rich annotations, the description covers the essentials: what is returned and that it is paginated. It is incomplete in that it never clarifies what a version is or whether this returns all versions vs. only released ones, and there is no output schema to fall back on.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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% — id, page, size and sort are all documented with formats and defaults — so the schema does the heavy lifting. The description adds only the endpoint path template, which merely restates that 'id' is a path 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 names a specific verb and resource (fetch catalog item versions) and pins it to an endpoint, so the agent knows it returns a paginated version list for a given item. It loses a point because the opening sentence ('a list of catalog items with versions') is slightly at odds with the second, and it never distinguishes itself from close siblings catalog_get_version_by_id or catalog_get_versions_for_admin.

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 instead of catalog_get_version_by_id (single version), catalog_get_versions_for_admin, or catalog_get_catalog_item. The only implied guidance is that a catalog item id is required, which the schema already enforces.

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

catalog_get_versions_for_adminB
Read-onlyIdempotent

Fetch a list of catalog items with versions. Returns a paginated list of catalog item versions. GET /catalog/api/admin/items/{id}/versions

NameRequiredDescriptionDefault
idYesCatalog Item ID (path)
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.

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, destructiveHint=false, so the safety profile is covered. The description adds that results are paginated and exposes the endpoint path, but says nothing about admin authorization requirements or what happens when the id does not exist — the most relevant missing behavior for an admin 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 short lines, front-loaded with the action and resource, no filler. The first two sentences are somewhat redundant (both restate 'list of ... versions'), which is the only wasted 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?

With no output schema, the description should ideally say what a version record contains or how results are ordered/filtered; it only says 'paginated'. Annotations cover safety and the schema covers parameters, but the admin-vs-standard distinction remains 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 id (UUID), page, size and sort are all documented in the schema itself. The description adds no syntax or constraint detail beyond that, 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 clear verb (fetch/list) and resource (catalog item versions) plus the underlying REST path, so the agent knows exactly what it retrieves. However, it never distinguishes itself from the sibling catalog_get_versions, and the first sentence ('list of catalog items with versions') is slightly inconsistent with the second ('list of catalog item versions' for a given {id}).

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

Usage Guidelines2/5

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

No guidance on when to use this admin-scoped variant versus catalog_get_versions, catalog_get_version_by_id, or catalog_get_version_by_id_for_admin, all of which appear as siblings. The 'admin' qualifier implies elevated scope but the description never states the selection condition.

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

catalog_patch_configC

Enable or disabled a notification scenario configuration of an organization PATCH /notification/api/scenario-configs

NameRequiredDescriptionDefault
bodyYesThe notification scenario configuration patch

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, idempotentHint=false, and openWorldHint=true, so the write/scope profile is covered. The description adds nothing beyond restating the operation — no mention of what state is changed, reversibility, or auth requirements. The 'Enable or disabled' typo also slightly reduces confidence.

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

Conciseness4/5

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

One short sentence with the purpose front-loaded, followed by the endpoint. No waste, though the endpoint restates the low-level route rather than adding agent-useful information and the typo 'disabled' is a small blemish.

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 single-parameter mutation with full schema coverage and annotations, the description is adequate but thin. It omits scope prerequisites (organization context, required permissions) and does not distinguish this patch from the sibling POST/GET/DELETE scenario-config 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%, with 'enabled' and 'scenarioId' documented inline, so baseline 3 applies. The description implies the boolean toggle and the target scenario but adds no syntax or format 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 ('Enable or disable') and resource ('a notification scenario configuration of an organization'), which is clear. However, it does not differentiate from siblings like catalog_get_scenario_config, catalog_post_scenario_configs, or catalog_delete_scenario_configs_by_scenario_id.

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

Usage Guidelines2/5

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

The description offers no when-to-use context, no prerequisites (org scope, permissions), and no reference to alternative tools such as catalog_post_scenario_configs for creation or catalog_get_scenario_config for reads. The only hint is the PATCH endpoint line.

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

catalog_patch_metering_policy_assignmentB

Updates the pricing card assignment id with the supplied id. Request body with ALL entityType will delete the older assignments for the given pricingCardId PATCH /price/api/private/pricing-card-assignments/{id}

NameRequiredDescriptionDefault
idYespricing card Assignment Id (path)
bodyYesA pricing card assignment with pricing card Id to override existing pricing card Id

TDQS

B3/5.0
Behavior2/5

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

The description does surface a real side effect: a body with entityType=ALL deletes the older assignments for the given pricingCardId. However, annotations declare destructiveHint=false, so the two signals cannot both be trusted; the deletion behavior is exactly the kind of thing an agent needs before calling a PATCH. Idempotency and authorization requirements are still unaddressed.

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 a raw path, front-loaded and free of padding. The first sentence is circular ('updates the assignment id with the supplied id') and the raw HTTP path is redundant with the title, so a bit of the text 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 2-parameter mutation with a fully described nested body and no output schema, the description covers the essential side effect but omits permissions, whether the addressed assignment is replaced in place, and what the PATCH returns. Adequate, not complete.

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

Parameters4/5

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

Schema coverage is 100% so the baseline is 3, but the description goes beyond the schema by explaining the semantic consequence of the entityType=ALL enum value, which the schema only labels as 'Pricing card assigned entity type'. That is real added meaning for the nested body 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 states a specific verb and resource ('Updates the pricing card assignment id') and appends the raw PATCH path, so an agent can tell this is a mutation of an existing pricing-card assignment rather than a create/delete. It does not explicitly differentiate itself from the adjacent catalog_create_metering_policy_assignment / catalog_delete_metering_policy_assignment siblings, but the verb does the 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?

There is no statement of when to use this over catalog_create_metering_policy_assignment, catalog_change_metering_assignment_strategy, or catalog_delete_metering_policy_assignment, and no preconditions (e.g. the assignment must already exist). The only conditional guidance is an implied side-effect of entityType=ALL, not a usage rule.

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

catalog_postB

Create or update a catalog source. Creating or updating also imports (or re-imports) the associated catalog items. Creates a new catalog source or updates an existing catalog source based on the request body and imports catalog items from it. POST /catalog/api/admin/sources

NameRequiredDescriptionDefault
bodyYesThe catalog source to be created
validationOnlyNoIf true, the source will not be created. It returns the number of items belonging to the source. The request will still return an error code if the source is invalid.

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already state readOnly=false, destructive=false, and idempotent=false, so the description does not need to repeat safety flags. It does add a material behavior beyond annotations: create/update also imports or re-imports associated catalog items, warning of a side effect. It could say more about validationOnly/error behavior, but the schema covers that.

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 sentences 1 and 2 repeat the same create/update and import information, and the raw POST endpoint duplicates the annotation title. It is not bloated, but it is redundant.

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 endpoint with a fully described nested body and no output schema, the description covers the key purpose and import side effect. It omits return-value behavior and explicit validationOnly meaning, but the schema supplies the latter and 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 description coverage is 100% and includes body fields and validationOnly, so the schema carries parameter semantics. The description only says 'based on the request body' and does not add format or field-level 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 first sentence names a specific verb ('Create or update') and resource ('catalog source') and adds that associated catalog items are imported. It is clear enough to select for catalog source writes, though it does not distinguish itself from the similarly named catalog_create_or_update sibling.

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

Usage Guidelines2/5

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

No explicit when-to-use, when-not-to-use, or alternative guidance is provided. The closest it gets is the create-or-update framing, leaving the agent to infer whether catalog_create_or_update or another source tool is preferable.

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

catalog_post_scenario_configsB

Creates or updates a notification scenario configuration of an organization POST /notification/api/scenario-configs

NameRequiredDescriptionDefault
bodyYesThe notification scenario configuration to be created or updated
expandBodyNoThe 'body' field of each scenario configuration will be retrieved.

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, destructive=false, idempotent=false, and openWorld=true, lowering the disclosure burden. The description usefully adds the create-or-update (upsert) semantics and the endpoint, but says nothing about required permissions, what happens to unspecified fields, 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?

Two concise lines with the action front-loaded and the endpoint suffixed; nothing is padded. It is efficient, though slightly terse in that it omits any qualifier.

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 moderate mutation tool with full schema coverage and annotations, the description covers the essential action and resource. It lacks context on the scenario-config domain, create/update distinction, and side effects, but there is no output schema requiring return-value explanation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 body/expandBody/subject/enabled/scenarioId are all documented in the schema. 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 pair ('creates or updates') and a specific resource ('notification scenario configuration of an organization'), which clearly separates it from the get/delete scenario-config siblings. It does not name any sibling or explicitly differentiate the upsert from the generic catalog_post, but the verb+resource 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 catalog_get_scenario_config, catalog_delete_scenario_configs_by_scenario_id, or the generic catalog_post, nor on create-vs-update conditions. 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.

catalog_preview_notification_configC

Preview Notification Scenario Config POST /notification/api/scenario-configs/{scenarioId}/preview

NameRequiredDescriptionDefault
bodyYesThe notification scenario configuration preview
scenarioIdYesNotification Scenario Id (path)

TDQS

C2.5/5.0
Behavior2/5

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

Annotations declare readOnlyHint=false, destructiveHint=false and idempotentHint=false, so the agent knows this is a non-destructive POST — but the critical behavioral question for a "preview" endpoint is unanswered: does it mutate or persist anything, and does it deliver a real notification? That ambiguity is sharpened by the sibling catalog_send_test_notification. The description adds nothing beyond the URL.

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 lines, no padding, and purpose is front-loaded — but one of those lines is the raw endpoint, which duplicates the annotations title and consumes space that should have carried usage or behavioral context. Concise but not efficiently allocated.

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 owes the agent an explanation of what a preview returns (rendered subject/body? validation errors?), and that is entirely absent. Combined with a nested body parameter and no mutation/return semantics, an agent cannot call this confidently without guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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% — scenarioId is documented as a path parameter and the nested body object documents subject/body, with `data` left as a free-form object. The description contributes only the path template, so the schema does essentially all the semantic work; 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 a verb ("Preview") and resource ("Notification Scenario Config") and echoes the HTTP endpoint, so the general purpose is inferable. But "preview" is never explained — it does not say whether it renders a notification body/subject for inspection or actually dispatches something, and it does nothing to distinguish itself from siblings like catalog_send_test_notification or catalog_get_scenario_config.

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 at all: no preconditions, no statement of when a preview is appropriate versus fetching the stored config (catalog_get_scenario_config) or sending a test notification (catalog_send_test_notification). Only the raw POST path is given, which the agent must reverse-engineer into usage rules.

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

catalog_request_catalog_item_instancesC

Create a deployment. Creates a deployment from a catalog item. POST /catalog/api/items/{id}/request

NameRequiredDescriptionDefault
idYesCatalog item ID (path)
bodyYesA request to create a deployment based on a catalog item

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnly=false, destructive=false, idempotent=false and openWorld=true; the description adds only the HTTP endpoint and the catalog-item source. It does not disclose whether the request is queued for approval, what happens on duplicate deployment names, or how inputs map to the created resource — behavior an agent needs for a non-idempotent 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 first two lines say the same thing ('Create a deployment' / 'Creates a deployment from a catalog item'), wasting the prime opening slot on repetition rather than on scope or constraints.

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 that provisions a deployment, the definition omits the things an agent most needs: approval/request semantics, naming-conflict handling, and how this differs from the several other deployment-creation siblings. With no output schema, nothing else fills that 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% and every body field (inputs, reason, version, projectId, deploymentName, bulkRequestCount) is documented in the schema itself. The description adds nothing about parameter meaning, 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 verb+resource is concrete: it creates a deployment from a catalog item, and the POST path confirms the endpoint. It does not, however, distinguish this from siblings such as deployment_create_resource, iaas_create_deployment, or deployment_action_deployment_request, which an agent could plausibly confuse with 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?

The description offers no when-to-use guidance, no prerequisites, and no named alternative. It never says whether the deployment name should be pre-validated with deployment_check_deployment_name or when to prefer a plain deployment creation call instead.

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

catalog_send_test_notificationC

Send Test Notification Scenario Config POST /notification/api/scenario-configs/{scenarioId}/test

NameRequiredDescriptionDefault
bodyYesThe notification scenario configuration test
scenarioIdYesNotification Scenario Id (path)

TDQS

C2.5/5.0
Behavior2/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, open-world POST, so the '/test' path adds little beyond them. Crucially, the description never states the real side effect — that a live notification is actually dispatched to the recipient via the configured channels — nor any rate limit or repeat-send caveat, which is exactly the kind of behavior an agent needs before invoking a test-send.

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 action, but the second line is a raw endpoint path that mostly duplicates the tool name and annotations rather than adding information. The first line is telegraphic rather than a usable sentence.

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, open-world tool with real outward effects (sending notifications), a nested undocumented body object, and no output schema, the definition does not say what a 'test' produces, what happens on failure, or what data fields are templated into the notification. Given this complexity, 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% (scenarioId is the path param, body.recipient is the recipient email), so the schema carries parameter meaning and a baseline 3 applies. The description adds nothing about the nested body.data object, which is typed only as a generic object with no explanation of what payload it should carry.

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 text names a resource ('Scenario Config') and an action ('Send Test Notification'), plus the underlying POST endpoint, so an agent can infer it triggers a test notification for a scenario config. However, 'Send Test Notification Scenario Config' is a noun-phrase fragment rather than a statement of what the tool actually does, and it does not distinguish itself from the closely related sibling catalog_preview_notification_config.

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 (e.g., a scenario config must already exist), and no mention of when to prefer this over catalog_preview_notification_config or catalog_get_scenario_config. 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.

catalog_submit_upfront_price_request_for_catalog_itemB

Create a request to calculate upfront price for a given catalog item. Returns upfront price response for a given catalog item. POST /catalog/api/items/{id}/upfront-prices

NameRequiredDescriptionDefault
idYesCatalog Item ID (path)
bodyYesA request to create a deployment based on a catalog item

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare it is not read-only, not idempotent, not destructive, and open-world, so the safety profile is covered. The description adds that the call returns an upfront price response (implying a synchronous result rather than a polled request), but it never explains whether the 'request' is async, whether it has side effects, or how long a calculation may take.

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 action. The second line, 'Returns upfront price response for a given catalog item,' largely restates the first and the raw POST path is redundant with the annotation title, but nothing is confusing or 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?

For a non-idempotent, open-world POST with no output schema, the description should clarify the request/response model and relationship to the get sibling; it only hints at a return value. Adequate to call, but incomplete for an agent reasoning about sequencing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 (inputs, reason, version, projectId, deploymentName, bulkRequestCount) are all documented in the schema. The description adds nothing beyond 'a given catalog item', 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: create a request to calculate upfront price for a catalog item, plus the underlying POST endpoint. It is distinguishable by name from the sibling catalog_get_upfront_price_response_for_catalog_item, but the description text never says how the create/submit differs from the get/retrieve 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?

There is no explicit when-to-use guidance, no prerequisite (does the catalog item need a version? a deployment name?), and no mention of the obvious alternative, catalog_get_upfront_price_response_for_catalog_item. An agent must infer that this POST initiates the price calculation while the sibling fetches a result.

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

catalog_update_catalog_itemB

Set an icon or request limit to a catalog item. Updates a catalog item with specified icon id or request limit. PATCH /catalog/api/admin/items/{id}

NameRequiredDescriptionDefault
idYesThe unique id of item to update. (path)
bodyYesThe patch that apply to the item

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare non-readonly, non-destructive, non-idempotent and open-world, so the safety profile is known; the description adds only the admin PATCH path. It omits what a PATCH does to fields not supplied and does not mention that the body can also carry formId, which the schema allows. 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.

Conciseness3/5

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

The first two sentences are near-duplicates ("Set an icon or request limit..." / "Updates a catalog item with specified icon id or request limit"), wasting half the text. The endpoint line is useful metadata but the redundancy drags it below 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 2-parameter PATCH with a nested body and no output schema, the definition covers target, fields and endpoint, and annotations carry the mutation semantics. The gap is the missing statement about partial-update behavior and formId coverage.

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

Parameters3/5

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

Schema coverage is 100%, so both the id and the nested body properties are already documented. The description repeats icon id and request limit but ignores the third body field, formId, so it adds no meaning beyond the schema and is slightly selective.

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 ("Updates a catalog item") plus the fields being set (icon id, request limit), so the agent knows exactly what it targets. It does not distinguish itself from the close sibling catalog_update_catalog_item_version, leaving the choice between them 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?

There is no when/when-not guidance and no named alternative, despite several plausible siblings (catalog_update_catalog_item_version, catalog_create_or_update, catalog_patch_config). The only implied guidance is that this is the item-level PATCH endpoint.

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

catalog_update_catalog_item_versionB

Patch the catalog item version with form id. Patch the catalog item version with form id. Nullify the formId if the formId is an empty string. PATCH /catalog/api/admin/items/{id}/versions/{versionId}

NameRequiredDescriptionDefault
idYesThe unique id of catalog item to update. (path)
bodyYesThe patch that apply to the item
versionIdYesThe name of catalog item version to update. (path)

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-destructive, non-idempotent, open-world mutation. The description adds a useful behavioral rule beyond the annotations: an empty-string formId nullifies the value. It does not disclose authorization needs, side effects, 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.

Conciseness2/5

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

The first sentence is repeated verbatim, which is wasted space. The REST endpoint line is useful but the duplicate opening sentence makes the description less front-loaded than it should 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?

For a mutation tool with annotations and full schema coverage, the description is minimally adequate. It explains the formId nullification behavior but omits prerequisites, permissions, and what the operation returns.

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 schema already documents all three parameters. The description adds meaning beyond the schema by explaining that an empty-string formId is treated as nullification rather than an ordinary patch value.

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 (Patch) and resource (catalog item version) and ties it to formId. It is clear what the tool does, but it does not differentiate this tool from adjacent catalog update tools such as catalog_update_catalog_item.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus catalog_update_catalog_item, catalog_get_version_by_id, or other version-related siblings. The only usage signal is implicit from the phrase 'with form id'.

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

catalog_update_policyC
Idempotent

Update the pricing card Updates the pricing card with the specified Id PUT /price/api/private/pricing-cards/{id}

NameRequiredDescriptionDefault
idYespricing card Id (path)
bodyYesThe pricing card to be created

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=true, and destructiveHint=false, so the safety profile is covered structurally. The description adds essentially nothing beyond restating the operation; notably it omits the important PUT full-replacement semantics (whether omitted fields are cleared/overwritten) that an agent would need when mutating a complex nested resource.

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 highly repetitive, restating the same operation three times ('Update the pricing card', 'Updates the pricing card...', 'PUT /price/...') without front-loading any real value. It is not bloated, but the redundancy earns no efficiency credit.

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 deeply nested body (many metering item arrays, charge models, pricing fields) and no output schema, the description is far too thin. It should clarify full-vs-partial update behavior and required vs optional fields, but instead provides only a bare restatement of the endpoint.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the id path parameter and the full body structure. The description only references 'the specified Id' and does not enrich the complex nested body fields, so baseline 3 is appropriate.

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

Purpose3/5

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

The description states a specific verb and resource ('Update the pricing card with the specified Id'), which is clearer than the tool name catalog_update_policy suggests. However, it does nothing to distinguish this from catalog siblings like catalog_get_policy, catalog_create_policy, or catalog_delete_policy, and the name/resource mismatch adds confusion rather than resolving 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?

There is no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusion conditions. The description only restates that it updates a pricing card by Id, leaving all usage context to inference.

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

catalog_uploadC

Upload an icon Create an icon. POST /icon/api/icons

NameRequiredDescriptionDefault
bodyNoContent-Type: multipart/form-data

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, destructiveHint=false and openWorldHint=true, so the safety profile is covered structurally. The description adds nothing beyond those flags – no mention of accepted file types, size limits, overwrite behavior, or what the returned icon identifier looks like, for a non-idempotent write.

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?

Three lines say the same thing twice ('Upload an icon' / 'Create an icon.') plus a raw endpoint string. It is short but redundant rather than front-loaded with useful information; two of three lines do not earn their 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 non-idempotent upload mutation with a nested multipart body and no output schema, the description says nothing about accepted formats, size constraints, or how the uploaded icon is subsequently referenced. The annotations cover safety hints but the description leaves the operational details entirely to 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% and the single multipart 'file' param is documented in the schema, so the baseline of 3 applies. The description adds no format, encoding, or content-type guidance beyond what the schema already states.

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 specific verb and resource (upload/create an icon), which is slightly more informative than the tool name 'catalog_upload'. However, it does not distinguish this from catalog siblings like catalog_create_or_update or catalog_post, and the three lines restate the same thing without adding 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?

There is no indication of when to use this tool versus alternatives, no prerequisites (e.g., required permissions, whether the icon must later be referenced by ID), and no exclusions. The agent is left to infer everything from the name and the endpoint path.

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

content_create_content_sourceB

Create a Content source Returns the new content source POST /content/api/sources

NameRequiredDescriptionDefault
bodyYesRequest body
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information, please refer to /content/api/about

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, openWorldHint=true and destructiveHint=false, so the mutation/open-world profile is covered. The description adds one genuinely useful fact beyond that – 'Returns the new content source' – which matters since there is no output schema, plus the underlying POST path. It says nothing about auth requirements, whether the source is validated or immediately synced, or what happens on duplicate 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?

Three short, front-loaded lines with no filler; the action and the return value come first. The 'POST /content/api/sources' line is marginally redundant with the name but serves as a low-cost API mapping.

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 tool with a nested required body, 100% schema coverage, annotation hints, and no output schema, the description covers the action and the return value. It stops short of explaining provider-specific 'config' semantics, permission needs, or post-creation sync behavior, which an agent would want before calling a non-idempotent creation 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%, including a nested body with documented id, name, typeId, projectId and an enum for typeId, so the schema carries the parameter burden. The description adds no semantics beyond the schema – nothing about whether 'config' is required per provider type or how projectId association behaves. 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 gives a specific verb+resource ('Create a Content source') that maps cleanly to the content_* sibling family (get/delete/update/list). It does not explicitly name a sibling to avoid, but the create/get/update/delete distinction is self-evident from the name and first line.

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 content_update_content_source or content_schedule_sync, and no prerequisites are stated (e.g., a valid projectId, a supported typeId, or whether sync begins automatically). The agent is left to infer all of this from the schema.

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

content_delete_content_sourceC
DestructiveIdempotent

Delete a content source DELETE /content/api/sources/{id}

NameRequiredDescriptionDefault
idYesID of the content source (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information, please refer to /content/api/about

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, readOnlyHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond restating the HTTP route — it doesn't say what is destroyed downstream (e.g., synced content, dependent catalog items) or whether confirmation is required, which is the value a destructive-tool description should 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 action front-loaded and zero filler. The second line largely duplicates the annotation title ('DELETE /content/api/sources/{id}'), which keeps it from a 5, 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?

For a simple single-resource delete with annotations carrying the destructive/idempotent profile and no output schema to explain, the definition is minimally sufficient. It is missing the blast-radius information an agent would want before invoking a destructive open-world delete, such as cascading effects or auth requirements.

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

Parameters3/5

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

Schema description coverage is 100% with only two parameters, and the path template '{id}' in the description corroborates that the id is a path parameter. The description adds no format, validation, or apiVersion semantics beyond what the schema already documents, 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 ('Delete a content source') plus the underlying endpoint, so it is clearly differentiated from siblings like content_get_content_source, content_update_content_source, and content_list_content_sources. It stops short of explicitly naming those alternatives, 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 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 content_update_content_source or other content tools, and no prerequisites, permission requirements, or warnings about irreversible removal. The agent must infer all usage context from the verb alone.

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

content_get_aboutC
Read-onlyIdempotent

Returns content API information The page contains information about the supported API versions and the latest API version. The version parameter is optional but highly recommended. If you do not specify explicitly an exact version, you will be calling the latest supported API version. Here is an example of a call which specifies the exact version you are using: GET /content/api/sources?apiVersion=2019-01-15 GET /content/api/about

NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/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 useful content about what the response contains (supported and latest API versions), but it also asserts a version parameter that the schema does not have, muddying rather than clarifying 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?

Roughly half the text is devoted to the nonexistent version parameter, and the worked example points at a different endpoint (/content/api/sources?apiVersion=...) rather than the tool's own path. The one genuinely useful fact — that the page lists supported and latest API versions — is buried in the middle.

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 zero-parameter read with no output schema, the description does explain the payload's content (API versions), which is the key missing piece. But the parameter discussion conflicts with the actual schema, leaving an agent uncertain about whether arguments should be supplied.

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

Parameters2/5

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

The schema declares zero properties with additionalProperties=false, yet the description spends most of its length discussing an optional 'version parameter' and an apiVersion query example. That is a phantom parameter that could lead an agent to construct an invalid call, so the description actively misleads rather than adding meaning.

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 ("Returns content API information") and clarifies that the page reports supported and latest API versions. However, it never distinguishes this tool from the many sibling get_about tools (iaas_get_about, blueprint_get_about, project_get_about, approvals_get_about), so an agent must infer the scope 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 alternatives, and no prerequisites or exclusions. The only guidance ('version parameter is optional but highly recommended') refers to a parameter that does not exist, so it cannot help an agent decide whether or how to invoke the tool.

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

content_get_content_sourceC
Read-onlyIdempotent

Get a content source GET /content/api/sources/{id}

NameRequiredDescriptionDefault
idYesID of the content source (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information, please refer to /content/api/about

TDQS

C2.6/5.0
Behavior2/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 contributes nothing beyond the raw HTTP path, which duplicates the annotation title; no information on lookup failures, visibility/scope of content sources, or returned shape (and no output schema exists to cover it).

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 line ('GET /content/api/sources/{id}') merely repeats the annotation title and endpoint rather than adding information, so not every line earns its place.

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

Completeness3/5

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

For a simple annotated read-only single-resource fetch with full schema coverage, the description is minimally sufficient to call the tool correctly. It is thin on domain context (what a content source represents, whether the ID must come from a list call) and there is no output schema to fill that 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 (id, apiVersion) are documented in the schema, so the baseline of 3 applies. The description adds no interpretation of the id (e.g., what a content source ID is or how to obtain one).

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 and resource ('Get a content source'), so the basic purpose is recoverable. However, it reads as a near-restatement of the tool name and offers no differentiation from sibling tools such as content_list_content_source, content_list_content_sources, or content_get_sync_request.

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

Usage Guidelines2/5

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

There is no indication of when to use this single-item fetch versus the listing siblings (content_list_content_sources / content_list_content_source), and no prerequisites or context are given. Usage is only implied by the resource name.

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

content_get_sync_requestC
Read-onlyIdempotent

Get a sync request by id GET /content/api/sourcecontrol/sync-requests/{id}

NameRequiredDescriptionDefault
idYesID of the sync request (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information, please refer to /content/api/about

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, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds nothing behavioral beyond echoing the REST path, which is already the annotation title; it doesn't say what a sync request record represents or how missing ids behave.

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 terse lines with the verb front-loaded and no filler. The second line (the HTTP path) is largely redundant with the annotation title, a small waste but not harmful.

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

Completeness2/5

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

With no output schema, the description should at least hint at what a sync request response contains (status, timestamps, source). It says nothing about return shape or error conditions, so an agent knows how to invoke it but not what to 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 coverage is 100%, with the id property documented as a UUID path parameter and apiVersion explained inline. 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.

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 a sync request by id'), which is unambiguous about what the call does. It offers no differentiation from related content tools such as content_sync_history or content_schedule_sync, leaving the agent to 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 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 siblings like content_sync_history or content_list_content_sources, and no prerequisites or context (e.g., that an id comes from a sync trigger). The only signal is the required id parameter in the schema.

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

content_list_content_sourceB
Read-onlyIdempotent

Get content sources Use filter parameters to narrow down the results. Request parameter should be URL encoded GET /content/api/sources/list

NameRequiredDescriptionDefault
pageNoPage you want to retrieve (1..N)
sizeNoNumber of records per page
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
requestNo
typeIdsNoSearch based on Content Source Type Ids
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information, please refer to /content/api/about

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, non-destructive and openWorld, so safety behavior needs no restating. The description adds the non-obvious constraint that the request parameter must be URL encoded, which is real added value, but says nothing about pagination behavior or result volume for what is clearly a paged 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 short lines with the encoding caveat and endpoint front-loaded, no filler. Minor redundancy in restating the endpoint path alongside a near-tautological opening line, but nothing wasteful enough to penalize further.

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, a nested filter object, and no output schema mean the description should at least signal what a listing returns and how paging/sorting compose. It stays silent on those, relying on an 83%-covered schema and annotations that cover only the safety profile.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 83%, so the schema itself documents page, size, sort and every nested request field, fixing the baseline at 3. The description contributes only the URL-encoding requirement for the nested request object and adds no filter-combination semantics (AND vs OR) beyond what the schema already states.

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 content sources') plus the raw endpoint (GET /content/api/sources/list) makes it a list/query operation. However, with close siblings named content_list_content_sources and content_get_content_source, the description does nothing to distinguish itself from them — an agent cannot tell from prose which of the three 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?

'Use filter parameters to narrow down the results' is a genuine usage hint about how to constrain the call, and the URL-encoding note is an invocation prerequisite. But there is no when-to-use / when-not-to-use guidance and no routing to the singular get or plural list siblings.

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

content_list_content_sourcesC
Read-onlyIdempotent

[DEPRECATED] Get content sources. Deprecated: Use /content/api/sources/list Deprecated in favor of /content/api/sources/list due to improper usage of query parameters GET /content/api/sources

NameRequiredDescriptionDefault
pageNoPage you want to retrieve (1..N)
sizeNoNumber of records per page
requestYes
typeIdsNoSearch based on Content Source Type Ids
pageableYes
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information, please refer to /content/api/about

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety is covered. The description adds genuinely useful behavior context: the operation is deprecated and the reason is "improper usage of query parameters", which warns the agent that parameter behavior is unreliable. It says nothing about result shape 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.

Conciseness3/5

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

The [DEPRECATED] marker is correctly front-loaded, but the deprecation is then stated three times in four lines (marker, "Deprecated:" plus endpoint, and "Deprecated in favor of ... due to ..."). Rewriting as one sentence would lose 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?

Six parameters including nested request and pageable objects, no output schema. Because the tool is deprecated, exhaustive parameter explanation is lower value, and the deprecation notice does the most important job. Still, an agent gets no guidance on which filters or pagination fields matter before deciding whether to fall back to this 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 67% and the schema documents most filter fields, so the baseline is 3. The description adds no per-parameter meaning; its only related hint, "improper usage of query parameters", does not explain which parameters or how they are misused.

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?

"Get content sources" essentially restates the tool name (content_list_content_sources) and does not describe the rich filtering surface shown in the schema (ids, name, search, projectIds, repository, contentType, syncEnabled, integrationId). With a sibling named content_list_content_source as well as content_get_content_source, no distinction is drawn between 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?

The description does explicitly steer away from this tool: "Deprecated: Use /content/api/sources/list". However, the recommended replacement is a raw URL, not one of the sibling tool names, so an agent cannot reliably map it to a callable tool. There is no positive guidance on when this tool would still be appropriate.

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

content_schedule_syncB

Creates a sync request Request sync for a content source POST /content/api/sourcecontrol/sync-requests

NameRequiredDescriptionDefault
bodyYesRequest body
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information, please refer to /content/api/about

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, and openWorldHint=true, so the safety profile is covered. The description adds only the observation that this POSTs a request (likely an async trigger), without explaining whether it blocks, what it returns, or whether the sync runs immediately.

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 lines are largely redundant — 'Creates a sync request' and 'Request sync for a content source' restate the same idea, and the raw POST path duplicates the annotation title.

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 two-parameter mutation tool with full schema coverage and complete annotations, the definition is adequate to identify the endpoint. However, it does not explain what triggering a sync request actually does, whether it is asynchronous, or how to track the resulting request.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 sourceId documented as 'Content Source Id' and apiVersion documented in the schema. The description mentions 'content source', which maps to sourceId, but adds no format, constraints, or default behavior 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?

States a specific verb+resource: 'Creates a sync request' / 'Request sync for a content source'. The 'for a content source' scoping implicitly distinguishes it from the sibling content_schedule_sync_all, but it never names that sibling or states the contrast 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 when-to-use guidance, no prerequisites, and no alternatives. Given the presence of content_schedule_sync_all and content_get_sync_request as siblings, an explicit routing note would have been valuable, but none exists.

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

content_schedule_sync_allB

Submit sync request for the projects Request sync for the sources belonging to the user's projects or specified projects POST /content/api/sourcecontrol/sync-all-requests

NameRequiredDescriptionDefault
bodyNoRequest body
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information, please refer to /content/api/about

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 mutation/safety profile is known. The description adds only the raw endpoint path; it does not disclose that this merely enqueues a request, whether repeated calls create duplicate requests, or that results are asynchronous and must be polled.

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 opening clauses restate the same idea ('Submit sync request for the projects' / 'Request sync for the sources...'), and the raw POST path contributes little. It is short, but the redundancy means not every sentence earns its place.

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

Completeness2/5

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

This is a non-idempotent POST with a nested body and no output schema, so the description should explain what comes back (a sync request id/status) and how to follow up via content_get_sync_request or content_sync_history. None of that is covered, leaving a meaningful gap for an agent invoking it.

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

Parameters3/5

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

Schema coverage is 100%, so both body.projectIds and apiVersion are documented in the schema. The description hints at the important semantic – that omitting projectIds defaults to all of the user's projects – but never states it explicitly, so it adds little 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 ('Submit sync request') and resource/scope ('the sources belonging to the user's projects or specified projects'), which distinguishes it in spirit from content_schedule_sync. It never names that sibling explicitly, so an agent must infer the difference between bulk project sync and single-source sync 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?

Implies the usage condition – bulk sync across the user's projects, optionally narrowed by projectIds – but gives no explicit when/when-not guidance and never contrasts with content_schedule_sync or points to content_get_sync_request for tracking.

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

content_sync_historyC
Read-onlyIdempotent

Get sync history Get history for files synced via source control sync GET /content/api/sourcecontrol/sync-history

NameRequiredDescriptionDefault
pageNoPage you want to retrieve (1..N)
sizeNoNumber of records per page
requestYes
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information, please refer to /content/api/about
pageRequestYes

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, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered elsewhere. The description adds no behavioral context of its own: nothing about pagination defaults, result volume, ordering, or what a sync history record contains. It essentially restates the endpoint as a raw GET path.

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 lines, front-loaded with the core action and scope, with no filler. The raw endpoint path is mildly redundant given the annotations already carry the title, but it is not wasteful enough to penalize heavily.

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 read tool with 5 parameters, a nested filter object, no output schema, and a documented pagination ambiguity, the description is far too thin. An agent gets no sense of what a returned history entry looks like or how filtering by status/contentType/projectIds narrows results.

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 60% and the description contributes zero parameter guidance. Critically, the schema exposes duplicate top-level page/size alongside a nested pageRequest with page/size/sort, and the description does nothing to say which set is authoritative or how the request filter fields interact.

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

Purpose4/5

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

The description gives a specific verb (Get) and resource (sync history), and the second line narrows scope to files synced via source control sync, which is genuinely more informative than the tool name alone. However it never distinguishes this from the many sibling content_* tools (e.g. content_get_sync_request, content_list_content_sources), so an agent must infer the boundary 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?

There is no statement of when to call this versus the adjacent sync tools such as content_get_sync_request or content_schedule_sync. The only usage signal is implicit in the phrase 'source control sync', which is not framed as an inclusion/exclusion criterion.

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

content_update_content_sourceC

Update content source PATCH /content/api/sources/{id}

NameRequiredDescriptionDefault
idYes(path)
bodyYesRequest body
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information, please refer to /content/api/about

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, idempotentHint=false and openWorldHint=true, so the description needn't re-state safety. It nonetheless adds nothing beyond the endpoint: no note on permissions, no side effects (e.g. org-wide impact of requestScopeOrg), and no statement of what part of the source is changed.

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 lines with no filler, but both are largely restatements of the tool name and HTTP route. It is succinct without being informative, 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.

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 leaves key gaps: what fields can be updated, whether the update is partial or full, and any org-sharing consequences. Annotations cover safety only, and the schema carries the rest without description help.

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

Parameters3/5

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

Schema description coverage is 100%, with id, requestScopeOrg and apiVersion all documented in the schema; baseline 3 applies. The description contributes no additional parameter meaning, such as the implications of sharing a source across the org.

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 generic verb+resource ('Update content source') and adds the PATCH path, so an agent can tell it mutates an existing source by id. However, it does not say which aspects of the source are updatable or how it differs from the many sibling content_* tools 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?

There is no when-to-use guidance, no mention of prerequisites, and no reference to alternatives such as content_create_content_source or content_get_content_source. The HTTP path is the only implied context.

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

deployment_action_deployment_requestA

Submit action on requests. Allowable values: cancel, dismiss. Cancel can be submitted on In-progress requests and Dismiss can be submitted on Failed requests. POST /deployment/api/requests/{requestId}

NameRequiredDescriptionDefault
actionYes
requestIdYes(path)

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, and destructiveHint=false. The description adds useful state preconditions for cancel and dismiss, but it does not describe side effects, reversibility, authorization requirements, or response behavior beyond the HTTP endpoint.

Agents need to know what a tool does to the world before 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 every sentence contributes: it states the operation, allowed values, state constraints, and endpoint. There is no redundant or filler language.

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 mutation tool with annotations covering the safety profile and no output schema, the description provides the essential operational context: allowed actions, valid request states, and the endpoint. It is not fully exhaustive about side effects or response handling, but it is sufficient to invoke correctly.

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

Parameters3/5

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

Schema coverage is 50%, and the action parameter already has an enum in the schema. The description adds meaning by tying each allowed action to a request state, but requestId is only referenced through the endpoint path and gains little extra semantic detail.

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: submit an action on requests, with allowed values cancel and dismiss. It includes the endpoint path, but it does not explicitly differentiate this tool from sibling submit-action tools such as deployment_submit_deployment_action_request or deployment_submit_resource_action_request.

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 state-based conditions: cancel applies to In-progress requests and dismiss applies to Failed requests. It does not name alternative tools or explain when to choose this request-level action over sibling deployment/resource action tools, but the action-specific context is explicit.

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

deployment_check_deployment_nameA
Read-onlyIdempotent

[DEPRECATED] Check if a deployment exists. Returns OK if a deployment with the supplied name exists. GET /deployment/api/deployments/names/{name}

NameRequiredDescriptionDefault
nameYesDeployment name (path)

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and non-destructive, so safety is covered. The description adds the concrete endpoint and, importantly, tells the caller what a successful call returns ('OK if a deployment with the supplied name exists') – useful because 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.

Conciseness4/5

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

Three short lines, deprecation front-loaded, then behavior, then route. No filler; the only waste is repeating the resource in the second sentence.

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

Completeness4/5

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

For a one-parameter existence check with no output schema, the description supplies the one thing structured data omits – the return semantics ('OK'). It is slightly incomplete in not routing away from itself despite being deprecated.

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

Parameters3/5

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

With a single parameter at 100% schema coverage, the schema already documents 'name' as the deployment name (path). The description only restates 'supplied name', adding no format or path-vs-display-name nuance 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 (check whether a deployment exists) and even names the route, so the operation is unambiguous. It does not distinguish itself from the near-identical sibling deployment_check_deployment_name_exists, which is the one gap.

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 [DEPRECATED] marker implies the agent should prefer something else, but the description never names the replacement or states the condition under which this one is still appropriate. Usage is only implied, not guided.

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

deployment_check_deployment_name_existsB
Read-onlyIdempotent

Check if a deployment exists. Returns OK if a deployment with the supplied name exists. GET /deployment/api/deployments/names

NameRequiredDescriptionDefault
nameYesDeployment name

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 the useful return semantics ("Returns OK if a deployment with the supplied name exists") plus the underlying GET endpoint, though it never says what an agent sees on the negative path (404, error, or empty result).

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, front-loaded sentences with no filler; the purpose is stated first and the return condition second. The trailing raw endpoint line largely duplicates the annotation title and is the only 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?

No output schema exists, so the description must carry return-value semantics; it does state the OK case but leaves the not-found case and the response shape undefined. For a trivial one-parameter existence check this is minimally adequate but not fully complete.

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

Parameters3/5

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

There is a single parameter and schema description coverage is 100% ('Deployment name'), so the schema already does the work. The description's mention of 'the supplied name' adds no format, scoping, or naming-convention detail beyond it.

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

Purpose4/5

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

The description states a specific verb and resource (check whether a deployment with a given name exists) and is clearly narrower than the sibling getters like deployment_get_deployment_by_id or deployment_get_deployments. It doesn't explicitly contrast with the similarly named deployment_check_deployment_name sibling, 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?

There is no statement of when to use this existence check versus alternatives such as deployment_get_deployment_by_id or deployment_check_deployment_name, nor any prerequisite or ordering guidance. Usage is only implied by the one-line purpose.

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

deployment_create_resourceB

Create a new resource. Returns the resource request response. POST /deployment/api/resources

NameRequiredDescriptionDefault
bodyYesThe resource spec to create a resource.

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, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds that it returns the 'resource request response' and names the POST endpoint, hinting that creation yields a request object, but it says nothing about whether the call is asynchronous, what happens on duplicate names, or what the 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?

Three short lines, front-loaded with the creating verb, with no filler. The raw endpoint line is slightly redundant with the annotation title but still compact and useful.

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 body object, no output schema, and real sibling competition among deployment resource endpoints, the description is too thin. It should clarify the async/request nature of the operation, the expected response shape, and any preconditions, none of which are 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% and the single body parameter's nested fields (name, type, projectId, properties, deploymentId) are all documented in the schema. 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.

Purpose4/5

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

States a concrete verb and resource ('Create a new resource') plus the underlying endpoint, so the agent knows it is a creation operation. It does not distinguish what a 'resource' is here versus siblings such as deployment_get_resources or deployment_post_resources_by_resource_id_requests, leaving the domain scope slightly ambiguous.

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 the other deployment_resource/deployment request tools, no stated prerequisites (e.g., required project or deployment context), and no mention of alternatives. The agent must infer usage from the name alone.

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

deployment_delete_deploymentB
DestructiveIdempotent

Delete a deployment. Effectively triggers a Delete Day2 operation Deletes the deployment with the supplied ID, cleans up the associated resources from the Cloud Provider. DELETE /deployment/api/deployments/{deploymentId}

NameRequiredDescriptionDefault
forceDeleteNoGuarantees the deployment's deletion and all related resources from VCF Automation. In some situations, this may leave provisioned infrastructure resources behind. Please ensure you remove them manually in such cases.
deploymentIdYesDeployment ID (path)

TDQS

B3.3/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 still adds real value beyond that by disclosing what gets destroyed — the deployment plus its associated Cloud Provider resources — which is exactly the kind of blast-radius context annotations do not convey. It stops short of saying whether the call is asynchronous or returns a request to track, which is the main remaining gap.

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, which is good, but the second sentence restates the first ('Delete a deployment' / 'Deletes the deployment with the supplied ID') and the phrase 'Effectively triggers a Delete Day2 operation' is internal jargon that adds no actionable meaning 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?

For a destructive, open-world mutation with no output schema, the description covers what is deleted but omits what the caller gets back (a request/task handle for an async deletion?), required permissions, and how this differs from the iaas_ and onboarding_ delete variants. Adequate to invoke, not adequate to invoke confidently in a crowded namespace.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 forceDelete parameter is already fully documented in the schema including its caveat about leaving provisioned infrastructure behind. The description only echoes 'the supplied ID' and adds no syntax, format, or interaction detail (e.g., whether forceDelete is required for stuck deletions), so baseline 3 applies.

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

Purpose4/5

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

The description states a specific verb and resource ('Delete a deployment... with the supplied ID') and the underlying endpoint, so the action is unambiguous. However, the sibling list contains closely competing tools (iaas_delete_deployment, onboarding_delete_deployment_by_id) and the description makes no attempt to distinguish this deployment-API delete from those, leaving the agent to 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 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 this tool over the similarly named delete siblings, nor on when forceDelete should be set versus omitted. The only usage signal is implicit — you supply a deployment ID and it is deleted — with no prerequisites, exclusions, or pre-conditions (e.g., must the deployment be powered off first?).

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

deployment_delete_resourceB
DestructiveIdempotent

Delete resource associated with a deployment. Effectively triggers a Delete Day2 operation. Deletes the resource with the specified ID and attempts to delete resource from the Cloud Provider. DELETE /deployment/api/deployments/{deploymentId}/resources/{resourceId}

NameRequiredDescriptionDefault
resourceIdYesResource ID (path)
deploymentIdYesDeployment ID (path)

TDQS

B3.4/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, and the description still adds real context: this fires a Day 2 operation and attempts deletion at the Cloud Provider, hinting at external propagation and possible partial failure. It does not disclose whether the call is asynchronous or returns a request handle, so it is 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?

Three short sentences with the action and consequence front-loaded, no filler. The trailing raw route restates the annotation title verbatim, which is mild redundancy but harmless orientation.

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, open-world operation with no output schema, the description leaves out what a successful call returns (request ID vs. synchronous result) and what happens to dependent resources or on cloud-provider failure. Annotations cover the safety profile, but an agent still lacks the response model.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 (deploymentId, resourceId, both UUID path params) are documented in the schema. The description adds no further semantics such as whether resourceId must belong to that deployment or what happens on mismatch, 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 (delete a resource scoped to a deployment) and clarifies it is not the whole deployment, distinguishing it implicitly from deployment_delete_deployment and deployment_create_resource. It never names 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 deployment_delete_deployment, deployment_submit_resource_action_request, or the iaas_* delete tools, and no prerequisites (approvals, project rights, resource state) are given. 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.

deployment_get_billing_metricsC
Read-onlyIdempotent

Get Billing Metrics. Get billing metrics for current org. GET /deployment/api/billing-metrics

NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/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 only the raw REST path (GET /deployment/api/billing-metrics), with no disclosure of aggregation window, default time range, or response shape for a metrics 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 very short lines, front-loaded with the action and scope. The first line duplicates the tool name and adds nothing, but total length is minimal and the endpoint line is cheap context.

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

Completeness2/5

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

No output schema exists, so the description must carry the burden of explaining what a 'billing metric' looks like — and it does not: no time window, no units, no dimensions, no pagination. For a metrics retrieval tool this leaves the agent unable to predict the result or judge whether it answered the question.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4. The phrase 'for current org' usefully confirms that org scope comes from the session context rather than an argument, which is the only semantic gap a zero-param tool could have.

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 billing metrics) is stated, and 'for current org' adds a scope qualifier that separates it from the resource-usage metrics siblings. However, the first line merely restates the tool name, and the description never says what kind of billing data (cost, spend, chargeback, period) is returned, so the purpose stays at a surface level.

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 the many metrics_get_resource_usage_metrics* and deployment_get_deployment_expense_history_by_id siblings. The only usage signal is implicit in 'current org', which hints that no org identifier is needed.

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

deployment_get_deployment_actionB
Read-onlyIdempotent

Fetch deployment action. Returns an action for the deployment specified by its Deployment ID and Action ID. GET /deployment/api/deployments/{deploymentId}/actions/{actionId}

NameRequiredDescriptionDefault
actionIdYesAction ID (path)
deploymentIdYesDeployment ID (path)

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, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds only that a single action object is returned, with no note on auth requirements, error behavior when an ID is unknown, or whether the action may be stale. 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?

Three short, front-loaded lines with no filler. The final line repeats the HTTP path already present in the annotation title, which is mild redundancy but not 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 simple read-by-ID tool with full schema coverage, presented annotations, and no output schema, the minimum needed to invoke it is present. However, since no output schema exists, one line about what the returned action contains (or that it mirrors the entries from deployment_get_deployment_actions) would materially help an agent use 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%, so both parameters are already documented with type/format (deploymentId is a uuid, actionId a string). The description restates them as 'Deployment ID and Action ID' without adding value such as where to obtain an actionId or that it comes from the deployment actions listing — 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 gives a specific verb+resource ('Fetch deployment action') and clarifies it is the single-action form scoped by Deployment ID and Action ID. This is enough to separate it from the plural list sibling deployment_get_deployment_actions, though it never names or contrasts that 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 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 deployment_get_deployment_actions, deployment_get_resource_action, or deployment_submit_deployment_action_request. The only implied condition is 'you already have both IDs', which the agent must infer from the path template.

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

deployment_get_deployment_actionsA
Read-onlyIdempotent

Fetch deployment available actions. Returns the complete list of available actions that can be performed on a given deployment. GET /deployment/api/deployments/{deploymentId}/actions

NameRequiredDescriptionDefault
deploymentIdYesDeployment ID (path)

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, openWorldHint=true, and destructiveHint=false. The description adds that the result is a 'complete list' and includes the underlying GET endpoint, but does not disclose pagination, response shape, or authorization 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 short and front-loads the core purpose before explaining the return and endpoint. The endpoint line duplicates the annotation title and 'Fetch ... Returns the complete list' is slightly repetitive, but the overall structure is efficient.

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

Completeness4/5

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

For a simple read-only tool with full schema coverage and rich annotations, the description gives enough context to select and call it. It does not explain response structure or pagination, but no output schema exists and annotations already establish the safety profile.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 deploymentId documented as 'Deployment ID (path).' The description does not add format, UUID, or example details 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.

Purpose4/5

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

The description states a specific verb ('Fetch'), resource ('deployment available actions'), and scope ('for a given deployment'), so the tool's purpose is clear. It does not explicitly distinguish itself from siblings such as deployment_get_deployment_action or deployment_get_resource_actions, leaving the agent to infer 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 Guidelines3/5

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

Usage is implied by 'complete list of available actions that can be performed on a given deployment,' but there is no explicit guidance on when to choose this tool over similar siblings like deployment_get_deployment_action or deployment_get_resource_actions. No exclusions or alternatives are provided.

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

deployment_get_deployment_by_idC
Read-onlyIdempotent

Fetch a specific deployment. Returns the deployment with the supplied ID. GET /deployment/api/deployments/{deploymentId}

NameRequiredDescriptionDefault
expandNoThe expanded details of the requested comma separated objects. 'resources' option returns resources with all properties. Ex. blueprint, project
deletedNoRetrieves the deployment, includes soft-deleted deployments that have not yet been completely deleted.
deploymentIdYesDeployment ID (path)
expandProjectNoThe 'project' field of the deployment will be retrieved.
expandResourcesNoThe 'resources' field of the deployment will be retrieved.
expandLastRequestNoExpands deployment last request.

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, and non-destructive, so the safety profile is fully covered. The description adds only the raw GET path, which repeats the annotation title, and says nothing about expand semantics, soft-deleted deployments, pagination, or error behavior for a missing ID.

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, but sentences two and three are largely redundant restatements of sentence one and the annotation title. No wasted length overall, but also no information den

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 could helpfully say what a returned deployment contains and how expand affects the payload; it does not. Given fully documented parameters and safety annotations, the remaining gap is modest but real.

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

Parameters3/5

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

Schema description coverage is 100%, with each of the six parameters (including the expand enum and the deleted/expandProject/expandResources/expandLastRequest flags) documented in the schema. The description contributes no additional parameter meaning, 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 ("Fetch a specific deployment") and clarifies single-item scope by ID. It does not distinguish itself from near-identical siblings such as iaas_get_single_deployment, onboarding_get_deployment_by_id, or deployment_get_deployments, so an agent must inspect schemas to pick the right one.

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 the many other deployment retrieval tools (list vs. by-id vs. onboarding variants). No prerequisites, no exclusions, no alternatives named.

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

deployment_get_deployment_expense_history_by_idC
Read-onlyIdempotent

Fetch a specific deployment's expense history. Returns the deployment expense history with the supplied ID. GET /deployment/api/deployments/{deploymentId}/expense-history

NameRequiredDescriptionDefault
toNoThe timestamp until when history is requested. Should be of ISO_INSTANT format.
fromNoThe timestamp from when history is requested. Should be of ISO_INSTANT format.
intervalNoThe interval of the expense history. Should be one of daily, weekly or monthly.
deploymentIdYesDeployment ID (path)

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 and openWorldHint, so safety is covered. The description adds nothing behavioral beyond repeating the HTTP path: no word on default time window, how interval buckets the data, or whether results are paginated or aggregated.

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 second sentence merely restates the first (returns the expense history with the supplied ID) and the third is just the endpoint template. Two of three sentences carry little unique 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?

A read-only lookup with fully documented parameters and annotations covering safety needs little prose, but it never addresses the practical questions an agent would have: what the default range is, what an interval produces, and what the payload shape looks like 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?

Schema description coverage is 100%, so from, to, interval and deploymentId are already documented with formats and an implicit enum for interval. The description mentions only the deploymentId via the path template and adds no new semantics, 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 (fetch a deployment's expense history) and names the path parameter that identifies it. It does not differentiate from any sibling, but the sibling list contains no other expense-history tool, so the risk of confusion is low.

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 call this versus other deployment read tools (e.g. deployment_get_deployment_by_id, deployment_get_billing_metrics), no prerequisites, and no note that from/to/interval scope the result.

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

deployment_get_deployment_filter_by_idB
Read-onlyIdempotent

Returns the Deployment filter with the supplied ID. GET /deployment/api/deployments/filters/{filterId}

NameRequiredDescriptionDefault
topNoNumber of records you want
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
searchNoSearch string for filters
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
filterIdYesFilter Id (path)
projectsNoA comma-separated list. Results must be associated with one of these project IDs.

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 and the description's main added value is naming the concrete endpoint. It says nothing about what a filter object contains, whether a missing/unknown filterId errors or returns empty, or how the pagination parameters interact with a single-resource fetch.

Agents need to know what a tool does to the world before 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 filler, with the resource and identifying argument front-loaded and the endpoint path as supporting detail. Nothing here could be trimmed without losing 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 single-resource fetch with a fully documented schema and no output schema, the definition is minimally sufficient to call the tool. However, the presence of eight non-required query parameters on a by-ID lookup is unexpected and the description offers no framing for them, leaving a real semantic 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 all nine parameters, including the required filterId path parameter, are already documented in structured form; baseline 3 applies. The description adds no clarification beyond repeating that filterId identifies the filter, and notably does not explain why top/page/size/skip/sort/search/orderby/projects appear on a by-ID single-item retrieval.

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 ('Returns the Deployment filter') plus the identifying key ('supplied ID'), and includes the underlying REST path, which pins down the resource unambiguously. It does not explicitly contrast with the list sibling deployment_get_deployment_filters, so the agent must infer the by-ID vs. enumerate distinction 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 use this versus deployment_get_deployment_filters or deployment_get_resource_filter_by_id, and no prerequisites such as needing a filter ID obtained from the list endpoint. The only implicit signal is 'with the supplied ID', which is thin guidance for an agent choosing among several filter tools.

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

deployment_get_deployment_filtersC
Read-onlyIdempotent

Returns the Deployment filters in context of given user. GET /deployment/api/deployments/filters

NameRequiredDescriptionDefault
deletedNoThis flag can be used to get only the filter types applicable to deleted deployments.
excludeValuesNoExcludes values pertaining to the filter. This flag can be used to quickly get all the filter types without any content.

TDQS

C2.5/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's only addition is the raw HTTP route, which the annotation title already contains. It says nothing about what a 'filter' object is, whether results are scoped to the calling user, or what the 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.

Conciseness3/5

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

It is short and front-loaded, but the second sentence merely repeats the endpoint path already present in the annotation title, so it does not earn its place. No verbosity problem, just low information density.

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 convey what is returned (the shape/contents of a deployment filter list), and it does not. For a read tool whose entire value is the returned filter metadata, an agent is left guessing what it will receive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 optional flags (deleted, excludeValues) are fully documented in the schema, so the baseline of 3 applies. The description adds no further meaning about how these flags affect the returned filter set.

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 resource (Deployment filters) but 'filters' is never defined, and there is no differentiation from siblings such as deployment_get_resource_filters or deployment_get_deployment_filter_by_id. 'In context of given user' suggests a user scope that no parameter exposes, leaving the actual purpose somewhat vague.

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

Usage Guidelines2/5

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

There is no statement of when to call this versus the closely-named sibling tools, and no prerequisites or exclusions. The only guidance is the implicit 'read' nature carried by the annotations.

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

deployment_get_deployment_requestsC
Read-onlyIdempotent

Fetch deployment requests. Returns the requests for the deployment. GET /deployment/api/deployments/{deploymentId}/requests

NameRequiredDescriptionDefault
topNoNumber of records you want
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
searchNoGiven string should be part of a searchable field of a deployment level request
deletedNoRetrieves the soft-deleted requests that have not yet been completely deleted.
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
deploymentIdYesDeployment ID (path)
inprogressRequestsNoRetrieves the requests that are currently in-progress for a deployment. In case of a false value the param is ignored.

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, destructiveHint=false and openWorldHint, covering the safety profile. The description adds nothing further — no note on default pagination size, whether soft-deleted records appear by default, or the shape of the returned collection — so it contributes essentially no 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?

Purpose is front-loaded in the first sentence, but the second sentence restates it and the third is a raw GET path that duplicates the annotation title. It is short, but a portion of the content is redundant rather than earning 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 10-parameter read tool with no output schema, the schema plus annotations carry most of the weight, and the description is minimally sufficient to identify the operation. It leaves gaps around result ordering defaults, soft-delete behavior and what the returned request objects 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 all ten parameters, including pagination (page/size/skip/top), sort, search, deleted and inprogressRequests, are documented in the schema. The description adds no parameter meaning beyond that, 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 ('Fetch deployment requests. Returns the requests for the deployment') and anchors it to a REST endpoint, so the operation is unmistakable. It does not, however, distinguish itself from nearby siblings such as deployment_get_request, deployment_get_request_events, or deployment_list_resource_requests.

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 list endpoint versus the single-request or request-events siblings, and no mention of prerequisites like a valid deployment context. The agent must infer selection 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.

deployment_get_deployment_resourcesB
Read-onlyIdempotent

Fetch resources associated with a deployment. Returns a paginated list of resources corresponding to the deployment with the supplied ID. GET /deployment/api/deployments/{deploymentId}/resources

NameRequiredDescriptionDefault
topNoNumber of records you want
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
tagsNoA comma-separated list. Results must be associated with one of these tags
namesNoResults must have exactly these resource names.
expandNoThe expanded details of the requested comma separated objects. Ex. currentRequest
filterNoA subset of records that satisfy the given predicate expression
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
deploymentIdYesDeployment ID (path)
resourceTypesNoA comma-separated list. Results must be associated with one of these resourceType Names.

TDQS

B3.4/5.0
Behavior3/5

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

The annotations already disclose read-only, idempotent, open-world, and non-destructive behavior. The description adds that results are paginated and includes the underlying endpoint, but it does not provide further behavioral context such as permission requirements or response characteristics.

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

Conciseness4/5

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

The description is front-loaded and only a few sentences long. The endpoint line slightly duplicates the annotation title, but overall it remains efficient and easy to scan.

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 12-parameter list tool with no output schema, the description gives only a minimal return-value statement: a paginated list of resources. It is sufficient to call the tool because the input schema is fully documented, but it does not explain response structure or filtering behavior beyond the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so all 12 parameters are already documented in the input schema. The description only mentions the deployment ID path parameter and adds no additional parameter semantics 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: fetching resources associated with a deployment, returned as a paginated list. It is clear enough to distinguish from generic resource tools, but it does not explicitly name sibling alternatives such as deployment_get_resources.

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 deployment ID and the phrase 'associated with a deployment,' so an agent can infer when to use it. However, there is no explicit guidance on when to prefer it over related deployment/resource tools or when not to use it.

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

deployment_get_deploymentsB
Read-onlyIdempotent

Fetch all deployments. Returns a paginated list of deployments. GET /deployment/api/deployments

NameRequiredDescriptionDefault
idsNoA comma-separated list. Only deployments with these IDs will be included in the results.
topNoNumber of records you want
nameNoResults must have exactly this name.
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
tagsNoA comma-separated list. Results must be associated with one of these tags
expandNoThe expanded details of the requested comma separated objects. 'resources' option returns resources with all properties. Ex. blueprint, project
filterNoA subset of records that satisfy the given predicate expression
searchNoGiven string should either be part of a searchable field in a deployment or one of deployment's resources.
statusNoA comma-separated list. Results must be associated with one of these statuses.
deletedNoRetrieves only soft-deleted deployments that have not yet been completely deleted.
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
ownedByNoA comma-separated list. Results must be associated with one of these owners
projectsNoA comma-separated list. Results must be associated with one of these project IDs.
createdAtNoComma-separated start and end dates where start date or end date is optional (e.g. [2020-12-01T08:00:00.000Z,2020-12-11T23:59:00.000Z], [2020-11-03T08:00:00.000Z,], [,2020-11-08T08:00:00.000Z])
expiresAtNoComma-separated start and end dates where start date or end date is optional (e.g. [2020-12-01T08:00:00.000Z,2020-12-11T23:59:00.000Z], [2020-11-03T08:00:00.000Z,], [,2020-11-08T08:00:00.000Z])
cloudTypesNoA comma-separated list. Results must be associated with one of these endpoint Types
requestedByNoA comma-separated list. Results must be associated with one of these requesters
cloudAccountsNoA comma-separated list. Results must be associated with one of these cloud accounts.
expandProjectNoThe 'project' field of each resulting deployment will be retrieved.
lastUpdatedAtNoComma-separated start and end dates where start date or end date is optional (e.g. [2020-12-01T08:00:00.000Z,2020-12-11T23:59:00.000Z], [2020-11-03T08:00:00.000Z,], [,2020-11-08T08:00:00.000Z])
resourceTypesNoA comma-separated list. Results must be associated with one of these resourceType Names.
expandResourcesNoThe 'resources' field of each resulting deployment will be retrieved.
expandLastRequestNoExpands deployment last request.
lastRequestStatusNoA comma-separated list of last request statuses. Allowed values are: ABORTED, APPROVAL_PENDING, APPROVAL_REJECTED, FAILED, INPROGRESS, PENDING and SUCCESSFUL. Results must be associated with one of these last request statuses.

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. The description adds only that results are paginated and repeats the GET endpoint, without explaining filtering, default sorting, soft-deleted behavior, or what 'all' includes.

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 purpose. The final 'GET /deployment/api/deployments' sentence largely repeats the annotation title and does not add much, but the overall text 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?

The description is minimally adequate given the rich schema and annotations, but for a 27-parameter listing tool with no output schema it does not explain sibling scope differences or the shape of the paginated response. It leaves the agent to rely almost entirely on 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% across 27 parameters, so the schema carries the full burden of parameter meaning. The description adds no parameter-specific guidance, which meets the baseline for a fully documented 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 ('Fetch all deployments') and adds that the result is a paginated list. However, it does not explicitly distinguish this from sibling tools such as deployment_get_deployments_for_project, so the agent must infer the scope difference from 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?

The description provides no guidance on when to use this tool versus alternatives. There is no mention of deployment_get_deployments_for_project or when project-scoped listing would be more appropriate.

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

deployment_get_deployments_for_projectB
Read-onlyIdempotent

Returns a count of deployments using the project. GET /deployment/api/projects/{projectId}/deployment-count

NameRequiredDescriptionDefault
projectIdYesProject ID (path)

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, so the safety profile is covered. The description adds only that the return value is a count, which is useful but minimal; it does not explain count semantics, such as whether it includes deleted or all deployment states.

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 return value before showing the endpoint. The endpoint line is somewhat redundant with the annotation title but still efficient for a small tool.

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

Completeness4/5

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

For a one-parameter read-only count operation with fully described schema and safety annotations, the description is largely sufficient. A small gap remains around what exactly is counted, but no output schema exists and the core call behavior is clear.

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

Parameters3/5

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

Schema description coverage is 100%, and the single projectId parameter is documented in the schema as the project path ID. The description reinforces this through the endpoint template but adds no extra meaning beyond the schema.

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

Purpose4/5

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

The description states a specific outcome: it returns a count of deployments associated with a project, and includes the exact endpoint. It is clear what the tool does, although it does not explicitly contrast itself with deployment_get_deployments or other deployment 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?

There is no guidance on when to use this count endpoint versus deployment_get_deployments, deployment_get_deployment_by_id, or iaas_get_deployments. The only implied usage is that the caller has a projectId and wants a count.

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

deployment_get_event_logsC
Read-onlyIdempotent

Fetch Event logs. Returns the logs for an event. GET /deployment/api/requests/{requestId}/events/{eventId}/logs

NameRequiredDescriptionDefault
eventIdYesEvent ID (path)
sinceRowNoA positive row number from which to show logs.
requestIdYesRequest ID (path)

TDQS

C2.8/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 safety and repeatability are covered structurally. The description contributes the REST endpoint path, which clarifies the resource hierarchy, but adds nothing about log volume, truncation, or paging behavior despite a sinceRow parameter implying pagination.

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 first two sentences are redundant with each other, and the raw GET path takes a line that could have carried the missing disambiguation instead. No sentence is harmful, but one 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?

A simple read-only tool with full schema coverage and solid annotations, so the core call path is inferable. However, with no output schema, the description should say something about what a "log" entry looks like or how the result is bounded — "Returns the logs for an event" gives the agent no expectation of 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%, so all three parameters including sinceRow are documented in the schema itself. The description only echoes requestId and eventId via the path template and says nothing about sinceRow's semantics beyond what the schema states — baseline 3 applies when the schema does the work.

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 and resource are stated ("Fetch Event logs"), but the second sentence, "Returns the logs for an event," is essentially a restatement of the first, so no additional precision is gained. The HTTP path reveals the request/event hierarchy, yet the description never distinguishes this from the near-identical sibling deployment_get_event_logs_content, leaving the agent unable to tell which log endpoint 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 guidance on when to use this versus deployment_get_event_logs_content or deployment_get_request_events, both of which return related event data. No prerequisites, no ordering, no exclusions — the agent must infer the choice 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.

deployment_get_event_logs_contentB
Read-onlyIdempotent

Fetch Event logs content as a file. Returns the log file for an event. GET /deployment/api/requests/{requestId}/events/{eventId}/logs/download

NameRequiredDescriptionDefault
eventIdYesEvent ID (path)
requestIdYesRequest ID (path)

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 safety is covered. The description adds the genuinely useful fact that the response is a downloadable file rather than JSON, but says nothing about content type, size, or what happens when logs are unavailable.

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 lines, front-loaded with the action and return type. The second sentence ('Returns the log file for an event') largely restates the first, but overall there is almost no 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?

With no output schema, the description does the right thing by telling the agent the result is a file. It is still thin for a binary-download endpoint: nothing on format, redirect behavior, or how the file should be consumed by the caller.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 as UUID path values, so the schema carries the load. The description adds no meaning beyond the endpoint template already reflected in the annotations title.

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 ('Fetch Event logs content as a file') and the file-return framing implicitly distinguishes it from the sibling deployment_get_event_logs, which lists log entries. It does not name that sibling explicitly, so the differentiation is only inferential.

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 — call this when you need the log artifact itself rather than log metadata — but the description never states when to use it versus deployment_get_event_logs or deployment_get_request_events, nor any prerequisites (valid request/event pair, retention window).

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

deployment_get_requestC
Read-onlyIdempotent

Get the Request. Returns the request with the given ID. GET /deployment/api/requests/{requestId}

NameRequiredDescriptionDefault
requestIdYesRequest ID (path)

TDQS

C2.4/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 safety is fully covered. The description adds only the raw endpoint path and says nothing about error behavior (e.g. what an unknown requestId returns) or the shape of the returned request object.

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 all three lines say the same thing (name, then single-ID fetch, then the path). The endpoint line is the only one carrying distinct 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 one-parameter read tool with full annotations and complete schema coverage, the description is minimally sufficient to invoke it. It is not sufficient to disambiguate the heavily overlapping "request" siblings or to tell the agent what the returned request contains.

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

Parameters3/5

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

Schema coverage is 100% with a single required requestId documented as "Request ID (path)". The description's "with the given ID" adds no semantics 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.

Purpose2/5

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

"Get the Request" restates the tool name, and "Returns the request with the given ID" restates the parameter. Nothing explains what a "request" is in this domain, which matters because siblings cover blueprint requests, approval requests, and resource requests. The only added signal is the REST path, which is a restatement rather than a clarification.

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 deployment_get_deployment_requests (the list form), deployment_get_request_events, or approvals_get_work_item_by_deployment_request. The agent must infer selection purely from the name.

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

deployment_get_request_eventsB
Read-onlyIdempotent

Fetch Request events. Returns all the events for a request. GET /deployment/api/requests/{requestId}/events

NameRequiredDescriptionDefault
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
requestIdYesRequest ID (path)

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 that it returns ALL events for a request (implying no filtering), which is useful, but says nothing about pagination behavior, volume, or ordering beyond what the sort/page params imply.

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, front-loaded lines with no filler; the purpose appears first and the endpoint last. The endpoint line is slightly redundant with the title 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?

For a read-only tool whose annotations cover safety and whose schema covers all parameters, the description is adequate. But with no output schema, the return shape ('all the events') is barely sketched, and there is no differentiation from sibling event-log tools, leaving gaps an agent must guess at.

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

Parameters3/5

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

Schema description coverage is 100%, so page, size, sort, and requestId are already fully documented in the schema. The description adds no extra parameter meaning, 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 ('Fetch') and resource ('Request events' for a given requestId), which is clear on its own. However, it does not distinguish itself from nearby siblings like deployment_get_event_logs or deployment_get_user_events, leaving the agent to infer 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?

The description gives no when-to-use guidance, no prerequisites, and no mention of alternatives such as deployment_get_event_logs. The endpoint path is the only contextual hint, and it doesn't help select between similar event-related tools.

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

deployment_get_resource_actionC
Read-onlyIdempotent

Fetch resource action. Returns an action for the resource specified by its Resource ID and Action ID. GET /deployment/api/deployments/{deploymentId}/resources/{resourceId}/actions/{actionId}

NameRequiredDescriptionDefault
actionIdYesAction ID (path)
resourceIdYesResource ID (path)
deploymentIdYesDeployment ID (path)

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 fully covered. The description adds nothing beyond the endpoint path – no auth requirements, no behavior when the action/resource does not exist, no note on whether the action's runnable state is included.

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, purpose front-loaded in the first line, no filler. The trailing GET path largely restates the schema's path parameters, so it is slightly redundant but not 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?

For a simple read-by-ID with a fully documented schema and complete safety annotations, this is minimally adequate. It lacks any explanation of what an 'action' represents in this deployment/resource hierarchy, which is the main gap an agent would care about.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 every parameter is documented as a path parameter, so the baseline is 3. The description mentions Resource ID and Action ID and the URL template implies deploymentId as the container, but it contributes no additional semantics such as formats or constraints.

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: fetch/return 'an action' for a resource identified by Resource ID and Action ID. The singular 'an action' implicitly distinguishes it from the sibling list tool deployment_get_resource_actions, but the description never names that alternative. Clear purpose, weak sibling differentiation.

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

Usage Guidelines2/5

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

No indication of when to use this versus deployment_get_resource_actions, deployment_get_deployment_action, or deployment_get_resources_by_resource_id_actions_by_action_id. No prerequisites or exclusions are stated; the agent must infer usage from the name alone.

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

deployment_get_resource_actionsB
Read-onlyIdempotent

Fetch available resource actions. Returns the complete list of available actions that can be performed on a given resource. GET /deployment/api/deployments/{deploymentId}/resources/{resourceId}/actions

NameRequiredDescriptionDefault
resourceIdYesResource ID (path)
deploymentIdYesDeployment ID (path)

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, so safety is covered. The description adds one genuinely useful behavioral detail — that it returns the *complete* list rather than a filtered or paginated page — but says nothing about return shape, whether actions are filtered by state, or authorization 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?

Short and front-loaded, but sentences 1 and 2 are near-duplicates ('Fetch available resource actions' / 'Returns the complete list of available actions'), so one of them does no work. The raw endpoint path is the only added information and could have been replaced by the disambiguation this description actually lacks.

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 two-param read tool with full schema coverage and rich annotations, the description is adequate but thin: no output schema exists, and the description never indicates what a returned 'resource action' contains (id, name, form?) or whether the caller can then invoke deployment_submit_resource_action_request. The missing sibling disambiguation is the larger omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 UUID-typed with '(path)' notes, so the schema carries the load. The description adds only the relational framing ('actions on a given resource'), not any semantics about what a valid resourceId resolves to or error behavior for unknown IDs.

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: fetching the complete list of actions available on a given resource, plus the underlying GET endpoint for provenance. The word 'complete list' implicitly contrasts with the singular deployment_get_resource_action, but it never names that sibling nor the near-identical deployment_get_resources_by_resource_id_actions, so an agent still has to guess between 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?

'can be performed on a given resource' gives a faint hint that both a deploymentId and resourceId must already be known, but there is no explicit when-to-use, no when-not, and no reference to any alternative. Given a sibling list containing several tools whose names also combine resources and actions, this is a real routing gap.

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

deployment_get_resource_by_idB
Read-onlyIdempotent

Fetch resource associated with a deployment. Returns the resource with the specified ID that is correlated with the supplied deployment. GET /deployment/api/deployments/{deploymentId}/resources/{resourceId}

NameRequiredDescriptionDefault
expandNoThe expanded details of the requested comma separated objects. Ex. currentRequest
resourceIdYesResource ID (path)
deploymentIdYesDeployment ID (path)

TDQS

B3.2/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 open-world, so safety profile is covered. The description adds the useful correlation requirement, but says nothing about what happens when the resource is not correlated with the deployment (error vs. empty) or about the 'expand' side effects on response size — meaningful gaps for a lookup tool with 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.

Conciseness4/5

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

Short and front-loaded — the purpose is in the first sentence. There is mild redundancy between sentence one and two, and the raw GET path repeats the annotation title, but overall it is efficiently sized.

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 bears responsibility for describing the return value; 'returns the resource with the specified ID' is minimal and doesn't hint at the resource object's shape or the effect of 'expand'. Adequate for a simple read, but thin for a tool whose only delivery is a returned payload.

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

Parameters3/5

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

Schema coverage is 100% and all three parameters carry descriptions, so the schema does the documentation work. The description contributes only the implied path-parameter relationship, adding essentially nothing about the 'expand' options (currentRequest, inprogressRequests) beyond what the schema 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?

States a specific verb ('Fetch') and resource ('resource associated with a deployment'), and adds the key constraint that the resource must be correlated with the supplied deployment. However, in a sibling set dense with resource-fetching tools (deployment_get_resources_by_resource_id, deployment_get_resources, onboarding_get_resource_by_id), it never explains how this differs from those.

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

Usage Guidelines2/5

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

No guidance on when to use this versus the many overlapping deployment/resource retrieval tools, and no prerequisites (e.g., that the caller must already know both UUIDs). The agent must infer selection 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.

deployment_get_resource_filter_by_idA
Read-onlyIdempotent

Returns the Resource filter with the supplied ID. GET /deployment/api/resources/filters/{filterId}

NameRequiredDescriptionDefault
topNoNumber of records you want
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
originNoA comma-separated list. Only Resources with the origin provided will be included in the results.
searchNoSearch string for filters
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
filterIdYesFilter Id (path)
projectsNoA comma-separated list. Results must be associated with one of these project IDs.
resourceTypesNoA comma-separated list. Only Resources with these types will be included in the results.

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 covered. The description adds the raw endpoint path but nothing about return format, pagination behavior, or error cases (e.g., unknown filterId).

Agents need to know what a tool does to the world before 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, zero waste, purpose front-loaded ahead of the endpoint path. Every element earns its place.

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

Completeness3/5

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

For an 11-parameter tool with no output schema, the description is only minimally complete: it doesn't explain what a "Resource filter" is, whether extra query params constrain a single-ID fetch, or what the response contains beyond annotations covering safety.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 already documented, making baseline 3 appropriate. The description adds no meaning about filterId semantics or how origin/search/projects/resourceTypes affect the returned 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 ("Returns") and resource ("the Resource filter") scoped by "with the supplied ID", which distinguishes it from the plural list sibling deployment_get_resource_filters. It doesn't explicitly name the alternative, but the singular/ID framing makes the distinction clear.

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 singular get-by-ID framing, but the description never states when to use this versus deployment_get_resource_filters or deployment_get_deployment_filter_by_id, nor how the pagination/filter query params should be used. Adequate but with clear gaps in routing guidance.

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

deployment_get_resource_filtersC
Read-onlyIdempotent

Returns the Resource filters in context of given user. GET /deployment/api/resources/filters

NameRequiredDescriptionDefault
resourceTypesNoA comma-separated list. Only Resources with these types will be included in the results.

TDQS

C2.6/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 safety is well covered. The description adds nothing beyond restating the endpoint path, which duplicates the annotation title, and still leaves unexplained what 'in context of given user' means given the absence of a user parameter.

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?

Only two sentences, but the second is a raw endpoint path that largely restates the annotation title and earns little. The meaningful content is a single short sentence, so brevity is offset by redundancy rather than dense 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?

Low complexity (one optional parameter, no output schema) keeps the bar modest, but the description never says what a resource-filter result contains or clarifies the ambiguous 'given user' scoping. Enough to call the tool, not enough to know what comes 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%, with resourceTypes fully documented as a comma-separated list of types to include. The description says nothing about the parameter, but with the schema carrying the burden, baseline 3 is appropriate.

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

Purpose3/5

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

The verb 'Returns' plus resource 'Resource filters' gives a basic sense of the operation, but what a 'Resource filter' actually is stays undefined, and the phrase 'in context of given user' is confusing because no user parameter exists. It doesn't distinguish itself from nearby siblings like deployment_get_resource_filter_by_id or deployment_get_deployment_filters.

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

Usage Guidelines2/5

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

There is no guidance on when to call this instead of the single-filter sibling deployment_get_resource_filter_by_id or the deployment-level filter tools. The agent has to infer usage entirely from the name and endpoint path.

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

deployment_get_resourcesB
Read-onlyIdempotent

Fetch all resources. Returns a paginated list of resources. GET /deployment/api/resources

NameRequiredDescriptionDefault
topNoNumber of records you want
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
tagsNoA comma-separated list. Results must be associated with one of these tags
expandNoThe expanded details of the requested comma separated objects. Ex. project, deployment, currentRequest
filterNoA subset of records that satisfy the given predicate expression
originNoA comma-separated list. Results must be associated with one of these resource origins.
searchNoGiven string should be part of a searchable field in one of the resources.
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
projectsNoA comma-separated list. Results must be associated with one of these project IDs.
cloudTypesNoA comma-separated list. Results must be associated with one of these cloud Types
syncStatusNoA comma-separated list. Results must be associated with one of the syncStatuses (MISSING, STALE).
cloudAccountsNoA comma-separated list. Results must be associated with one of these cloud accounts.
resourceTypesNoA comma-separated list. Results must be associated with one of these resourceType Names.

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. The description adds useful context that results are paginated and sourced from GET /deployment/api/resources, but it does not cover auth requirements, rate limits, filter semantics, or return shape. Given the existing annotations, 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 only three short sentences and is front-loaded with the core action. The first two sentences are somewhat redundant ("Fetch all resources" / "Returns a paginated list of resources"), which keeps it from a 5.

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 16-parameter list tool with no output schema and many sibling read endpoints, this description is too sparse. It does not explain the resource domain, how filters/expand/sort interact, pagination defaults, or what the returned resource records contain, leaving the agent dependent almost entirely on 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 all 16 parameters are already documented in the schema. The description only mentions pagination and adds no meaning for filter, expand, sort, orderby, tags, origin, or the various filter parameters. Baseline 3 is correct 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 ("Fetch all resources") and adds that it returns a paginated list and the backing endpoint. However, "resources" is generic in a large deployment_* sibling family, and the description does not differentiate it from tools like deployment_get_resource_by_id or deployment_get_deployments.

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 named alternatives, and no exclusions. An agent must infer from the name and schema that this is the bulk listing tool rather than a single-resource or deployment-listing tool.

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

deployment_get_resources_by_resource_idC
Read-onlyIdempotent

Fetch a specific resource. Returns the resource with the supplied ID. GET /deployment/api/resources/{resourceId}

NameRequiredDescriptionDefault
expandNoThe expanded details of the requested comma separated objects. Ex. project, deployment, currentRequest
resourceIdYesResource ID (path)

TDQS

C2.7/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. The description adds nothing beyond that – no auth requirements, no behavior when the ID is missing or unknown, no discussion of what 'expand' changes about the payload. It restates the operation and the raw route.

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 verb and resource. The trailing 'GET /deployment/api/resources/{resourceId}' duplicates the annotation title and earns little, but the overall size is not wasteful.

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

Completeness3/5

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

A simple read with no output schema; the description states that the resource is returned, which is about the minimum needed. It omits anything an agent would need beyond the schema – notably how 'expand' alters the response and whether a 404 is expected for unknown IDs – so it only just clears the bar.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 resourceId and expand are already documented in the schema. The description adds no meaning to the expand enum values or to the path-parameter format, leaving it at the 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?

It names a specific verb and resource ('Fetch a specific resource'), which is clear on its own. But the sibling list contains deployment_get_resource_by_id and deployment_get_resource, and the description does nothing to say which one an agent should pick, so the purpose is not distinguishable in context.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no mention of the near-identical alternatives. An agent reading this alongside deployment_get_resource_by_id gets no signal for choosing between them.

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

deployment_get_resources_by_resource_id_actionsA
Read-onlyIdempotent

Fetch available resource actions. Returns the complete list of available actions that can be performed on a given resource. GET /deployment/api/resources/{resourceId}/actions

NameRequiredDescriptionDefault
resourceIdYesResource ID (path)

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already establish that this is a read-only, idempotent, non-destructive GET operation. The description adds that it returns the complete list of available actions, but does not discuss pagination, filtering behavior, response shape, or any access constraints.

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. The second sentence largely restates the first, but the endpoint adds useful context and 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 simple one-parameter read operation with strong annotations and full schema coverage, the description provides enough context to invoke the tool correctly. It could be stronger by clarifying the relationship to sibling action-listing tools or what the returned actions represent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 single resourceId parameter is documented as a UUID path parameter in the schema. The description does not add meaning beyond showing it in the endpoint path, 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 and resource: fetching available actions for a given resource. It is clear enough to distinguish this from the sibling that fetches a single action by action id, though it does not explicitly name or contrast 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 implied by the required resourceId and the phrase 'on a given resource,' but there is no explicit when-to-use guidance, no exclusions, and no comparison to sibling tools such as deployment_get_resource_actions.

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

deployment_get_resources_by_resource_id_actions_by_action_idB
Read-onlyIdempotent

Fetch resource action. Returns an action for the resource specified by its Resource ID and Action ID. GET /deployment/api/resources/{resourceId}/actions/{actionId}

NameRequiredDescriptionDefault
actionIdYesAction ID (path)
resourceIdYesResource ID (path)

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 fully covered. The description adds only the REST route, which reinforces that this is a plain path-parameterized read but does not describe permissions, error behavior (e.g. unknown actionId), or what the returned action 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?

Three short lines, with the verb-and-resource statement front-loaded and the endpoint appended as supporting detail. No filler, though the opening line and the path line duplicate the same information to a degree.

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-key read with full schema coverage and complete safety annotations, the essentials are present; the missing piece is any hint about the response shape (no output schema exists) or failure modes. Adequate but not fully self-sufficient.

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

Parameters3/5

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

Schema description coverage is 100% for both parameters, including the UUID format on resourceId, so the schema already carries the semantics. The description merely restates that both values are path identifiers, matching the baseline for a fully documented 2-parameter 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 ('Fetch resource action') and identifies the two lookup keys, Resource ID and Action ID. It stops short of distinguishing itself from near-identical siblings such as deployment_get_resource_action and deployment_get_resources_by_resource_id_actions, though the GET path template hints at 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 explicit when-to-use or when-not-to-use guidance. The sibling list contains deployment_get_resource_action and deployment_get_resources_by_resource_id_actions, which read as functionally overlapping, and the description does nothing to tell an agent which one to pick.

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

deployment_get_resource_typeB
Read-onlyIdempotent

Fetch a specific Resource type. Returns the Resource type with the supplied ID. GET /deployment/api/resource-types/{resourceTypeId}

NameRequiredDescriptionDefault
resourceTypeIdYes(path)

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 REST endpoint and confirms the return is the Resource type matching the supplied ID, but does not disclose error behavior, auth requirements, or rate limits.

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

Conciseness5/5

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

The description is three short lines with the core action front-loaded and no filler. The endpoint line adds useful REST context without excessive redundancy.

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

Completeness4/5

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

For a simple read-only get-by-ID tool with full schema coverage and rich safety annotations, the description is largely complete. It states what is fetched and returned; only not-found behavior and output shape are left implicit, which is minor for this complexity level.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameter is already documented as a path string. The description reinforces that the ID is supplied in the URL path but adds no further 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 clearly states a specific verb and resource: fetching a specific Resource type by ID. It does not explicitly distinguish this tool from similarly named siblings such as blueprint_get_resource_type or form_get_resource_type, though the deployment API path provides implicit context.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives like deployment_list_resource_types or other resource-type endpoints. It only states the retrieval action, leaving selection entirely to the agent's inference.

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

deployment_get_user_eventsB
Read-onlyIdempotent

Get user events for deployment. Returns paged user events for given deployment ID. User events represent: Create, Day2, Approval or vRO User Interaction GET /deployment/api/deployments/{deploymentId}/userEvents

NameRequiredDescriptionDefault
topNoNumber of records you want
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
deploymentIdYesDeployment ID (path)

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=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful domain context by naming the event categories and noting paged results, but it does not describe pagination limits, ordering behavior, or any access requirements beyond what annotations provide.

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

Conciseness4/5

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

The description is short and front-loaded with the core purpose, then the event categories and endpoint. The endpoint path is somewhat redundant but not distracting; overall it 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?

Given the rich schema and read-only annotations, the description is sufficient to invoke the tool, and it clarifies the meaning of 'user events.' However, with many overlapping deployment event/log siblings, the lack of any disambiguation leaves a meaningful completeness gap.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all seven parameters including paging and sorting options. The description adds no parameter-level guidance beyond the schema, which is acceptable at the baseline for fully documented 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 states a specific verb and resource: 'Get user events for deployment,' and clarifies that user events are Create, Day2, Approval, or vRO User Interaction. It does not distinguish this tool from closely related siblings such as deployment_get_event_logs, deployment_get_event_logs_content, or deployment_get_request_events.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus the several sibling event/log tools. The only contextual cue is that it is scoped to a deployment, which is implied by the operation rather than explicitly framed as a selection rule.

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

deployment_list_resource_requestsC
Read-onlyIdempotent

Get all requests for a resource GET /deployment/api/resources/{resourceId}/requests

NameRequiredDescriptionDefault
topNoNumber of records you want
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
searchNoGiven string should be part of a searchable field of a resource level request
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
resourceIdYesResource ID (path)
inprogressRequestsNoRetrieves the requests that are currently in-progress for a resource. In case of a false value the param is ignored.

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, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds nothing beyond duplicating the annotation title as an endpoint path: it does not explain pagination behavior, what a 'request' row contains, or the effect of inprogressRequests. With annotations carrying the load, this is still a thin contribution.

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 lines that are appropriately brief and front-loaded, but the second line is pure duplication of the annotation title's endpoint path and earns no space. Short overall but partly redundant rather than genuinely 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?

This is a read-only list tool with an existing annotation safety profile and full schema coverage, so expectations are moderate. Still, with 9 parameters containing ambiguous pagination/sort pairs and no output schema, the description leaves the agent without any explanation of the return shape or the parameter interactions it must resolve.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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, so the baseline of 3 applies. The description adds no meaning for resourceId, pagination, or sorting, and does not resolve the overlapping semantics of top vs size or sort vs orderby.

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 gives a verb and resource ("Get all requests for a resource") and appends the raw HTTP path. However, that restates the tool name and the annotation title rather than adding distinguishing detail. It does not differentiate this from nearby siblings such as deployment_get_deployment_requests or deployment_get_request.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool instead of deployment_get_deployment_requests, deployment_get_request, or deployment_get_request_events. An agent must infer selection from the name alone, and the description gives 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.

deployment_list_resource_typesB
Read-onlyIdempotent

Fetch all Resource Types. Returns a paginated list of Resource Types. GET /deployment/api/resource-types

NameRequiredDescriptionDefault
idsNoFilter by list of resource type ids
topNoNumber of records you want
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
searchNoSearch by name and description
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
projectIdsNoFilter by list of project ids
providerIdNoFilter by provider ID
composableOnlyNoInclude only composable resource types

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, covering the safety profile. The description adds that results are paginated, which is useful, but does not mention auth needs, rate limits, or anything about what resource types represent.

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 purpose, but the first two sentences are largely redundant ('Fetch all Resource Types' and 'Returns a paginated list of Resource Types'). The endpoint line is useful but the whole could be compressed without loss.

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 11-parameter list tool with 100% schema coverage and no output schema, the description covers the basic shape (paginated list of resource types). It does not explain return structure or differentiate resource types from related concepts, 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 all 11 parameters are already fully documented in the input schema. The description only implies pagination and adds no parameter semantics 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?

States a clear verb and resource ('Fetch all Resource Types') and notes the paginated list and underlying endpoint. It does not explicitly distinguish itself from similar siblings such as blueprint_list_resource_types, form_list_resource_types, or deployment_get_resource_type.

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

Usage 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, no exclusions, and no named alternatives. With many sibling tools that also list resource types, the absence of routing guidance is a clear gap.

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

deployment_patch_deploymentC

Update deployment. Updates the deployment with the supplied ID. PATCH /deployment/api/deployments/{deploymentId}

NameRequiredDescriptionDefault
bodyYesA set of fields to overwrite the corresponding fields in the deployment
deploymentIdYesDeployment ID (path)

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, idempotentHint=false and openWorldHint=true, and the description adds nothing beyond them — the PATCH path it cites merely repeats the annotation title. It does not say whether omitted body fields are preserved, whether the change is reversible, or what permissions are needed, which matters for a mutation tool.

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

Conciseness3/5

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

Short and front-loaded, but the first two sentences are near-duplicates ('Update deployment.' / 'Updates the deployment with the supplied ID.') and the third repeats the annotation title, so little of the text earns its place.

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

Completeness3/5

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

A simple two-parameter patch with a fully documented nested body and no output schema, so not much prose is required. Still, for a mutation endpoint the description could have clarified partial-update behavior and the effect on unspecified fields instead of relying entirely on 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% and the body object documents name, iconId, and description individually, so the schema carries the meaning. The description only echoes 'with the supplied ID' for deploymentId, adding nothing beyond what the schema already 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?

States a specific verb and resource ('Update deployment', 'updates the deployment with the supplied ID') and the PATCH endpoint signals a partial-update semantic rather than a full replace. It does not differentiate itself from the many sibling deployment tools (delete, get_by_id, action_request), but the core 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 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 deployment_get_deployment_by_id, deployment_delete_deployment, or the iaas_/onboarding_ patch variants. No preconditions (e.g., deployment must exist, required permissions) and no exclusions are stated.

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

deployment_post_resources_by_resource_id_requestsC

Resource action request. Submit a resource action request. POST /deployment/api/resources/{resourceId}/requests

NameRequiredDescriptionDefault
bodyYesRepresents a resource day-two request
resourceIdYesResource ID (path)

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, openWorldHint=true, idempotentHint=false, destructiveHint=false, and the description only repeats the HTTP verb/path already present in the annotation title. It adds nothing about whether the request is queued for approval, whether it returns a request ID, or what happens on duplicate submission.

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 two of the three lines are redundant ("Resource action request." restates the name; the POST path duplicates the annotation title) and none of the space is spent on the information an agent actually lacks.

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 mutating, non-idempotent, open-world submission with a nested body object and no output schema, so the description should explain the request lifecycle and result. Instead it provides only a REST route, leaving the agent without enough to invoke 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%, so resourceId and the body fields (reason, actionId, inputs) are already documented structurally; the baseline of 3 applies. The description adds no meaning beyond that, notably not explaining what the opaque `inputs` object should contain for a given actionId.

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 gives a verb ("Submit") and a resource ("resource action request") plus the REST path, so the general intent is graspable. But "resource action request" is never explained (day-2 operation on a deployment resource?), and the near-identical sibling deployment_submit_resource_action_request is not distinguished, leaving the agent unable to tell them apart.

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, no mention of the close sibling deployment_submit_resource_action_request or of deployment_get_resource_actions / deployment_list_resource_requests for discovery. 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.

deployment_submit_deployment_action_requestC

Deployment action request. Submit a deployment action request POST /deployment/api/deployments/{deploymentId}/requests

NameRequiredDescriptionDefault
bodyYesRepresents a resource day-two request
deploymentIdYesDeployment ID (path)

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare the full safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true), so the description only needs to add context—but it adds none: no mention that this enqueues a request that may go through an approval workflow, no note that repeated calls create duplicate requests, and no indication that the action executes asynchronously. No contradiction with annotations, but no value added 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?

Very short and front-loaded, but the first two lines are redundant with each other and with the tool name, and the endpoint line is the only piece carrying information. Not padded, but not efficient either.

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, largely opaque body (including an untyped inputs object) and no output schema, the description says nothing about what an agent must supply, where actionId comes from (likely deployment_get_deployment_actions), or what the call returns. Substantial gaps remain for a tool 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% for both parameters (deploymentId and body.actionId/reason), so the baseline of 3 applies. The description adds nothing beyond the schema, and notably the free-form body.inputs object—which is undocumented in the schema—is not clarified either.

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 essentially restates the tool name ('Deployment action request. Submit a deployment action request') and appends the HTTP route. It confirms this is a POST that creates a request under a deployment, but it never distinguishes it from close siblings such as deployment_submit_resource_action_request, deployment_action_deployment_request, or deployment_post_resources_by_resource_id_requests, so the agent cannot tell which level (deployment vs resource) applies.

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 alternatives are named, despite several siblings performing near-identical submission flows. Nothing says whether this is for day-2 actions on a deployment versus provisioning or resource-level requests.

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

deployment_submit_resource_action_requestC

Resource action request. Submit a resource action request. POST /deployment/api/deployments/{deploymentId}/resources/{resourceId}/requests

NameRequiredDescriptionDefault
bodyYesRepresents a resource day-two request
resourceIdYesResource ID (path)
deploymentIdYesDeployment ID (path)

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already state readOnly=false, idempotent=false, destructive=false, openWorld=true, so the safety profile is covered externally. The description adds no behavioral context beyond the endpoint: it doesn't say the call creates an asynchronous request that may require approval, what the response returns, or whether repeated submits create duplicates (idempotentHint=false makes that risk real and unmentioned).

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 two lines are redundant restatements of the same phrase, and the useful part (the endpoint) is a raw URL rather than an explanation. It is front-loaded only in the trivial sense of repeating the title first.

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 mutating tool with a nested request body and no output schema, so the description must carry more weight. It leaves unaddressed what the submission triggers, whether an approval workflow intervenes, and what an agent gets back (request ID for later polling via deployment_get_request).

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 (inputs, reason, actionId) are documented in the schema itself. The description only echoes the deploymentId/resourceId path placeholders, adding no semantics 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.

Purpose2/5

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

The description just restates the tool name twice ("Resource action request. Submit a resource action request.") and appends the raw HTTP path. It never explains what a resource action request actually is (a day-2 operation on a deployed resource), and it does not distinguish this tool from siblings such as deployment_submit_deployment_action_request or deployment_post_resources_by_resource_id_requests.

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 the many sibling request/action tools (deployment_submit_deployment_action_request, deployment_get_resource_actions, deployment_list_resource_requests). No prerequisites, no mention of approvals, no exclusions.

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

eventbroker_delete_subscriptionB
DestructiveIdempotent

Delete Subscription Delete Subscription. Only Solution users and system admin (e.g. for vRO) can manage subscriptions. DELETE /event-broker/api/subscriptions/{id}

NameRequiredDescriptionDefault
idYesthe id of Subscription (path)

TDQS

B3.4/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 core safety profile is known. The description adds useful authorization context, but it does not explain permanence, cascading effects, or what a successful deletion returns beyond the 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?

The description is short and front-loaded, but it repeats 'Delete Subscription' twice and restates the endpoint already present in the annotation title. Those repetitions do not add information, though the remaining content is not 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 low-complexity, single-parameter delete operation, the schema and annotations carry most of the burden, and the description supplies the key missing authorization prerequisite. It does not describe post-deletion effects or response behavior, but with destructiveHint and the full parameter schema present, an agent has enough information 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% and the single `id` parameter is documented as the subscription id path parameter. The description adds no parameter-level meaning 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.

Purpose4/5

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

The description uses a specific verb and resource: 'Delete Subscription', and includes the REST endpoint, so the intended operation is clear. It does not explicitly distinguish itself from sibling read tools such as eventbroker_get_subscription, but the delete verb and resource make the core purpose easy to identify.

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

Usage Guidelines3/5

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

The description states an important prerequisite: only Solution users and system admin can manage subscriptions. However, it gives no explicit guidance on when to choose this tool versus alternatives, nor does it mention any exclusions or related operations.

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

eventbroker_get_all_event_topicsB
Read-onlyIdempotent

Get all Event Topics Get all Event Topics with specified paging parameters. GET /event-broker/api/topics

NameRequiredDescriptionDefault
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.

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. The description adds only the paging mention and repeats the HTTP route already present in the annotation title, disclosing no return format, pagination limits, 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.

Conciseness4/5

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

It is short and front-loaded with the operation, but the opening sentence is restated almost verbatim in the second sentence, wasting one of only three lines.

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 paged list tool with no output schema, the annotations and schema carry most of the burden, but the description never indicates what an 'Event Topic' contains or the shape of a page of results. Sufficient to invoke, thin on what to 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%, with page, size, and sort all documented in the schema including the sort format. The description's phrase 'specified paging parameters' adds nothing 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 and resource ('Get all Event Topics') and implies full-collection listing, which implicitly contrasts with the singular sibling eventbroker_get_event_topic. It never names that sibling explicitly, so the differentiation is inferred rather than stated.

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

Usage Guidelines2/5

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

There is no when-to-use, when-not-to-use, or alternative naming. The only usage hint is 'with specified paging parameters,' which describes a mechanism, not a selection criterion; an agent must infer that this is the bulk-listing counterpart to eventbroker_get_event_topic.

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

eventbroker_get_audit_log_filter_entry_by_idC
Read-onlyIdempotent

GET /event-broker/api/audit/filters/{filterId} GET /event-broker/api/audit/filters/{filterId}

NameRequiredDescriptionDefault
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
searchNo
filterIdYes(path)

TDQS

C2/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 safety is covered. The description adds zero behavioral context — nothing about authentication, what the filter entry represents, or whether the page/size/sort params apply to a single-item fetch. It does not contradict the annotations, but it contributes nothing beyond them.

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 route string is duplicated verbatim twice, which is pure waste with no informational gain. There is no front-loaded explanation of purpose.

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

Completeness2/5

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

A five-parameter, enum-keyed lookup tool with no output schema needs at least a sentence saying what record is fetched and what the entry contains. The description supplies none of that, leaving the agent to guess from the name and route.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 80% and the filterId enum (user_name, event_type, entity_type) is self-documenting, so the baseline of 3 applies. The description itself adds no meaning beyond the schema, but the structured fields carry most of the load.

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 nothing but the raw HTTP route 'GET /event-broker/api/audit/filters/{filterId}', which merely restates the tool name in URL form. It does not say what an 'audit log filter entry' is, what is returned, or how it differs from siblings like eventbroker_get_event or provider_query_audit_trail.

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

Usage Guidelines1/5

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

There is no guidance whatsoever on when to use this tool, when not to, or which alternative to pick. The agent must infer everything from the tool name and the filterId enum alone.

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

eventbroker_get_eventC
Read-onlyIdempotent

Get Event by id Retrieve the details of a specified Event. GET /event-broker/api/events/{id}

NameRequiredDescriptionDefault
idYesThe id of an Event. (path)

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 safety is fully covered. The description adds nothing beyond the annotations other than restating the GET path (which duplicates the annotation title) – no note on not-found behavior, error semantics, or payload shape.

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 front-loaded sentences with the verb and resource first. The trailing raw HTTP path line is redundant with the annotation title and adds little for an agent, but overall there is no bloat.

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-parameter read tool with full annotations this is close to sufficient, but there is no output schema and the description says nothing about what 'details' are returned or what happens on an unknown id, leaving a modest gap for an agent planning 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?

A single 'id' parameter with 100% schema description coverage already documenting it as a UUID path parameter. The description adds no format or sourcing hints 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 ('Get Event by id', 'Retrieve the details of a specified Event'), which is clearly distinct from the sibling list tool eventbroker_get_events and from eventbroker_get_event_topic. It does not explicitly name those siblings, so differentiation is inferred rather than stated.

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

Usage Guidelines2/5

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

There is no guidance on when to use this single-fetch tool versus list tools like eventbroker_get_events or adjacent lookups such as eventbroker_get_event_topic and eventbroker_get_subscription. The only implicit cue is the required id, with no exclusions or prerequisites.

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

eventbroker_get_eventsC
Read-onlyIdempotent

Get Events Get Events by pages. GET /event-broker/api/events

NameRequiredDescriptionDefault
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.

TDQS

C2.7/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 pagination context, which the schema already exposes, and does not describe event scope 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.

Conciseness3/5

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

The description is short and front-loaded, but the opening line 'Get Events' is redundant with the tool name and title. The remaining two lines add minimal information without excessive length.

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 listing endpoint surrounded by many eventbroker siblings, the description does not explain what kinds of events are returned or how it relates to eventbroker_get_event. No output schema exists, so the description should do more to set expectations about 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 page, size, and sort are fully documented in the schema. The description adds no additional parameter 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 verb and resource ('Get Events') and adds that results are paged, but the first line merely restates the tool name. It does not distinguish this list endpoint from sibling tools such as eventbroker_get_event or eventbroker_get_event_topic.

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 and no mention of alternatives. 'Get Events by pages' implies paginated listing, but an agent gets no help deciding between this tool and the singular eventbroker_get_event or topic-related siblings.

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

eventbroker_get_event_topicB
Read-onlyIdempotent

Retrieves Event Topic Retrieves Event Topic by id. GET /event-broker/api/topics/{id}

NameRequiredDescriptionDefault
idYesthe id of Event Topic (path)

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 structurally. The description adds only the REST path, no error behavior, auth scope, or missing-id 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?

Very short and front-loaded, but the first two lines say the same thing twice ("Retrieves Event Topic" / "Retrieves Event Topic by id"), wasting half the text on repetition.

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 simple single-record read with annotations covering safety and a fully documented schema; that is enough to call it, but the description stops short of describing what a topic record contains or how a miss is reported, which would matter given there is no output schema.

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

Parameters3/5

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

Only one parameter and schema coverage is 100%, so the schema already documents the id path argument fully. The description adds nothing about id format or source beyond the schema's "the id of Event Topic (path)".

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 an Event Topic) plus the identifying key, which distinguishes it from the sibling eventbroker_get_all_event_topics. No explicit sibling callout, and the title line is restated rather than refined.

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?

"by id" implies the single-record lookup use case versus the list tool, but the description never says when to use this instead of eventbroker_get_all_event_topics or what happens if the id is unknown. Usage is inferable but not stated.

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

eventbroker_get_subscriptionC
Read-onlyIdempotent

Retrieves Subscription Retrieves Subscription by id. GET /event-broker/api/subscriptions/{id}

NameRequiredDescriptionDefault
idYesthe id of Subscription (path)

TDQS

C2.6/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, and the description adds nothing beyond the HTTP route. It doesn't disclose what a subscription object contains, what happens on a missing id, or any permission requirements, so it contributes no behavioral context the agent didn't already have.

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 the first line ('Retrieves Subscription') is pure duplication of the title and the second line repeats the same verb-resource pairing. Front-loaded GET route is fine, but two of three lines carry no 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 single-path read tool with full annotation coverage and a fully documented one-parameter schema, the description is minimally sufficient. It omits any note on the response shape or failure behavior, which is the only remaining burden it could have carried.

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

Parameters3/5

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

With only one parameter at 100% schema description coverage ('the id of Subscription (path)'), the baseline is 3. The description's 'by id' merely echoes the schema and adds no format guidance (e.g., subscription UUID vs. name).

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 the verb 'Retrieves' and the resource 'Subscription by id', which is understandable but essentially restates the tool name (eventbroker_get_subscription) and title (GET /event-broker/api/subscriptions/{id}). Nothing distinguishes it from the many sibling read tools such as eventbroker_get_event, eventbroker_get_event_topic, or eventbroker_get_audit_log_filter_entry_by_id.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus the sibling eventbroker read tools; the agent must infer from the name alone. No mention of prerequisites, required permissions, or error conditions (e.g., subscription not found).

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

form_create_formC

Create form definition Create form definition. POST /form-service/api/forms

NameRequiredDescriptionDefault
bodyYesForm definition object
lockFormNoLocks the content of the form (layout, schema) making it immutable if set to true, but still allows updates to the form's status
generateUnvalidatableExternalValuesSchemaNo

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true), so the description is not required to restate it. Beyond the raw endpoint path, it adds nothing: it doesn't mention that the call is non-idempotent (repeated calls create duplicates), that lockForm irreversibly freezes layout/schema, 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.

Conciseness2/5

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

The single sentence 'Create form definition' is printed twice, and the third line is a bare POST path that duplicates what the tool name/annotations title already convey. Nothing is wasted in length, but no sentence beyond the first earns its place.

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

Completeness2/5

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

This is a mutation tool with a deep nested body, no output schema, and no description of what is returned (created ID? full object?) or what the required name/status constraints imply. For a create endpoint with a complex schema, the description leaves significant gaps.

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

Parameters2/5

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

Schema description coverage is only 67%, and one of the three top-level parameters (generateUnvalidatableExternalValuesSchema) has no description at all, while the nested body object carries 12+ properties. The description mentions none of them, so it fails to compensate for the coverage gap on a fairly complex nested payload.

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 specific verb and resource ('Create form definition'), so the basic intent is unambiguous. However, it never distinguishes itself from siblings such as form_post_forms_versions, form_create_or_update_custom_resource_type, or form_generate, all of which also produce form artifacts. The identical sentence repeated twice adds no scope information.

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 about when to create a new form definition versus posting a version or updating an existing one, and no stated prerequisites. The only usage signal is the implicit read/write polarity of 'Create'.

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

form_create_or_update_custom_resource_typeC

Create custom resource type. POST /form-service/api/custom/resource-types

NameRequiredDescriptionDefault
bodyYesThe custom resource type

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, destructiveHint=false, idempotentHint=false, and openWorldHint=true, so the safety profile is available elsewhere. The description adds only the endpoint path and nothing about upsert semantics, auth requirements, or side effects, which is a gap given the name implies mutation of existing types.

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 terse lines with the action front-loaded; the endpoint path is arguably redundant with the title/annotation but takes little space. Not padded, though it is under-specified rather than concise in a useful sense.

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 large nested object schema, no output schema, and an implied create-or-update behavior, the description is far too thin. It does not explain the upsert matching rule, what a successful response includes, or what parts of the complex body are actually required.

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

Parameters3/5

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

Schema description coverage is 100% and there is a single required `body` parameter, so the baseline is 3. The description adds no meaning beyond the schema, which is unfortunate because the body is a deeply nested custom-resource-type payload where guidance on required/optional fields would help.

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+resource ("Create custom resource type") and adds the REST endpoint, so the basic action is clear. However, the tool name promises create-OR-update (an upsert) while the description only says "Create," leaving the update half of the behavior unexplained and undifferentiated from siblings like form_create_or_update_resource_action.

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 alternatives such as form_get_custom_resource_type, form_list_custom_resource_types, or form_delete_custom_resource_type. No preconditions, no note about how an existing resource type is matched for the implied update path.

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

form_create_or_update_resource_actionC

Create resource action. POST /form-service/api/custom/resource-actions

NameRequiredDescriptionDefault
bodyYesThe resource action
generateUnvalidatableExternalValuesSchemaNo

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already declare readOnly=false, idempotent=false, openWorld=true and destructive=false, so the safety profile is present in structured fields. The description adds only the HTTP verb/path and says nothing about required permissions, validation behavior, upsert semantics, or side effects of creating/updating a resource 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?

It is two lines and front-loaded, but the second line merely restates the endpoint and the first is too terse for a complex nested-body mutation. The brevity leaves out necessary context rather than trimming redundancy.

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

Completeness2/5

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

For a mutation tool with a large nested object, 50% schema coverage, and no output schema, the description is far from complete. It does not explain what constitutes a valid resource action or what the response will contain, leaving the agent to infer from the schema alone.

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?

Two parameters exist and schema description coverage is 50%, with top-level body fields such as id, name, orgId, status, criteria, and runnableItem largely undocumented by the description. The description gives no meaning, format, required-field guidance, or interaction for the nested body object or the generateUnvalidatableExternalValuesSchema flag.

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 ('Create') and resource ('resource action'), and confirms the POST endpoint. This distinguishes it from delete/get siblings by name, but it does not explain the 'or_update' part of the tool name or when an existing action is updated rather than created.

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 when-to-use guidance, prerequisites, or alternatives such as form_get_resource_action or form_delete_resource_action. The only context is the endpoint path, which does not help an agent choose this tool over other form-service mutations.

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

form_delete_custom_resource_typeC
DestructiveIdempotent

Delete custom resource type. DELETE /form-service/api/custom/resource-types/{id}

NameRequiredDescriptionDefault
idYes(path)

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 readOnlyHint=false, so the core risk profile is covered structurally. The description adds nothing beyond restating the operation and the REST path (which is already in the annotation title) – no statement about what else gets removed, whether the type must be unused, or failure behavior for unknown ids.

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 free of filler. The second line (raw endpoint) is redundant with the annotation title but not 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 one-parameter destructive delete with annotations covering safety, the definition is minimally sufficient to invoke. It omits practical context an agent would want before deleting: cascade effects, what happens when the id doesn't exist, and where the id comes 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 coverage is 100% and the single id parameter is documented as a UUID path parameter, so the schema does the work. The description adds no meaning about the id (e.g., how to obtain it via form_list_custom_resource_types), 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: 'Delete custom resource type'. This distinguishes it from sibling deletes like form_delete_form, form_delete_resource_action and form_delete_forms_delete_by_source_and_type. However, it doesn't explicitly name those siblings or scope the target further, so it stops short of full differentiation.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus form_create_or_update_custom_resource_type, form_get_custom_resource_type, or form_list_custom_resource_types, and no prerequisites or warnings are given. The agent must infer usage 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.

form_delete_formC
DestructiveIdempotent

Delete form by ID Delete the form with the specified ID. DELETE /form-service/api/forms/{id}

NameRequiredDescriptionDefault
idYesForm ID (path)

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 restates that ('Delete the form with the specified ID') and adds only the raw endpoint path — nothing about permanence, recoverability via form_restore, or side effects on referenced forms.

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 first two lines say the same thing twice, so one of the three lines is pure redundancy. The endpoint path is the only line that adds 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?

Not 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?

Only one parameter and schema description coverage is 100% (UUID, path parameter), so the schema fully documents it. The description's 'by ID' adds no format or lookup detail beyond the schema, making the baseline 3 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?

States a specific verb and resource ("Delete form by ID") and pins the target via the ID, which separates it from form_get_form and from the broader form_delete_forms_delete_by_source_and_type. It does not explicitly name any sibling as the alternative, so it falls short of 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 when-to-use guidance, no precondition (e.g., form must exist / not be locked), and no pointer to the clearly relevant sibling form_restore for recovery or to the bulk-delete variant. Usage is only implied by the tool name.

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

form_delete_forms_delete_by_source_and_typeB
DestructiveIdempotent

Delete form by source Delete the form with the specified sourceType, sourceId and formType. DELETE /form-service/api/forms/deleteBySourceAndType

NameRequiredDescriptionDefault
formTypeYesThe form type. It can be 'requestForm'.
sourceIdYesThe form source ID
sourceTypeYesThe form source type. It can be 'com.vmw.vro.workflow' or 'resource.action', or 'com.vmw.blueprint.version'.

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 readOnlyHint=false, so the core safety profile is covered. The description adds the targeting key and endpoint but does not explain side effects, behavior when the form is missing, or required permissions. With annotations present, this is adequate but not rich.

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

Conciseness4/5

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

The description is short and front-loaded with the core action, followed by the parameter key and endpoint. There is minor redundancy between the first and second lines, but 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 simple destructive delete by composite key, the description plus rich annotations and fully documented schema give enough information to invoke the tool correctly. It does not describe the return behavior, but no output schema exists and the core operation is clear.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already documents formType and sourceType with example values. The description merely names the same three parameters without adding syntax or constraints beyond what the schema provides, so baseline 3 is appropriate.

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

Purpose4/5

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

The description states a specific verb and resource: delete a form identified by sourceType, sourceId, and formType. It also includes the exact endpoint, making the operation clear. However, it does not explicitly differentiate this tool from sibling deletion tools such as form_delete_form or form_delete_resource_action.

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 what is deleted but gives no guidance on when to choose this tool over alternatives like form_delete_form or form_delete_resource_action. It also provides no prerequisites or exclusions, leaving the agent to infer usage from the parameters alone.

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

form_delete_resource_actionC
DestructiveIdempotent

Delete resource action. DELETE /form-service/api/custom/resource-actions/{id}

NameRequiredDescriptionDefault
idYes(path)

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, and the description neither contradicts nor enriches that profile. It adds nothing about consequences — whether deletion is permanent, what happens to forms referencing the action, required permissions, or the response on success/failure — and its second line merely repeats the annotation title.

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 lines, front-loaded with the action, so it is not bloated. But the second line duplicates the annotation title verbatim and consumes space without adding information, while the sentence that would actually help — scope and effect — is missing.

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 mutation with no output schema and only a placeholder parameter description, so the description carries real explanatory burden. It supplies none of the safety context an agent needs (irreversibility, prerequisites, what a failure looks like), leaving the definition barely above the raw HTTP signature.

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?

Nominal schema coverage is 100%, but the only description is the placeholder "(path)", so the schema conveys almost nothing. The description's URL line lightly implies the id is a resource-action identifier in the path, but it never states the id format, where an agent obtains a valid id (e.g. from form_list_actions or form_get_resource_action), or what happens with an unknown id.

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 gives a specific verb+resource ("Delete resource action") plus the underlying endpoint, so the basic action is unambiguous. However, in a surface containing form_delete_form, form_delete_custom_resource_type, form_delete_forms_delete_by_source_and_type, abx_delete_action and many other delete tools, it never clarifies that this deletes a *custom resource action* registered in the form service rather than a generic action or form. Sibling differentiation is absent.

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 / when-not-to-use guidance and no mention of an alternative among the many near-identical delete siblings (e.g. abx_delete_action, deployment_delete_resource). The agent must infer scope entirely from the name and URL path.

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

form_execute_external_actionC

Execute an external action to get a value (for the UI) POST /form-service/api/forms/renderer/external-value

NameRequiredDescriptionDefault
bodyYesRequest body
sourceIdNo
projectIdNoThe projectId of the project chosen for the request.

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, openWorldHint=true, idempotentHint=false, destructiveHint=false. The description adds only the endpoint path and '(for the UI)', giving no insight into side effects of the external action, auth requirements, or rate limits. It does not contradict annotations (it is a POST that fetches a value).

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

Conciseness4/5

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

Very short and front-loaded with the purpose. The endpoint path is marginal added value but not wasteful enough to penalize significantly.

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 POST with external side effects, a deeply nested body, and no output schema. The description should explain what an 'external action' entails, what the body fields mean, and the role of sourceId/projectId; it does none of this.

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?

With 67% schema coverage and a nested, complex body object, the description explains none of the parameters (body, sourceId, projectId) or their semantics. It does not compensate for the substantial undocumented portions of the complex 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 ('Execute an external action') and its purpose ('to get a value'), which is clear. However, it offers no differentiation from the near-identically named sibling form_execute_external_actions (plural), so an agent cannot easily tell them apart without opening schemas.

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 contextual hint is '(for the UI)'. There is no guidance on when to use this vs form_execute_external_actions, form_get_external_value, or form_perform_external_validation, 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.

form_execute_external_actionsC

Execute multiple external actions to get a list of values (for the UI) POST /form-service/api/forms/renderer/external-values

NameRequiredDescriptionDefault
bodyYesRequest body
sourceIdNo
projectIdNoThe projectId of the project chosen for the request.

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false, so the agent knows this is a non-idempotent call that reaches external systems. The description reinforces this with "Execute multiple external actions" and names the underlying endpoint, but it never states what those external actions actually do (orchestrator/ABX calls visible only in the schema enum), whether they can mutate remote state, or how failures across multiple actions are reported.

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 lines, front-loaded with the purpose before the raw endpoint. The trailing HTTP path adds little for an agent but is cheap; there is no filler 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?

For a tool taking a nested array of external-action descriptors, with no output schema and no annotations covering side effects, the description is far too thin. It leaves unexplained how requestIds chain, how sourceId/projectId scope the request, what the returned "list of values" looks like, and what happens when one of several actions fails.

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

Parameters2/5

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

The description mentions no parameters at all; it only restates the resource path. With schema description coverage at 67%, the complex `body` array items (uri, dataSource, requestId, parameters, externalSourceProviderType) are barely annotated, and the non-obvious chaining contract — parameters use `useResultFromRequestId` to consume the output of an earlier request — is explained nowhere.

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: "Execute multiple external actions to get a list of values (for the UI)", and the plural "actions" plus the "list of values" phrasing signals batch/resolution semantics. It does not, however, distinguish itself from the very similar sibling form_execute_external_action (singular), 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?

The only usage cue is the parenthetical "(for the UI)", which hints at a form-rendering context but gives no explicit when-to-use or when-not. No alternatives are named, even though form_get_external_value, form_lookup_external_resources, and form_execute_external_action sit right next to it and differ only by granularity.

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

form_fetch_customized_formB

Fetch request form or generate one for a given library schema. Fetch a request form from the database, according to the search parameters. Generate one according to the JsonSchema if there isn't a persisted form. POST /form-service/api/forms/designer/request

NameRequiredDescriptionDefault
bodyYesRequest body Also accepts: $ref, $data, $dynamicDefault.
formIdNoThe request form id, used to find a form from a provider
formTypeNoThe form type
sourceIdNoThe request source id
sourceTypeNoThe request source type

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already flag this as a non-read-only, non-idempotent, open-world POST, so the agent knows there may be side effects. The description adds the important fallback detail that a form is generated when none exists, which explains the non-read-only hint. It does not say whether a generated form is persisted, what permissions are required, or whether repeated calls produce different results.

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 behavior, which is good. But the first and second sentences restate the same fetch idea, and the trailing raw endpoint URL adds little for an agent selecting a tool. Tightening to two sentences would lose nothing.

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 POST with no output schema and a deeply nested JSON-schema body, the description covers the essential contract: lookup by search parameters, generation from a supplied schema as fallback. The remaining gaps—return shape, whether generation persists, which params are required for which path—are moderate but not blocking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 (body, formId, formType, sourceId, sourceType) are already documented. The description only loosely gestures at 'search parameters' and 'the JsonSchema' without adding format, precedence, or which parameters matter for the lookup versus the generation path. 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.

Purpose4/5

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

States a specific verb and resource: fetch a request form, or generate one from a JSON schema if none is persisted. The dual fetch-or-generate behavior distinguishes it from the nearby form_fetch_form and form_generate siblings without naming them. Slightly diluted by the endpoint URL restatement, but the purpose is unmistakable.

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 conditional 'generate one if there isn't a persisted form' implies when the fallback kicks in, which is real usage guidance. However, it never says when to pick this over form_fetch_form or form_generate, or what search parameters must match, leaving selection between siblings to inference.

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

form_fetch_formC

Generate request form for a given library schema. POST /form-service/api/forms/renderer/request

NameRequiredDescriptionDefault
bodyYesRequest body Also accepts: $ref, $data, $dynamicDefault.
formTypeNoThe form type
sourceIdNoThe request source id
sourceTypeNoThe request source type

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, openWorldHint=true, idempotentHint=false, and destructiveHint=false. The description adds only the endpoint path and does not explain what 'generate' actually does—whether it creates a persisted form, renders a transient payload, or has side effects. With annotations covering the safety profile, the description contributes little 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?

It is short and front-loaded: the first sentence states the purpose and the second gives the endpoint. No sentence is wasted, though the endpoint line is of limited use to an agent and the definition is slightly under-specified rather than over-long.

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

Completeness2/5

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

The tool has a nested JSON-schema body, four parameters, no output schema, and many close form-related siblings. The description does not clarify return behavior, the meaning of 'library schema,' or how this differs from form_generate, so it is not complete enough for an agent to call it confidently in context.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3 even though the description says nothing about the four parameters. The schema itself documents formType, sourceId, sourceType, and the recursive body, but the description does not add any meaning beyond those structured definitions.

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 general verb and resource ("Generate request form for a given library schema"), but it is vague about what a 'request form' or 'library schema' is in this platform. It also does not distinguish this tool from nearby siblings like form_generate, form_fetch_model, or form_get_action_form, and the name form_fetch_form suggests a fetch operation while the description says generate.

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 guidance on when to use this tool instead of form_generate, form_fetch_model, form_fetch_customized_form, or form_get_action_form. The only implied usage is that a caller has a library schema and wants a request form, which is too thin for an agent to route correctly among the many form siblings.

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

form_fetch_modelC

Generate request form model for a given library schema. POST /form-service/api/forms/renderer/model

NameRequiredDescriptionDefault
bodyYesRequest body Also accepts: $ref, $data, $dynamicDefault.
formIdNoThe request form id, used to find a form from a provider
formTypeNoThe form type
sourceIdNoThe request source id
resourceIdNoResource id
sourceTypeNoThe request source type
deploymentIdNoDeployment id

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already declare readOnly=false, destructive=false, idempotent=false and openWorld=true, so the safety profile is covered. The description adds nothing beyond the endpoint path: it does not say whether the model generation persists server state (which is what would justify readOnly=false on a "generate" call), whether auth or a valid formId/provider is required, or how large/complex the schema input may be.

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 purpose front-loaded and no padding. The endpoint-path sentence duplicates the annotation title and earns little, but nothing is bloated.

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 complex tool (7 parameters including a deeply nested recursive JsonSchema object, no output schema). The description never says what a "form model" contains or how it relates to the sibling fetch/generate tools, so an agent has no basis for interpreting the result or confirming it called the right 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% across all 7 parameters, including the recursive JSON-schema body, so the schema carries the load and the baseline of 3 applies. The description mentions "a given library schema" but does not clarify the interaction between body, formId, formType, sourceId, resourceId, sourceType and deploymentId (e.g. which selector fields are mandatory in practice).

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?

"Generate request form model for a given library schema" gives a verb and a resource, but "request form model" is domain jargon and the description never distinguishes this from the crowded set of form siblings (form_generate, form_generate_json_schema, form_get_json_object_schema, form_fetch_form, form_fetch_customized_form). An agent cannot tell from this text which of those 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?

No when-to-use statement, no prerequisites, and no named alternative. The second line is just an HTTP route, which restates the annotation title rather than telling the agent under what conditions this tool is the right choice.

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

form_generateB

[DEPRECATED] Generate schema for runnable item. Generate a ProviderSchemaImpl for the provided RunnableItem. The schema can be used to create a custom resource type. POST /form-service/api/custom/schema-generation

NameRequiredDescriptionDefault
bodyYesRunnable item

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 two genuinely useful facts not in the annotations: the tool is deprecated, and the result is a ProviderSchemaImpl suitable for custom resource type creation. It does not disclose auth requirements, whether the generated schema is persisted, or the response shape.

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

Conciseness4/5

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

The deprecation warning is correctly front-loaded and the whole definition is four short lines. There is mild redundancy: 'Generate schema for runnable item' and 'Generate a ProviderSchemaImpl for the provided RunnableItem' say substantially the same thing, and the trailing POST path merely repeats the annotation title.

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 schema-generation tool with a deeply nested body and no output schema, the description does explain what comes back (a ProviderSchemaImpl usable to create a custom resource type). What is missing is the deprecation follow-up — what to use instead — and any differentiation from the several similarly named generate siblings, which is the biggest practical gap 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 description coverage is 100%, and the single body parameter carries a 'Runnable item' description plus nested field documentation for inputBindings, inputParameters and outputParameters. The description adds no parameter-level meaning beyond restating that a RunnableItem is provided, so this sits at the baseline where 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?

States a specific verb and artifact: it generates a ProviderSchemaImpl from a supplied RunnableItem, which can then be used to create a custom resource type. The deprecation marker and the underlying endpoint add concreteness. However, it never distinguishes itself from close siblings such as form_generate_elements_runnable_item, form_generate_json_schema, or form_generate_elements, so an agent cannot route between them from this text 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 explicit when-to-use statement, no when-not-to-use, and no named replacement for a tool flagged DEPRECATED. The phrase 'can be used to create a custom resource type' describes downstream purpose rather than invocation conditions. An agent is left to guess whether to call this or one of the other schema-generation siblings.

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

form_generate_elementsC

Generate designer elements for a given request schema. POST /form-service/api/forms/designer/elements

NameRequiredDescriptionDefault
bodyYesThe request schema Also accepts: $ref, $data, $dynamicDefault.
sourceIdNoThe request source id
sourceTypeNoThe request source type

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already disclose readOnlyHint=false, idempotentHint=false, destructiveHint=false, and openWorldHint=true, so the write/non-destructive character is covered. The description adds nothing beyond that — it does not say whether generated elements are persisted, what the service does with them, or what auth/context is required. Restating the POST path duplicates the annotation title rather than adding information.

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 with the purpose, which is good, but the second line merely repeats the HTTP route already present in the annotation title and therefore does not earn its place. Two sentences, one of which is filler.

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

Completeness2/5

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

The input body is a deeply nested recursive JSON Schema object and there is no output schema, yet the description never indicates what the generated 'elements' look like or what shape to expect back. For a tool of this complexity, the description is far too thin to let an agent 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%, with body, sourceId, and sourceType all documented in the schema, so the baseline of 3 applies. The description does not clarify what 'request schema' means semantically or how sourceId/sourceType influence element generation, so it contributes nothing on top of the schema.

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 specific verb (generate) and object (designer elements) driven by a request schema, but 'designer elements' is unexplained jargon and there is no differentiation from closely named siblings such as form_generate, form_generate_json_schema, and form_generate_elements_runnable_item. An agent cannot tell which of these four generating tools to pick from the text alone.

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

Usage Guidelines2/5

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

No when-to-use guidance, no preconditions, and no mention of any alternative tool. The near-identical sibling form_generate_elements_runnable_item in particular is left unaddressed, so the selection decision must be inferred from schemas.

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

form_generate_elements_runnable_itemC

Generate designer elements for a given runnable item. POST /form-service/api/forms/designer/runnable-item-elements

NameRequiredDescriptionDefault
bodyYesRunnable item
externalTypeNoExternal type

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, destructiveHint=false, openWorldHint=true, and idempotentHint=false, so the safety profile is covered. The description adds nothing beyond the HTTP path, which merely restates the annotation title — no mention of side effects, whether generated elements are persisted, or what the item 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.

Conciseness4/5

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

Two short lines, front-loaded with the action. The appended endpoint path duplicates the annotation title and earns little place, but overall the definition is compact and not bloated.

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 deeply nested body (FormSchemaFieldType, BindingAction references) and no output schema. The description says nothing about what elements are produced or how the body fields affect generation, leaving a substantial gap for an agent deciding whether and how to call 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 the schema documents the nested body structure (id, type, name, bindings, parameters) plus externalType, so the description need not carry parameter detail. Baseline 3 applies; the description adds no meaning about how id/type drive element generation.

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 ('Generate') and a resource ('designer elements') scoped to a runnable item, so the general intent is inferable. But 'designer elements' is unexplained jargon, and the description offers no differentiation from close siblings such as form_generate_elements, form_generate, or form_generate_json_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?

There is no statement of when this tool should be used, what prerequisites (e.g. an existing runnable item with an id and type) are required, or how it differs from the many sibling form_* generation tools. 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.

form_generate_json_schemaC

Generates json schema based on the provided form layout schema POST /form-service/api/forms/designer/generate-form-json-schema

NameRequiredDescriptionDefault
bodyYesForm layout schema this request is made for — Content-Type: text/plain

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, openWorldHint=true and idempotentHint=false, so the safety profile is covered. The description adds nothing beyond restating the operation and pasting the endpoint — no note on whether anything is persisted, what auth is required, or why a 'generate' call is flagged non-read-only.

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

Conciseness4/5

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

One sentence plus the endpoint path — no padding or redundancy. It is front-loaded with the operation, though the raw URL contributes little and could be dropped.

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 generator tool the return value is the entire point, yet there is no output schema and the description never says what kind of JSON schema comes back or in what form. With only one parameter and no annotations explaining side effects, the description should carry more of that burden than it does.

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

Parameters3/5

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

Schema coverage is 100% and the single body parameter is documented as the form layout schema with text/plain content type, so the schema does the heavy lifting. The description only restates 'provided form layout schema' and adds no format, size, or validation detail.

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: generates a JSON schema from a provided form layout schema. That is clear enough to act on, but the crowded form_* sibling set (form_get_json_object_schema, form_generate, form_get_form_layout_schema) is never differentiated, so the agent must guess which generator is the right one.

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, when not to, or which alternative to pick. The raw POST path is the only extra context, and it does not tell the agent whether this is for designer-time authoring versus runtime schema retrieval.

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

form_get_action_formC
Read-onlyIdempotent

Get resource action's form GET /form-service/api/custom/resource-actions/{id}/form

NameRequiredDescriptionDefault
idYes(path)

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 the safety profile is fully covered by structured data. The description contributes nothing beyond restating the endpoint path — it does not say what the returned form represents, whether the id refers to an action definition vs. an action execution, or any auth/visibility constraints.

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, which is good, but the second line is just a URL path that largely duplicates the tool name and the annotation title. Every sentence should earn its place; the path line adds minimal decision value while the space that could have held usage or return-value context is unused.

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, so the description should describe what the returned 'form' looks like (form definition, layout, JSON schema payload) or how it is consumed. With an ambiguous resource and many sibling form tools, the definition leaves the agent guessing about semantics and 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?

Single required path parameter with 100% schema description coverage, so the baseline is 3. The description only echoes '{id}' from the URL template without clarifying what entity the id identifies (a resource action definition, a resource-action instance, etc.), adding little meaning.

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 (Get) and a resource (resource action's form), which is clearer than the bare tool name. However, it does nothing to distinguish it from the many near-identical siblings such as form_get_resource_action, form_get_resource_action_form_data, form_get_action_runnable_item, or form_get_form, all of which sound like they return forms for similar entities.

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 call this instead of the closely related form/resource-action tools. The only added text is the raw HTTP path, which gives no selection criteria for an agent choosing among dozens of form_* alternatives.

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

form_get_action_runnable_itemC
Read-onlyIdempotent

Get resource action runnable item. GET /form-service/api/custom/resource-actions/{id}/runnable-item

NameRequiredDescriptionDefault
idYes(path)
includeCrResourceActionsNo

TDQS

C2.4/5.0
Behavior2/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 only the endpoint path, which duplicates the annotation title, and says nothing about what the 'runnable item' contains, size, 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.

Conciseness4/5

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

Two short lines, front-loaded with the operation and followed by the endpoint. It is efficient, though the endpoint line largely restates the annotation title rather than adding 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?

With no output schema and one of two parameters undocumented, the description needs to explain what a 'runnable item' is and what the flag changes. Instead it supplies only the route, leaving the agent unable to predict the response shape.

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 only 50%: 'id' is documented merely as '(path)' and 'includeCrResourceActions' has no description at all. The description provides zero parameter guidance, so the undocumented boolean — whose effect on the response is non-obvious — is left entirely ambiguous.

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 verb ('Get') and a resource ('resource action runnable item') plus the HTTP endpoint, which pins down the API surface. However, 'runnable item' is unexplained jargon and there is no differentiation from nearby siblings such as form_get_resource_action, form_get_action_form, or form_generate_elements_runnable_item.

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

Usage Guidelines2/5

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

No statement of when to call this instead of the many adjacent form/resource-action getters. There are no prerequisites, no exclusions, and no named alternative — the agent must infer the use case 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.

form_get_binding_actionB
Read-onlyIdempotent

Get binding action for given action resource type and external input type. GET /form-service/api/custom/resource-actions/binding-action

NameRequiredDescriptionDefault
externalTypeYesThe external input type
resourceTypeYesThe action resource type

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, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is covered. The description adds the GET endpoint path and input concepts, but it does not explain what a binding action is, what the response contains, or any auth/rate-limit 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 core operation. The second sentence repeats the endpoint already present in the title annotation, so it is slightly 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?

For a simple two-parameter read tool, annotations and full schema coverage make it callable. However, with no output schema, the description does not explain return values or clarify the domain meaning of a binding action, leaving a noticeable contextual gap.

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

Parameters3/5

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

Schema description coverage is 100%, so both resourceType and externalType are documented in the schema. The description mirrors those parameter names without adding format, allowed values, or coupling 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 uses a specific verb-resource pair: get binding action for an action resource type and external input type. It is clear enough to understand the basic purpose, but it does not differentiate this tool from nearby siblings such as form_get_resource_action or form_get_action_form.

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 states the required inputs but gives no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or sibling tools, so the agent must infer usage from the name and schema.

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

form_get_custom_resource_typeC
Read-onlyIdempotent

Get custom resource type. GET /form-service/api/custom/resource-types/{id}

NameRequiredDescriptionDefault
idYes(path)
propertiesFormatNo

TDQS

C2.7/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 openWorldHint=true, so the safety profile is covered. The description adds only the raw REST path, which merely restates the annotation title; it says nothing about error behavior for an unknown id or whether the propertiesFormat flag changes the response shape. Beyond annotations, it contributes almost no 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 with no filler, and the purpose is front-loaded before the endpoint path. Its brevity is not wasteful, though it borders on under-specification rather than tightness.

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 two-parameter read tool with no output schema and only partial parameter documentation needs the description to carry the load, and it does not. Nothing explains the response contents or the meaning of propertiesFormat, leaving the agent unable to predict what it will get back.

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

Parameters2/5

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

Schema description coverage is 50%: the required 'id' is documented only as '(path)' and 'propertiesFormat' has an enum but no description at all. The description mentions no parameters and does not explain whether propertiesFormat controls the serialization of the returned resource type, so it fails to compensate for the coverage gap.

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 custom resource type'), which clearly distinguishes it from siblings like form_list_custom_resource_types, form_create_or_update_custom_resource_type and form_delete_custom_resource_type. It stops short of explaining what a custom resource type is, but the retrieval intent 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 when-to-use guidance and no mention of alternatives. An agent is left to infer that this is the single-item lookup counterpart to form_list_custom_resource_types, and nothing tells it what to do when the id is unknown or when the list tool would be preferable.

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

form_get_external_valueC

Get a list of external values. POST /form-service/api/forms/designer/external-value/sources

NameRequiredDescriptionDefault
bodyYesRequest body

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, openWorldHint=true and destructiveHint=false, so the safety profile is covered, yet the description adds only the endpoint path. It does not explain that this is a POST-based query despite the word "Get," nor what the query returns, how resultSize limits results, or what permissions are needed. The "Get" wording sits in mild tension with readOnlyHint=false, though a POST search endpoint explains 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?

Two short lines, front-loaded with the action; there is no padding or repetition. The trailing HTTP verb/path is the only questionable content, but it is compact and does hint at the request shape.

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, a nested request body, and an open-world annotation, the description should at least sketch what a returned external value looks like or how the source query behaves. It leaves the agent with an undefined concept ("external values") and no return-shape guidance.

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

Parameters3/5

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

Schema description coverage is 100%, so the single body parameter and its nested filter, valueType, resultSize and externalSource fields are already documented structurally; baseline 3 applies. The description contributes nothing about how filter or valueType are interpreted or how resultSize is capped.

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?

"Get a list of external values" supplies a verb and a resource, but "external value" is never defined and the description gives no way to distinguish this from nearby siblings such as form_lookup_external_resources, form_lookup_external_resource, or form_perform_external_validation. The appended raw path signals it is a designer-side source query, but that is HTTP plumbing rather than a statement of purpose.

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

Usage Guidelines2/5

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

There is no statement of when to call this versus the other external-value and lookup tools, no prerequisites, and no exclusion criteria. The agent must infer usage from the name alone.

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

form_get_formB
Read-onlyIdempotent

Get form by ID Retrieve the Form definition of a form with the specified ID. GET /form-service/api/forms/{id}

NameRequiredDescriptionDefault
idYesForm identifier (path)
formFormatNoForm definition formatJSON

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. The description adds only the underlying endpoint path (GET /form-service/api/forms/{id}) and the fact that the 'Form definition' is returned; it does not disclose error behavior for unknown IDs or whether the response format follows the formFormat parameter.

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 lines, front-loaded with the primary verb and resource. There is mild redundancy — 'Get form by ID' restates 'Retrieve the Form definition of a form with the specified ID' — but nothing wasteful enough to hurt.

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 no output schema, the description tells the agent what the return is conceptually (the Form definition) and how to address it. It leaves the format-selection behavior of formFormat and the failure mode for nonexistent IDs unstated, which is acceptable but not complete.

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

Parameters3/5

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

Schema description coverage is 100%, so both the id (uuid path param) and the formFormat enum (YAML/JSON, default JSON) are already documented. The description never mentions formFormat, which controls output shape — a meaningful omission even at high schema coverage, so it sits at baseline rather than above.

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 (retrieve) and resource (the Form definition for a given ID), which is clearer than the bare name. However, the crowded form_* namespace includes close siblings like form_fetch_form, form_fetch_customized_form, and form_get_action_form, and the description makes no attempt to distinguish this tool from 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 form_fetch_form, form_fetch_customized_form, or the search/list variants. The agent must infer selection from tool names alone.

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

form_get_form_layout_schemaC

Get form layout schema for runnable item. Get the layout schema for the provided runnable item, given that it exists on the specified endpoint POST /form-service/api/custom/schema-generation/form

NameRequiredDescriptionDefault
bodyYesRunnable item

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already state readOnlyHint=false, idempotentHint=false and openWorldHint=true, so the agent learns this is a non-idempotent, side-effecting-style call. The description adds only the POST path and does not explain why a 'get' is non-read-only, what the server generates, or what to expect on failure. It does not contradict the annotations, but it does little beyond them.

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?

Only three lines, but the first sentence ('Get form layout schema for runnable item') is fully restated by the second ('Get the layout schema for the provided runnable item'). That duplication wastes the most valuable front-loaded position.

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

Completeness2/5

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

The body is a nested object of substantial complexity and there is no output schema, yet the description never explains what a layout schema contains, how it relates to the runnable item, or what the caller gets back. For a non-idempotent, open-world call, this leaves too much 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 baseline is 3. The description contributes only the notion that the body is a 'runnable item', which mildly clarifies intent, but no detail on which nested fields (inputBindings, inputParameters, endpointLink) matter.

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+resource: retrieve the layout schema for a runnable item, tied to the schema-generation endpoint. It does not, however, distinguish it from the many related siblings (form_generate_json_schema, form_generate_elements_runnable_item, form_get_json_object_schema), so an agent cannot tell from the text alone which schema tool it needs.

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 conditional is the tautological 'given that it exists on the specified endpoint'. There is no guidance on when to prefer this over the sibling schema-generation tools, 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.

form_get_forms_provider_by_refB
Read-onlyIdempotent

Get form by providerRef Retrieve the form definition of a form with the specified provider reference. GET /form-service/api/forms/provider/{ref}

NameRequiredDescriptionDefault
refYesProvider Reference (path)

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. The description adds the concrete REST path, which gives useful context about what is being read, but says nothing about behavior on a missing/invalid ref or what the returned definition 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?

Three short lines, front-loaded with the operation and the endpoint. Slight redundancy: line one ('Get form by providerRef') and line two ('Retrieve the form definition ... with the specified provider reference') say the same thing, so one sentence could have been dropped.

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-parameter read-only tool with full schema coverage and rich annotations, very little is required, and no output schema means return values needn't be explained. The remaining gap is the key disambiguation an agent actually needs: what a 'provider reference' is and how this differs from the many sibling form-fetch 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% and the single parameter 'ref' is documented as 'Provider Reference (path)'. The description only repeats that, adding no syntax, format, or example guidance for what a provider reference looks like versus a form id. Baseline 3 is correct when the schema carries the meaning.

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 a scope qualifier: retrieve a form definition identified by *provider reference* (path), at a named endpoint. That is clear on its own. However, the sibling list contains many near-identical form readers (form_get_form, form_fetch_form, form_fetch_customized_form, form_fetch_model), and the description never contrasts itself with any of them.

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

Usage Guidelines2/5

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

No when-to-use, when-not-to-use, or alternative is named. The agent must infer from the parameter name alone that this is the lookup-by-provider-ref path rather than form_get_form or form_fetch_form. No prerequisites (auth, required scopes) are stated.

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

form_get_forms_versionsC
Read-onlyIdempotent

Get form definition versions GET /form-service/api/forms/versions

NameRequiredDescriptionDefault
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
formTypeYesThe form type. It can be 'requestForm'.
sourceIdYesThe form source id
sourceTypeYesThe form source type. It can be 'com.vmw.vro.workflow' or 'resource.action'.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare this as a read-only, idempotent, open-world, non-destructive operation. The description adds only the API endpoint path, which repeats the annotation title and provides no additional behavioral context such as pagination behavior, ordering, or return characteristics.

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

Conciseness4/5

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

The description is short and front-loaded, with no wasted narrative. The endpoint line is somewhat redundant with the annotation title, but the overall structure 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?

Given the rich schema and annotations, the description is minimally sufficient for invoking the tool. However, it lacks sibling differentiation and does not clarify that this is a paginated list-style retrieval of form definition versions, which would help an agent choose correctly among the many form-related tools.

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

Parameters3/5

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

Schema description coverage is 100%, so all parameters are already documented in the schema. The description adds no parameter-level meaning beyond what the schema provides, so the baseline score of 3 is appropriate.

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

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 form definition versions.' This is specific enough to understand the operation, but it does not explicitly distinguish this list-style endpoint from the sibling form_get_forms_versions_by_id.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as form_get_forms_versions_by_id, form_post_forms_versions, or other form lookup tools. The intended usage context is only implied by the name and description.

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

form_get_forms_versions_by_idA
Read-onlyIdempotent

Get form definition version by id GET /form-service/api/forms/versions/{id}

NameRequiredDescriptionDefault
idYesForm definition version identifier (path)

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 covered. The description adds nothing beyond restating the endpoint path – no error behavior or notes on what a 'version' represents.

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 verb and resource. The trailing endpoint path largely duplicates the annotation title, which is mild redundancy but not harmful.

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

Completeness4/5

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

For a low-complexity, single-parameter read tool with full annotation coverage and full schema coverage, the description is sufficient to call it correctly. The absence of an output schema means return contents are undisclosed, which 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% and the id parameter is fully documented as a UUID path identifier, so the schema does the heavy lifting. The description contributes no additional meaning about the 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 states a specific verb and resource ('Get form definition version by id'), which is clearly a single-version retrieval distinct from the sibling listing tool form_get_forms_versions. It does not explicitly name that sibling, so it falls short of the top bar.

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 fetching one known version, but the description gives no explicit when-to-use, no exclusions, and no pointer to form_get_forms_versions for enumeration.

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

form_get_json_object_schemaB

Get json object schema for runnable item. Generate a ProviderSchemaImpl for the provided RunnableItem. The schema can be used to create a custom resource type. POST /form-service/api/custom/schema-generation/json

NameRequiredDescriptionDefault
bodyYesRunnable item
externalTypeNoExternal type

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 and idempotentHint=false, and the description adds the POST endpoint and the generation/derivation nature of the call, which is useful framing. It is silent, though, on whether the call persists anything, whether the runnable item must pre-exist, or on the size/shape of the generated schema. The 'Get' phrasing mildly conflicts in tone with readOnlyHint=false, but the POST line clarifies it, so this is not a contradiction.

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

Conciseness4/5

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

Three short sentences, front-loaded with the outcome, then the mechanism, then the use case. Slight redundancy between 'Get json object schema' and 'Generate a ProviderSchemaImpl', and the raw endpoint path is filler for an agent, but nothing is padded.

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 a deeply nested body (inputBindings, inputParameters, outputParameters) and no output schema, the description should say more about the returned schema or how the RunnableItem fields map into it. It does convey the conceptual return value (a ProviderSchemaImpl), which keeps it above a 2, but the agent is left to guess at the response format and at how to successfully construct the request body.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 reported at 100%, so the baseline is 3. The description adds nothing about the two parameters: it does not say that 'body' is the RunnableItem being converted, nor what 'externalType' changes in the generated schema, so the agent must infer those semantics from the nested schema alone.

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+result: generates a ProviderSchemaImpl JSON schema for a given RunnableItem, which can then be used to create a custom resource type. That is materially more specific than the tool name alone. It does not, however, distinguish itself from near-identical siblings such as form_generate_json_schema or form_generate_elements_runnable_item.

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

Usage Guidelines3/5

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

Usage is only implied through the clause 'can be used to create a custom resource type', which hints at the downstream workflow without naming the counterpart tool. There is no explicit when-to-use, when-not-to-use, or prerequisite (e.g. that a valid RunnableItem must already exist, obtainable from form_get_action_runnable_item).

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

form_get_resource_actionC
Read-onlyIdempotent

Get resource action. GET /form-service/api/custom/resource-actions/{id}

NameRequiredDescriptionDefault
idYes(path)

TDQS

C2.6/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 the safety profile is covered structurally. The description adds only the raw REST path, with no information about permission requirements, what a 'resource action' object actually contains, or error behavior for a nonexistent 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?

Two lines, front-loaded with the operation and then the endpoint. No filler, though the terseness edges into under-specification rather than true 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 carries the burden of explaining what is returned, and it says nothing about the shape or fields of a resource action. Combined with unresolved ambiguity against several sibling form_* tools, the definition is not sufficient 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?

There is a single required parameter with 100% schema description coverage, so the schema already documents it. The description's '{id}' path template confirms the id is a path parameter but adds no semantics such as format or where the id comes from, which is the baseline 3 case.

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 specific verb and resource ('Get resource action') and the underlying endpoint makes the by-id retrieval explicit. However, it does nothing to distinguish this from the very similarly named sibling form_get_r_esource_action_for_custom_resource, or from form_get_action_form / form_list_actions, so an agent cannot confidently pick between them from the text 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 when-to-use guidance, no prerequisite, and no mention of alternatives. The agent is left to infer that this is a plain lookup by id purely from the URL template.

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

form_get_r_esource_action_for_custom_resourceC
Read-onlyIdempotent

Get resource action for resource type. GET /form-service/api/custom/resource-types/{resourceTypeId}/resource-actions/{resourceActionId}

NameRequiredDescriptionDefault
resourceTypeIdYes(path)
resourceActionIdYes(path)

TDQS

C2.6/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, and the endpoint in the description duplicates the annotation title verbatim. No additional context is given about what the lookup returns, whether 404s are common, 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?

Two short lines, front-loaded with the purpose, no filler. It is efficient, though the second line is redundant with the annotation title.

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

Completeness2/5

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

No output schema exists, and the description says nothing about the returned resource action shape, so an agent cannot tell what a successful call yields. For a thin read tool 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?

Schema coverage is nominally 100% with only two parameters, so baseline is 3. The description's URL template does clarify that both IDs are path segments, but it adds no format or lookup semantics beyond that.

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 states a get of a 'resource action' for a 'resource type', which is a specific verb+resource, and the URL template shows the scoping. But there is virtually no differentiation from the sibling form_get_resource_action, and the phrasing largely restates 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 statement of when to use this versus form_get_resource_action, form_get_resource_action_form_data, or form_list_actions. The agent must infer usage entirely from the name and URL.

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

form_get_resource_action_form_dataC

Returns resolved binding values based on the properties of the resource for given resource operation POST /form-service/api/custom/resource-actions/{id}/form-data

NameRequiredDescriptionDefault
idYesResource operation id (path)
bodyYesResource properties
projectIdNoThe id of the project

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already supply the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true), so the bar is lower. The description adds that binding values are resolved from resource properties, which is useful, but it does not clarify why a data-returning operation is a POST, whether calling it has side effects, or what the payload 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?

It is a single sentence plus the endpoint path, front-loading the verb and resource with no filler. The raw path line largely duplicates the annotation title, 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?

With a fully-described schema and annotations present, the missing pieces are modest, but there is no output schema and the description does not describe the returned 'resolved binding values' structure — the thing the tool is named for — leaving a real gap for a caller.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 id, body, and projectId are already documented in the schema. The description adds no further meaning to these parameters (e.g. what 'resource properties' in the body should look like), 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 description names the resource (resource action form data) and a verb (returns resolved binding values), so the general purpose is inferable. However, the phrasing 'resolved binding values based on the properties of the resource' is jargon-heavy and it never distinguishes itself from the many other form_get_* siblings (form_get_action_form, form_get_binding_action, form_get_resource_action).

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 such as form_get_binding_action or form_get_action_form, nor any prerequisites or context about the caller's situation. The agent is left 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.

form_get_resource_typeA
Read-onlyIdempotent

[DEPRECATED] Gets resource type by id (DEPRECATED). This endpoint is deprecated. Use /deployment/api/resource-types/{id} directly from the Catalog Service instead. Get the resource type for the provided ID in the currently authorized organization GET /form-service/api/deployment/resource-types/{id}

NameRequiredDescriptionDefault
idYes(path)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive, open-world behavior. The description adds important lifecycle context by marking the tool deprecated and noting that the lookup is scoped to the currently authorized organization.

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 deprecation warning is front-loaded, which is appropriate. However, deprecation is repeated three times across the first two sentences, making the description slightly less tight than it could be.

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 rich annotations and full schema coverage, the description gives enough context to avoid accidental use and to find the replacement. It does not describe the returned resource-type shape, but no output schema exists and the core invocation context is complete.

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

Parameters3/5

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

The schema has 100% description coverage for the single `id` path parameter, and the description only restates that the lookup is by id. No additional id format, constraints, or examples are provided.

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

Purpose5/5

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

The description states a specific verb and resource: gets a resource type by id. It also immediately flags the tool as deprecated and gives the replacement endpoint, so an agent can distinguish it from active resource-type siblings.

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?

It explicitly says the endpoint is deprecated and directs callers to `/deployment/api/resource-types/{id}` in the Catalog Service instead. That is clear when-not-to-use guidance plus a named alternative.

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

form_list_actionsC
Read-onlyIdempotent

List resource actions. GET /form-service/api/custom/resource-actions

NameRequiredDescriptionDefault
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
runnableIdNo
endpointLinkNo

TDQS

C2.6/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, destructiveHint=false, so safety is fully covered. The description adds only the endpoint path, with no mention of pagination behavior, default page size, sort defaults, or what the response contains. With annotations carrying the safety profile, 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?

Two short lines with zero waste and front-loaded purpose, but it is under-specified rather than truly concise. The bare endpoint line adds little and there is no structure for the unresolvable parameter questions.

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 paginated, sortable list endpoint with two undocumented filter parameters and no output schema, the description should explain the response shape, default ordering, and the meaning of runnableId/endpointLink. It does none of these, leaving the agent with clear gaps before calling.

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 only 60%: page, size, and sort are documented, but runnableId and endpointLink have no descriptions anywhere. The description provides no additional detail on these filter parameters or their semantics, so the agent is left guessing what runnableId and endpointLink constrain.

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 gives a specific verb+resource ("List resource actions"), but "resource actions" is ambiguous in a sibling set that also contains form_list_resource_types, form_list_custom_resource_types, form_get_resource_action, and deployment_get_resource_actions. It does not clarify how this endpoint differs from those. The endpoint path hints at 'custom' resource actions but the plain-text statement doesn't disambiguate.

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 alternatives, and no prerequisites. An agent cannot tell from this description when to reach for form_list_actions versus form_get_resource_action or form_list_resource_types.

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

form_list_custom_resource_typesC
Read-onlyIdempotent

List custom resource types. GET /form-service/api/custom/resource-types

NameRequiredDescriptionDefault
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
runnableIdNo
endpointLinkNo
propertiesFormatNo

TDQS

C2.4/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. The description adds nothing beyond restating the endpoint path — no pagination behavior, no expected response shape, no note that an empty result is possible without a filter.

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 lines with no filler, so it is not bloated. But the second line is a raw endpoint path that consumes space without adding decision-relevant information, making the definition under-specified rather than well-structured.

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

Completeness2/5

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

With six parameters, three of them undocumented, no output schema, and no explanation of pagination or filtering semantics, the definition leaves too much implicit. An agent cannot confidently construct a filtered request or interpret what is returned from this description alone.

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

Parameters2/5

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

Schema description coverage is only 50%: page, size and sort are documented in the schema, but runnableId, endpointLink and propertiesFormat (enum without description) are undocumented anywhere. The description supplies zero parameter meaning, so it fails to compensate for the coverage gap.

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 clear verb and resource ("List custom resource types"), so the basic operation is identifiable. However, it does nothing to distinguish this tool from the closely named sibling form_list_resource_types or from form_get_custom_resource_type, so an agent browsing siblings cannot tell which is the right listing endpoint without opening each 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?

There is no statement of when to use this tool versus form_list_resource_types, form_get_custom_resource_type, or form_search_by_source_and_type. The only additional text is the raw HTTP path, which gives no selection guidance.

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

form_list_resource_typesB
Read-onlyIdempotent

[DEPRECATED] List resource types (DEPRECATED). This endpoint is deprecated. Use /deployment/api/resource-types directly from the Catalog Service instead. List all of the resource types in an organization. GET /form-service/api/deployment/resource-types

NameRequiredDescriptionDefault
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
searchNoSearch by name and description

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 deprecation status and the organization scoping, but says nothing about pagination defaults, response shape, or what the deprecated endpoint may return differently from its replacement.

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 deprecation warning is front-loaded, which is correct, but it is repeated three times ('[DEPRECATED]' in the name prefix, '[DEPRECATED]' again, 'This endpoint is deprecated') before any substantive content. The redundancy costs space 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 read-only, fully-schema-documented list endpoint with annotations covering safety, the description supplies what matters: deprecation status, scope, and a migration target. No output schema exists, but a paginated list of resource types needs little further explanation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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, sort, and search all documented in the schema itself. The description adds no parameter guidance, so the baseline 3 applies — the schema does all the work here.

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 resource types', 'List all of the resource types in an organization'), so the operation is unambiguous. It does not differentiate itself from the many similarly-named siblings (deployment_list_resource_types, blueprint_list_resource_types, form_list_custom_resource_types), which is a meaningful gap given the crowded namespace.

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 deprecation notice gives a clear 'do not use this' signal and names an alternative path, which is genuinely useful routing information. However, the alternative is a raw REST URL rather than a sibling tool, so an agent has no instruction on which of the many resource-type tools to call instead.

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

form_lookup_external_resourceC
Read-onlyIdempotent

Retrieve external resource object Retrieve external resource object depending on namespace type and id GET /form-service/api/forms/renderer/external-resources

NameRequiredDescriptionDefault
typeYestype of the SDK object
objectIdYesunique id of the object
namespaceYesnamespace in which the vRO type is placed
projectIdYesid of current project

TDQS

C2.7/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. The description adds nothing beyond that - no note that results reflect live external/vRO state, whether empty results are possible, or what the returned 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?

Three lines where one would do: the first sentence duplicates the second, and the HTTP path repeats the annotation title. The input-dependent clause is the only content-bearing part, but it is not front-loaded as the distinguishing fact.

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 full schema coverage and no output schema, the core facts an agent needs (read-only, idempotent, scoped by namespace/type/id) are all present via annotations plus schema. What is missing is domain context such as what an "external resource object" is relative to vRO types and projects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 documents all four parameters, and the description only weakly echoes it ("depending on namespace type and id") while omitting projectId. Baseline 3 is appropriate when the schema carries the parameter 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 description names a verb plus resource ("Retrieve external resource object"), but that largely restates the tool name form_lookup_external_resource. The only extra information is that retrieval varies by namespace/type/id, and there is no differentiation from the closely named sibling form_lookup_external_resources or form_get_external_value.

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 this tool applies versus alternatives; the singular-vs-plural sibling (form_lookup_external_resources) is never mentioned, nor are prerequisites such as a valid project or namespace. The agent must infer the use case entirely.

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

form_lookup_external_resourcesC

Retrieve external resource value Retrieve external resource value depending on provided value source type POST /form-service/api/forms/renderer/external-resources

NameRequiredDescriptionDefault
bodyYesRequest body

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already flag openWorldHint=true, readOnlyHint=false and idempotentHint=false, which is mildly surprising for something described as a "Retrieve" – the description does not explain that this is a POST-based lookup, whether it triggers external/scriptAction calls, whether it has side effects, or whether results are cached. The one useful addition is that resolution depends on valueSource.type, but no safety or cost implications are disclosed.

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

Conciseness2/5

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

The first two lines are the same sentence repeated verbatim, and the third is a raw endpoint path that adds little for an agent. It is short, but it wastes roughly half its length on duplication rather than front-loading anything useful.

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

Completeness2/5

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

The body is a deeply nested object (item, context, valueType, valueSource) with no output schema, so the description should at least hint at what comes back or what the valueSource types mean. Instead it says nothing about return shape, pagination (valueSource.isPageable exists), or error behavior, leaving a complex lookup under-explained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 there is effectively one top-level parameter (body), so the schema does the heavy lifting. The description's only added meaning is that the answer varies by value source type, which points at valueSource.type but adds no detail on item, filter, context, projectId, or valueType fields.

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 ("Retrieve external resource value") and adds that the result depends on the supplied value source type, which is more than a bare restatement. However, it never distinguishes itself from the near-identical siblings form_lookup_external_resource (singular) and form_get_external_value, so an agent cannot choose between them from the text 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 use this tool, when not to, or how it relates to the very similar lookup/get siblings. The only contextual hint is the phrase "depending on provided value source type", which describes mechanics rather than selection criteria.

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

form_perform_external_validationC

Perform external validations for a form (for the UI) POST /form-service/api/forms/renderer/external-validation

NameRequiredDescriptionDefault
bodyYesRequest body
sourceIdNo
projectIdNoThe projectId of the project chosen for the request.

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already declare openWorldHint=true, idempotentHint=false, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond repeating 'external': it does not say that validations are dispatched to configured external source providers, whether results are returned synchronously, or how failures surface. The only extra content is the raw endpoint path, which conveys little to an agent.

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 sentence is front-loaded and short, but the second line is a bare POST path that adds no actionable meaning for a model, making the definition sparse rather than 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?

This is intentionally a placeholder – I will fill it in now: The tool has a nested required object body, external (open-world) behavior, and no output schema, so the description needs to explain payload construction and expected response. It covers neither, leaving the agent unable to assemble a valid request without reverse-engineering the schema.

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 only 67% and the description contributes nothing about parameters: it never explains the required 'body', the 'context' map of field values/dataTypes, the 'externalValidations' array of label/source/target entries, or what sourceId vs projectId select. With a deeply nested required body, the description should compensate and does not.

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 specific verb+resource ('Perform external validations for a form'), which is better than a tautology, but the qualifier '(for the UI)' adds ambiguity rather than scope, and nothing distinguishes it from nearby siblings like form_execute_external_action(s), form_get_external_value, or form_lookup_external_resources, which all sound related to external evaluation.

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 this tool should be invoked, what must exist beforehand (a rendered form, an external source provider), or which sibling to prefer for adjacent external-value/validation needs. 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.

form_post_forms_versionsC

Create form definition version POST /form-service/api/forms/versions

NameRequiredDescriptionDefault
bodyYesForm definition version creation model

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already cover the safety profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false), so the description only needs to add nuance — but it adds none. It does not say whether the version is appended to the definition's history, what identifiers come back, or what happens if sourceId/sourceType collide. The trailing endpoint path is pure restatement of the annotation title.

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 action front-loaded and no filler prose. The second line merely echoes the HTTP path already present in the annotation title, so it is only mildly wasteful.

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 non-idempotent mutation on a nested body with no output schema, and the description explains nothing about the outcome — no return value shape, no note on whether a version number or id is produced, no failure conditions. For a create-version operation the description is too thin 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 reported at 100%, so the baseline is 3 even though the description says nothing about the body fields. Worth noting the nested properties (name, formType, sourceId, changeLog, sourceType) carry no per-field descriptions, so the description misses a chance to explain semantics the schema leaves opaque.

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 ('Create form definition version') that an agent can map to the sibling read tools form_get_forms_versions and form_get_forms_versions_by_id. It does not, however, distinguish itself from form_create_form or explain how creating a version relates to creating a form definition.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus form_create_form, form_fetch_form, or form_get_forms_versions, and no stated prerequisites (e.g. that a form definition must already exist). The only hint is the raw REST path, which does not tell an agent when to select this tool.

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

form_restoreC

Restore form definition version PATCH /form-service/api/forms/versions/{id}/restore

NameRequiredDescriptionDefault
idYesForm definition version identifier (path)

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, idempotentHint=false, so the safety profile is covered, but the description adds nothing beyond that: it doesn't say whether restoring overwrites the currently active version, whether it is reversible, or what permissions are required. For a mutation that changes which version is live, that omission matters.

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+resource front-loaded; nothing is redundant. The second line is a raw HTTP endpoint rather than agent-useful information, which is mildly wasteful but not 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?

A single-parameter tool with a fully documented schema, no output schema, and annotations that carry the safety profile – so the description doesn't need much. Still, it omits the one thing an agent needs: what state change 'restore' actually produces and how to verify 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?

Only one parameter and the schema already documents it at 100% coverage as a UUID path identifier. The description merely repeats '{id}' in the raw HTTP path, adding no new semantics (e.g., whether it must be a historical version rather than the current one), 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: 'Restore form definition version', which an agent can distinguish from form_get_forms_versions or form_post_forms_versions. However, it doesn't clarify what 'restore' semantically means here (re-activate a prior version as current? undo a deletion? roll the live form back?), leaving the primary effect ambiguous.

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 instead of alternatives such as form_get_forms_versions, form_post_forms_versions, or the similarly named blueprint_restore_blueprint_version / abx_restore_action_version. No prerequisites, no state requirements, no exclusions.

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

form_search_by_source_and_typeB
Read-onlyIdempotent

Search form by source Search for form definition by source type, source ID and form type. GET /form-service/api/forms/fetchBySourceAndType

NameRequiredDescriptionDefault
formTypeYesThe form type. It can be 'requestForm'.
sourceIdYesThe form source ID
formFormatNoForm definition formatJSON
sourceTypeYesThe form source type. It can be 'com.vmw.vro.workflow' or 'resource.action'.

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, non-destructive, and openWorld, so the safety profile is covered. The description adds only the underlying endpoint path (GET /form-service/api/forms/fetchBySourceAndType), which is mild context but not behavioral detail such as what happens when no match exists or whether the call is an exact match or a search.

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 resource and lookup keys. The repeated first line and the raw endpoint line add little, 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?

For a read-only lookup with four fully documented parameters and no output schema, the description is minimally adequate. It never says what is returned (a form definition in YAML or JSON, presumably controlled by formFormat) or whether a miss returns empty vs. an error, which an agent would want before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 formType, sourceType, sourceId, and formFormat are fully documented in the schema, and the description only restates the three required ones. No added syntax, accepted enum values, or guidance on formFormat is provided 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 states a specific action ('Search for form definition') and the exact lookup keys (source type, source ID, form type), which is clearer than the vague name alone. It does not distinguish itself from near siblings such as form_fetch_form or form_search_form_definitions, 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 instead of form_fetch_form, form_get_form, or form_search_form_definitions, and no prerequisites or exclusions. The agent must infer selection from the parameter names alone.

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

form_search_form_definitionsC
Read-onlyIdempotent

Search form and form versions by term Search for form definitions and form versions with the specified term. GET /form-service/api/forms/search

NameRequiredDescriptionDefault
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
termNoSearch term

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, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds no behavioral context beyond annotations – it repeats the GET endpoint that already appears in the title, and says nothing about paging behavior, result shape, or whether form definitions and versions are returned together.

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 first sentence and second sentence say essentially the same thing ('Search form and form versions by term' / 'Search for form definitions and form versions with the specified term'), and the raw endpoint line restates the annotation title. Redundancy rather than useful density.

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, four-optional-parameter search with no output schema, the annotations carry the safety profile and the schema carries the parameters, so the minimum is met. Still missing is what the results contain (definitions vs. versions, matching semantics, default paging) which an agent would want before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 page, size, sort and term are all documented in the schema; baseline is therefore 3. The description only echoes the 'term' parameter and adds no semantics for the pagination or sorting parameters 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?

States a specific verb ('Search') and resource ('form and form versions') with the search key ('term'), so the operation is unambiguous. However, it never distinguishes itself from close siblings such as form_search_by_source_and_type or form_search_form_status, leaving the agent to infer which search variant applies.

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 tool is named. The only implied signal is 'by term', which vaguely contrasts with source/type- or status-based searches but is never stated as a selection criterion.

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

form_search_form_statusC

Fetch form status Retrieve statuses of forms specified by reference IDs. POST /form-service/api/forms/fetchStatus

NameRequiredDescriptionDefault
bodyYesThe target reference IDs
typeNoForm type that represents the usage of the formFORM

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnly=false, idempotent=false, destructive=false, openWorld=true, so safety coverage comes from structured data, not the description. The description adds nothing beyond that: it does not clarify that 'fetch' is actually a POST with an array body, what a 'status' contains, whether IDs that don't exist cause an error or are silently skipped, or whether any rate limits apply. The wording 'Fetch/Retrieve' also reads as a safe read while readOnlyHint=false says otherwise, a tension worth resolving explicitly.

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?

'Fetch form status' restates the title (which is itself the endpoint path) and is then repeated by 'Retrieve statuses of forms…', and the raw 'POST /form-service/api/forms/fetchStatus' line duplicates the title verbatim. The content is short, but three of the four lines carry almost no marginal 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?

No output schema exists, so the description is the only place the shape of a 'status' could be explained, and it is not: an agent cannot tell whether the response maps IDs to state strings, objects, or errors. For a tool with a required array body and multiple form-related siblings, this leaves the caller guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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% (body described as 'The target reference IDs', type enum documented), so the schema already carries the parameter semantics and a 3 baseline applies. The description's mention of 'reference IDs' merely echoes the schema wording and adds no batch-size, format, or partial-match 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?

States a specific verb and resource: 'Retrieve statuses of forms specified by reference IDs', which is more informative than the name alone. It does not distinguish itself from nearby siblings such as form_fetch_form, form_search_by_source_and_type, or form_get_forms_versions, so an agent still has to 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 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 the many other form_* retrieval tools, and no prerequisites or exclusions. The only hint is the phrase 'specified by reference IDs', which implies an ID-driven lookup but never says so explicitly.

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

iaas_allocate_network_ips_by_userC

allocate network IPs by user. allocate network IPs by user POST /iaas/api/network-ip-ranges/{id}/ip-addresses/allocate

NameRequiredDescriptionDefault
idYesThe ID of the network IP range. (path)
bodyYesSpecification for allocating ip addresses managed by the user — Allocate IP Address Specification
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 and openWorldHint=true; the description adds nothing beyond restating the operation and the REST path. It does not say whether the allocation consumes quota, is reversible only via release, or how the chosen addresses are reported back.

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, and the raw POST path repeats the annotation title — both are pure waste. Nothing is front-loaded that isn't already in structured fields.

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 tool with a nested request body and no output schema, the description should at least say what is allocated and what the response contains (e.g. the allocated addresses). None of that 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% and the nested body (ipAddresses vs numberOfIps) is documented in the schema, so the schema carries the parameter burden. The description adds no syntax or selection semantics beyond that, 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 verb+resource ('allocate network IPs') is identifiable, but 'by user' is unexplained and the statement is repeated verbatim. It does not distinguish this from the sibling iaas_release_network_ips_by_user or from iaas_get_allocated_and_released_ip_addresses.

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 release counterpart, what precondition exists (e.g. an existing IP range), or what happens if the range is exhausted. 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.

iaas_attach_machine_diskC

Attach machine disk Attach a disk to a machine. POST /iaas/api/machines/{id}/disks

NameRequiredDescriptionDefault
idYesThe ID of the machine. (path)
bodyYesSpecification for attaching disk to a machine — Disk Specification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.9/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 little beyond the endpoint and a restatement of the tool name; it does not describe side effects, preconditions, or what happens to the disk after attachment.

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 first two lines are redundant: 'Attach machine disk' and 'Attach a disk to a machine' convey the same information. The endpoint is useful, but the duplicate phrasing keeps it from earning a higher conciseness score.

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

Completeness3/5

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

The tool is simple and the schema plus annotations cover much of the necessary structure. However, with no output schema, the description could do more to explain the expected outcome of attaching the disk and any important 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 description coverage is 100%, so the input schema already documents the machine ID, block device ID, and optional body fields. The description does not add parameter-level meaning beyond the schema, which is acceptable given the full 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 states a specific verb and resource: attach a disk to a machine, and includes the endpoint. It is clearly distinct from read siblings like iaas_get_machine_disks and delete siblings like iaas_delete_machine_disk, though it does not explicitly name the closest alternative, creating a block device.

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

Usage Guidelines2/5

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

The description says what the tool does but provides no guidance on when to use it versus alternatives such as iaas_create_block_device or iaas_get_machine_disks. It also omits prerequisites, such as the machine and block device needing to exist before attachment.

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

iaas_change_security_groupsB

Change security groups for a vSphere machine Change security groups for a vSphere machine network interfaces. Securing group that is part of the same deployment can be added or removed for a machine network interface. POST /iaas/api/machines/{id}/operations/change-security-groups

NameRequiredDescriptionDefault
idYesThe id of the vSphere machine. (path)
bodyYesSpecification for a second day change security groups operation for a vsphere machine — Change security groups details
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare non-readonly, non-idempotent, non-destructive, open-world, so the description is not carrying the whole safety burden. It does add real value by disclosing the same-deployment scoping constraint on which security groups can be added or removed. It says nothing about permissions, whether the call is asynchronous/request-tracked, or whether the supplied list replaces or merges existing assignments, which matters for a mutation with 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.

Conciseness3/5

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

The opening sentence is restated almost verbatim by the second sentence, and the phrase 'Securing group that is part of the same deployment' is garbled. There is no waste of length, but restating the same point twice plus a typo costs it clarity value.

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

Completeness3/5

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

For a mutation tool with a nested body and no output schema, the description covers the operation and its main precondition, but leaves out the replace-vs-merge semantics and any indication of what the call returns or whether it is async. With 100% schema coverage the parameter surface is well documented, so the remaining gap is behavioral rather than structural.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description reinforces that the target is a machine network interface and that groups are added/removed, mapping loosely to networkInterfaceSpecifications.securityGroupIds. It does not clarify the most consequential ambiguity: whether securityGroupIds is a full replacement set or an additive/delta change.

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: changing security groups on vSphere machine network interfaces. The second sentence clarifies that groups can be added or removed per network interface. However, it never distinguishes this from siblings such as iaas_reconfigure_security_group, iaas_update_security_group, or iaas_patch_machine_network_interface, all of which sound plausibly relevant to the same task.

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 one constraint (the security group must be part of the same deployment) but no statement of when to pick this tool over the many sibling security-group and network-interface tools. An agent facing a 'change SG' request has no disambiguation guidance and must infer 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.

iaas_create_avi_lb_cloud_account_asyncB

Create an AVI Load Balancer cloud account Create an AVI Load Balancer cloud account in the current organization POST /iaas/api/cloud-accounts-avilb

NameRequiredDescriptionDefault
bodyYesSpecification for an AVI Load Balancer cloud account.A cloud account identifies a cloud account type and an account-specific deployment region or data center where the associated cloud account resources are hosted. — Cloud account AVI Load Balancer specification
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

B3/5.0
Behavior2/5

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

Annotations already declare non-read-only, non-idempotent, non-destructive, open-world, so the description needn't repeat safety. But the tool is named '_async' and the description never says the call kicks off a long-running operation that must be tracked (e.g., via request tracker), nor that it stores credentials (username/password, certificate) that persist. That is the missing behavioral context an agent actually needs 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?

Three short lines, but the first two are near-duplicate restatements of the same sentence and the third is just the HTTP path, already surfaced in the title and annotations. Low noise but also low information density.

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 credentialed, non-idempotent, asynchronous mutation with no output schema, the description omits return shape (request tracker / operation id), polling guidance, and secrets handling. With 100% schema coverage the field-level detail is fine, but the async lifecycle gap leaves the agent under-prepared.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 documents hostName, credentials, regions, tags, certificateInfo, etc. The description adds nothing beyond the schema, so baseline 3 applies.

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

Purpose5/5

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

The description states a specific verb and resource — 'Create an AVI Load Balancer cloud account in the current organization' — which is enough to distinguish it from sibling creators like iaas_create_cloud_account_async or iaas_create_aws_cloud_account_async. The POST path is redundant but the prose itself 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?

It says where creation happens (current organization) but gives no when-to-use versus alternatives such as the generic cloud-account creator or the update/delete AVI variants, and no prerequisites. An agent must infer selection purely 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.

iaas_create_aws_cloud_account_asyncC

Create a cloud account Create a cloud account in the current organization POST /iaas/api/cloud-accounts-aws

NameRequiredDescriptionDefault
bodyYesSpecification for a Amazon cloud account.A cloud account identifies a cloud account type and an account-specific deployment region or data center where the associated cloud account resources are hosted. — Cloud account Aws specification
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
validateOnlyNoIf provided, it only validates the credentials in the Cloud Account Specification, and cloud account will not be created.

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already declare this as a non-read-only, non-idempotent, open-world write, so the safety profile is covered. What the description omits is the behavior that matters most here: the operation is async and presumably returns a request tracker that must be polled, and the org scoping of the created account. 'In the current organization' is the only added 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?

Short and front-loaded, but the first two lines are redundant paraphrases and the third is a bare HTTP path. Little of the visible text earns additional space beyond what the name already conveys.

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 nested-body, async creation mutation with no output schema and no annotations explaining the async contract. The description says nothing about how the operation completes or that sibling tools like iaas_get_request_tracker are needed to follow it, leaving a real operational gap.

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

Parameters3/5

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

Schema description coverage is 100%, so both the nested AWS spec fields and apiVersion are already documented in the schema. The description adds no interpretation of the parameters and does not clarify validateOnly's string-typed, validation-only semantics. 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 and resource ('Create a cloud account in the current organization') and the endpoint path pins it to AWS ('/iaas/api/cloud-accounts-aws'). However, the three lines largely restate each other and restate the tool name, and nothing distinguishes this from iaas_create_cloud_account_async or the Azure/GCP/vSphere variants beyond the raw URL.

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, no prerequisites (an AWS access key/secret or IAM role ARN is effectively required), and no mention of the validateOnly path. The agent must infer from the name that this is the AWS-specific variant.

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

iaas_create_aws_storage_profileC

Create AWS storage class POST /iaas/api/storage-profiles-aws

NameRequiredDescriptionDefault
bodyYesRepresents a specification of AWS storage class. — StorageProfileAwsSpecification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, openWorldHint=true, idempotentHint=false, and destructiveHint=false. The description adds only the endpoint, which is already reflected in the annotation title, and does not explain side effects, permissions, or what creation actually provisions.

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 very short: one functional sentence plus the endpoint. It is efficient, though the endpoint duplicates information in the annotation title and therefore 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 nested, non-destructive mutation tool with no output schema, the description is thin but not invalid. The rich schema documents the body fields and annotations cover the basic safety profile, yet the description does not explain side effects or return behavior.

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

Parameters3/5

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

Schema description coverage is 100%, including detailed nested body field descriptions such as deviceType, regionId, name, and tags. The description adds no parameter semantics of its own, so baseline 3 is appropriate.

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

Purpose4/5

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

The description states a specific verb and resource: "Create AWS storage class," and includes the POST endpoint. It clearly identifies the AWS-specific storage profile creation operation, though it does not explicitly distinguish it from the generic iaas_create_storage_profile sibling.

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 the generic create_storage_profile tool or the corresponding update/delete AWS storage profile tools. Usage is only implied by the tool name and "Create AWS storage class."

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

iaas_create_azure_cloud_account_asyncC

Create a cloud account Create a cloud account in the current organization POST /iaas/api/cloud-accounts-azure

NameRequiredDescriptionDefault
bodyYesSpecification for a Azure cloud account.A cloud account identifies a cloud account type and an account-specific deployment region or data center where the associated cloud account resources are hosted. — Cloud account Azure specification
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
validateOnlyNoIf provided, it only validates the credentials in the Cloud Account Specification, and cloud account will not be created.

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already declare the write/open-world/non-idempotent profile, so the description could have added value by explaining the async behavior (the name says _async, yet nothing about request trackers or polling), what validateOnly does, or credential-sensitivity. Instead it contributes nothing beyond repeating the title and the endpoint 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?

It is short and front-loaded, but the first line merely restates the title and the third is a bare HTTP path, so two of three lines carry no new information. Brevity here reflects 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?

For a mutation tool with a nine-field nested body, secret credentials, and no output schema, the description omits the asynchronous return contract and the validate-only escape hatch. An agent has to infer that this operation is long-running and how to follow up.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 3 top-level parameters, so the schema carries the semantics and baseline is 3. The description adds no meaning about 'body', 'apiVersion', or 'validateOnly' beyond what is already documented structurally.

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 ('Create a cloud account in the current organization'), but the body text never mentions Azure; only the tool name and the raw POST path imply the provider. It also does nothing to distinguish this from the many sibling creators such as iaas_create_aws_cloud_account_async or iaas_create_gcp_cloud_account_async.

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 this over the generic iaas_create_cloud_account_async or the other provider-specific variants, and no mention of prerequisites like obtaining region enumeration or credentials. The only hint of context is 'in the current organization', which is scoping, not usage guidance.

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

iaas_create_azure_storage_profileC

Create Azure storage class POST /iaas/api/storage-profiles-azure

NameRequiredDescriptionDefault
bodyYesRepresents a specification of Azure storage class. — StorageProfileAzureSpecification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, openWorldHint=true, idempotentHint=false, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond restating the POST endpoint, which is already echoed in the annotation title — it does not mention that creation is non-idempotent (so retries may duplicate profiles), that an Azure cloud account is required, or what the 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?

It is a single front-loaded sentence plus an endpoint line — no padding. The endpoint line is somewhat redundant with the annotation title, which keeps it from a 5.

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 operation with a rich nested schema and no output schema, the description is minimally adequate: the agent knows what to call and what to pass. It omits what is created on success (an ID to reuse?), the non-idempotent retry hazard, and any dependency on an existing Azure cloud account, which are the gaps an agent would actually need filled.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 object documents every field (name, regionId, diskType, caching, encryption, tags), so the schema carries the full burden. The description adds no interpretation of required fields or of the apiVersion parameter, 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 and resource ('Create Azure storage class'), which is clearly distinguishable from siblings such as iaas_create_aws_storage_profile and iaas_create_gcp_storage_profile via the provider qualifier. It does not, however, explicitly contrast itself with iaas_create_storage_profile (generic) or iaas_update_azure_storage_profile, leaving that inference to the reader.

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 the generic storage-profile create or the AWS/GCP variants, nor on prerequisites such as a registered Azure cloud account. The only context is the raw endpoint line, which does not help an agent choose between alternatives.

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

iaas_create_block_deviceB

Create BlockDevice Following disk custom properties can be passed while creating a block device: 1. dataStore: Defines name of the datastore in which the disk has to be provisioned. 2. storagePolicy: Defines name of the storage policy in which the disk has to be provisioned. If name of the datastore is specified in the custom properties then, datastore takes precedence. 3. provisioningType: Defines the type of provisioning. For eg. thick/thin. 4. resourceGroupName: Defines the Azure resource group name where the disk needs to be provisioned. POST /iaas/api/block-devices

NameRequiredDescriptionDefault
bodyYesDisk Specification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare this as a non-readonly, non-destructive, non-idempotent, open-world mutation. The description adds useful behavioral context about custom property precedence, especially that dataStore takes precedence over storagePolicy, but it does not discuss permissions, failure modes, or other operational 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 front-loaded with the core action and then lists relevant custom properties efficiently. The trailing POST endpoint is redundant with the annotation title, but the rest is useful and reasonably 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 create mutation with a nested schema and no output schema, the description covers the operation and key custom properties. However, it leaves out auth/prerequisite context and does not describe what happens on success or failure, so it is only minimally complete for an agent to invoke confidently.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value beyond the schema by documenting four customProperties keys (dataStore, storagePolicy, provisioningType, resourceGroupName) that the schema only describes generically as additional properties, and by stating the precedence rule between dataStore and storagePolicy.

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

Purpose4/5

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

The description opens with a specific verb and resource: 'Create BlockDevice'. It clearly identifies the operation, but does not distinguish it from sibling operations such as iaas_create_block_device_snapshot or iaas_create_machine.

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 optional custom properties but gives no explicit guidance on when to use this tool versus alternatives, nor does it mention prerequisites or when-not-to-use conditions.

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

iaas_create_block_device_snapshotC

Create snapshot operation for Block Device Second day create snapshot operation for Block device POST /iaas/api/block-devices/{id}/operations/snapshots

NameRequiredDescriptionDefault
idYesThe ID of the block device. (path)
bodyNoDisk Snapshot Specification details
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description adds only the HTTP verb/path, which duplicates the annotation title, and says nothing about whether the operation is asynchronous, what happens to the block device during snapshotting, or cloud-specific caveats for snapshotProperties.

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?

Three lines, of which the middle line is a confusing near-duplicate ('Second day create snapshot operation') and the third restates the endpoint already present in the annotation title. The useful content is a single sentence, so the extra material is waste rather than clarification.

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, open-world creation call with a nested body object and no output schema, the description leaves key questions unanswered: what is returned (likely a request tracker or snapshot object), whether the snapshot name is required, and any cloud-provider constraints on snapshotProperties. Given the annotations only cover safety hints, the description should carry more.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 of 3 applies. The description only implies the id is a path parameter via the URL template; it adds no meaning about name, tags, or snapshotProperties beyond the schema's own per-field documentation.

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

Purpose4/5

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

The first line gives a clear verb+resource ('Create snapshot operation for Block Device'), and the endpoint path confirms the target resource is a block device identified by {id}. However, the second line ('Second day create snapshot operation for Block device') is a garbled duplicate that adds no distinguishing information, and nothing separates this from siblings like iaas_create_machine_snapshot or iaas_create_block_device.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus alternatives, nor any preconditions (e.g., whether the block device must be detached or powered off). The only usage signal is the implied 'create' semantics of the name and first sentence.

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

iaas_create_cloud_account_asyncC

Create a cloud account Create a cloud account in the current organization POST /iaas/api/cloud-accounts

NameRequiredDescriptionDefault
bodyYesSpecification for a generic cloud account.A cloud account identifies a cloud account type and an account-specific deployment region or data center where the associated cloud account resources are hosted. — CloudAccount instance
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
validateOnlyNoIf provided, it only validates the credentials in the Cloud Account Specification, and cloud account will not be created.

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, openWorldHint=true, idempotentHint=false and destructiveHint=false, so the safety profile is covered. The description adds only the organizational scope; it does not explain the async/request-tracking nature promised by the name, nor the validateOnly dry-run behavior, both of which materially change how an agent calls 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?

Three lines of which the first ('Create a cloud account') simply restates the tool name and the third is a raw HTTP path duplicating the annotation title. There is no filler beyond that, but the content is redundant rather than front-loaded with useful 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?

For a mutation tool that provisions a credentialed cloud account with a nested, provider-dependent body, the description leaves out the async/request-tracker behavior, the validateOnly option, and the provider-specific region requirements. Annotations cover safety but the description is too thin to guide a correct call 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%, including the nested body fields, cloudAccountProperties and the regions requirement for certain account types, so the schema does the heavy lifting. The description adds nothing about apiVersion, body or validateOnly, so baseline 3 is appropriate.

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

Purpose4/5

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

States a clear verb+resource (create a cloud account) and adds scope ('in the current organization'), so an agent knows what the tool does. However, it never distinguishes this generic creator from the many sibling creators (iaas_create_aws_cloud_account_async, iaas_create_azure_cloud_account_async, iaas_create_vsphere_cloud_account_async, etc.), which is the main selection risk 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 guidance on when this generic tool should be chosen over the provider-specific create tools, nor any mention of prerequisites (region enumeration for AWS/AZURE/GCP/VSPHERE/VMC/VCF). The only hint of usage is the word 'current organization', which is scope, not guidance.

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

iaas_create_compute_gatewayC

Create a compute gateway Create a new compute gateway. POST /iaas/api/compute-gateways

NameRequiredDescriptionDefault
bodyYesCompute Gateway Configuration. Applies to NSX cloud accounts only. — Compute Gateway Specification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description adds no behavioral context beyond repeating the endpoint: nothing about required permissions, whether the resource is immediately usable, or the constraint that this applies to NSX cloud accounts only (which is buried 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.

Conciseness3/5

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

Short and front-loaded, but the first two lines say exactly the same thing ("Create a compute gateway" / "Create a new compute gateway") and the third is just the HTTP route. Nothing is wasted on noise, but one of the three lines is pure redundancy.

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

Completeness2/5

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

This is a create/mutation tool taking a nested configuration object with required NAT rules, networks, and projectId, with no output schema to explain the response. Given that complexity, the description leaves an agent without any knowledge of what the resource represents, its cloud-account precondition, or what comes 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% and the nested body documents name, natRules, networks, projectId, deploymentId, and customProperties thoroughly, so the schema does the heavy lifting. The description adds nothing about any of these fields, which is consistent with the baseline of 3 for high-coverage schemas.

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 ("create a compute gateway"), so the basic purpose is clear. But it names no configuration fields and gives no hint of what distinguishes it from siblings like iaas_create_compute_nat or iaas_create_network, so an agent cannot tell scope from the text 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 when-to-use guidance, no prerequisites (e.g., NSX-T cloud account requirement noted only inside the schema), and no mention of alternatives. The tool name carries all the routing signal; the description contributes nothing.

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

iaas_create_compute_natC

Create a Compute Nat Create a new Compute Nat. POST /iaas/api/compute-nats

NameRequiredDescriptionDefault
bodyYesCompute Nat Specification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, openWorldHint=true, idempotentHint=false and destructiveHint=false, so the safety profile is covered externally, but the description adds nothing beyond that: no statement about whether the call provisions a request/task tracker, whether duplicate names are rejected, or what happens on failure. For a create/mutation tool it should carry more, or at least confirm the async/blocking nature that the sibling naming convention hints at.

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 three lines say the same thing, so nothing is front-loaded except a redundant restatement. The one genuinely useful token (the endpoint path) is buried at the end instead of the description spending its length on prerequisites or the required body fields.

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 create is a mutation with a rich nested body and no output schema, so the return value is undocumented internally and externally. Given the schema's completeness and the annotations covering safety, the description still leaves one important thing unstated — whether the create is synchronous or returns a request tracker to poll — but the structured data carries enough that an agent can construct a 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 the nested body schema already documents 'gateway', 'natRules' (with kind/type/index/targetLink and defaults) and 'projectId' thoroughly; the description adds nothing on top. Per the high-coverage baseline, 3 is the ceiling here.

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 restates the tool name three times ('Create a Compute Nat' / 'Create a new Compute Nat.' / 'POST /iaas/api/compute-nats') with no elaboration. The only information not already in the name is the HTTP endpoint. It also does not distinguish this create operation from the nearby iaas_reconfigure_nat, iaas_delete_compute_nat, or iaas_get_compute_nat 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 versus iaas_reconfigure_nat (modifying an existing NAT) or iaas_create_compute_gateway (a prerequisite for the required 'gateway' field), no mention of prerequisites, and no exclusions. The verb alone implies the use case, which is the minimum implicit signal, not real guidance.

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

iaas_create_custom_nameC

Create Custom Name POST /iaas/api/naming

NameRequiredDescriptionDefault
bodyYesCustom naming instance
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, so the safety profile is covered structurally. The description adds no behavioral context beyond the endpoint path: it does not say whether re-creating an existing name fails or overwrites it, what permissions are needed, or what the creation 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?

Two terse lines with no padding, and the verb is front-loaded. It is efficient but under-specified rather than genuinely concise — the endpoint line carries little value for an agent already given annotations naming the route.

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 deeply nested body (projects, templates, patterns, counters) and no output schema. The description does not explain how the nested naming templates behave or what a successful creation produces, leaving real gaps for an agent composing the payload.

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

Parameters3/5

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

Schema description coverage is 100%, with the body described as 'Custom naming instance' and apiVersion fully documented, so the baseline is 3. The description adds no meaning about the nested templates/patterns/projects structure, but with the schema carrying that burden this is the expected 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?

It states a verb and a resource ('Create Custom Name') and gives the REST path, so the basic operation is identifiable. However, it is essentially a restatement of the tool name, and it does not distinguish this from siblings such as iaas_update_custom_name, iaas_get_custom_name, or iaas_get_all_custom_names, nor does it say what a 'custom name' object actually is.

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 the update/get/delete custom-name siblings, nor any prerequisites (for example, needing existing projects or resource types). The only context given is the HTTP method and path, which is not usage guidance.

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

iaas_create_data_collectorB

Create Data collector Create a new Data Collector. Note: Data collector endpoints are not available in VMware Aria Automation (on-prem) release. POST /iaas/api/data-collectors

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, idempotentHint=false, destructiveHint=false, and openWorldHint=true, so the mutation/safety profile is covered. The description adds the on-prem availability caveat, which is real added context, but says nothing about permissions required, side effects of creation, or what the resulting resource looks like.

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 availability caveat placed before the raw endpoint. The first line duplicates the title and the second line restates it, which is mild waste but not 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?

With no output schema and full param coverage, the description only needs to cover behavior and scope. It does name the endpoint and the on-prem limitation, but leaves the biggest question (what payload is required to create a collector, given the schema exposes only apiVersion) unaddressed.

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

Parameters3/5

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

Schema coverage is 100% for the single apiVersion parameter, so the baseline is 3. The description adds no meaning beyond the schema — notably it never addresses that a POST to /data-collectors normally requires a body, which the schema does not expose.

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 ('Create a new Data Collector'), which cleanly distinguishes it from sibling tools like iaas_get_data_collectors and iaas_delete_data_collector. It does not, however, describe what a data collector is or how it relates to the endpoints around it.

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 note that 'Data collector endpoints are not available in VMware Aria Automation (on-prem) release' is a genuine usage constraint, but there is no guidance on when an agent should create one, what prerequisites exist, or which sibling to use instead for related operations.

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

iaas_create_deploymentC

Create deployment Create a new Deployment. POST /iaas/api/deployments

NameRequiredDescriptionDefault
bodyYesDeployment specification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description contributes only the POST path, which simply restates the annotation title, and adds no new behavioral context such as side effects or whether a request/task is created.

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 'Create deployment' and 'Create a new Deployment' are redundant, and the raw endpoint line duplicates the annotation title 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?

Annotations cover the mutation/safety profile, so the description needn't explain reversibility. However, for a nested-body creation tool with no output schema, the description says nothing about what a successful call yields (a request, a deployment id, a task) or how it relates to the deployment request flow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 (name, projectId, description) are each documented, so the schema carries the load. The description adds nothing about the body or apiVersion parameter, 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 and resource ('Create a new Deployment') plus the underlying POST endpoint, so an agent can tell it creates a deployment object. It stops short of differentiating from the near-identical 'onboarding_post_deployment' sibling, which is the main risk for selection.

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 onboarding_post_deployment, or versus iaas_get_deployments/iaas_get_single_deployment. No prerequisites (project membership, required body) are mentioned.

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

iaas_create_flavor_profileC

Create flavor profile POST /iaas/api/flavor-profiles

NameRequiredDescriptionDefault
bodyYesSpecification for flavor profile — FlavorProfile instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
includeCoresNoIf set to true will include cores in response.

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, idempotentHint=false and openWorldHint=true, so the write/mutating nature is covered structurally. The description adds nothing beyond restating the POST: no note that repeats are non-idempotent and may create duplicates, no permission or rate-limit context, and no mention of how missing fabric flavor mappings behave across public vs. private clouds.

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 no filler and the action front-loaded. The issue is under-specification rather than verbosity, so conciseness itself is fine.

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 mutating tool with a required nested object, no output schema, and cloud-dependent conditional fields — the description should at least say what a flavor profile is and what happens on success (created resource returned). None of that is present, leaving the agent to reconstruct intent from the path 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%, including the nested flavorMapping object with per-field cloud-specific mandatory rules (cpuCount/coreCount/memoryInMB for private clouds, name for public clouds), so the schema carries the semantics. The description contributes nothing extra about the required body, apiVersion, or includeCores, which is acceptable at 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 ("Create flavor profile") plus the underlying REST endpoint, so an agent knows this provisions a new flavor profile. It does not differentiate from siblings such as iaas_update_flavor_profile, iaas_get_flavor_profiles, or iaas_create_image_profile, nor explain what a flavor profile is (a mapping of global fabric flavor keys to per-cloud instance types).

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 use this versus updating an existing profile or creating a related profile type, and no prerequisites (e.g., a region must already exist, fabric flavors must be enumerated first). The agent must infer everything 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.

iaas_create_gcp_cloud_account_asyncC

Create a cloud account Create a cloud account in the current organization POST /iaas/api/cloud-accounts-gcp

NameRequiredDescriptionDefault
bodyYesSpecification for a GCP cloud account.A cloud account identifies a cloud account type and an account-specific deployment region where the associated cloud account resources are hosted. — Cloud account Gcp specification
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
validateOnlyNoIf provided, it only validates the credentials in the Cloud Account Specification, and cloud account will not be created.

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnly=false, destructive=false, idempotent=false, openWorld=true, so the safety profile is partly covered. The description adds nothing about the async nature implied by the tool name, the operation/request tracker returned, what happens on credential validation failure, or the meaning of validateOnly – all material for a mutation that accepts a private key.

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 first two lines restate each other almost verbatim and the third line is a raw HTTP path rather than agent-facing information, so sentences do not fully earn their 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 create operation that transmits GCP service-account secrets, the description omits the async execution model, the output/operation tracking, and any failure or validation semantics. Rich schema helps with inputs, but the behavioral picture an agent needs before calling 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% and every field (projectId, clientEmail, privateKey, regions, validateOnly) is documented in the schema. The description adds no extra 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 the verb and resource ('Create a cloud account') and the endpoint path pins it to GCP, which distinguishes it from the AWS/Azure/vSphere/NSX-T creation siblings in the same family. It stops short of naming 'GCP cloud account' in prose, so the sibling differentiation relies on the URL rather than the words.

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 notes the account is created 'in the current organization' but gives no guidance on when to use this versus iaas_create_cloud_account_async or the provider-specific creation siblings, and no prerequisites (credentials, region enumeration requirement).

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

iaas_create_gcp_storage_profileC

Create GCP storage profile POST /iaas/api/storage-profiles-gcp

NameRequiredDescriptionDefault
bodyYesRepresents a specification of GCP storage class. — StorageProfileGcpSpecification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare it as a non-read-only, non-idempotent, open-world write with no destructive effect, so the description carries less burden. It adds nothing beyond the annotations — it merely restates the HTTP verb and path, without saying whether the call is synchronous or async (request tracker), what is returned, or what happens on duplicate names.

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; nothing is verbosely redundant. The endpoint line is marginally useful for a REST-mapped tool but is essentially a restatement of the annotation title.

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 creation/mutation tool with a nested body, no output schema, and many near-identical sibling create tools, the description is too thin. It omits return behavior (resource ID vs. request tracker), dependency on a GCP cloud account and enumerated region, and how it differs from the provider-agnostic create 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%, including the nested body fields (name, persistentDiskType, regionId, tags, defaultItem, description, supportsEncryption), so the schema does the heavy lifting. The description adds no extra semantics such as whether regionId must come from iaas_enumerate_gcp_regions_async, so the baseline 3 applies.

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

Purpose4/5

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

The description names a specific verb and resource ('Create GCP storage profile'), which is enough to know it provisions a new GCP storage profile. It does not, however, distinguish it from the generic iaas_create_storage_profile or the AWS/Azure storage-profile siblings, so the agent must infer the split 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 guidance on when to use this tool versus iaas_create_storage_profile or the other provider-specific variants. Nothing is said about prerequisites such as an existing GCP cloud account or a regionId that must reference a valid enumerated region.

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

iaas_create_image_profileA

Create image profile Create image profile. This image profile is created for the specific region. Image mapping definitions are created together with the profile. All existing image mapping definitions for the specified region will be replaced with the payload provided and if you want to keep the existing definitions, they should be added to the payload. POST /iaas/api/image-profiles

NameRequiredDescriptionDefault
bodyYesSpecification for image profile. — ImageProfile instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

A3.5/5.0
Behavior4/5

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

The description discloses the single most important behavioral trait beyond the annotations: all existing image mapping definitions for the region are replaced by the payload, so existing entries must be resubmitted to survive. That is exactly the kind of destructive side effect annotations rarely capture. Some tension exists with destructiveHint=false, since overwriting existing mappings is arguably destructive, but the description is more informative than the annotation rather than misleading it.

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 leading 'Create image profile' is immediately duplicated by 'Create image profile.' — a wasted sentence — and the third sentence is a run-on combining two ideas. The substantive content is dense and useful, but the opening should have been collapsed into a single front-loaded statement.

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 tool with a nested payload object and no output schema, the definition covers the payload-overwrite behavior well but omits what the call returns, what identifiers it produces, and whether the name must be unique within the region. Adequate to call correctly, incomplete for reasoning about 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 coverage is 100% and the nested imageMapping fields (id/name/externalId/cloudConfig/constraints) are fully documented in the schema, so the baseline is 3. The description adds one genuine semantic constraint — that the payload must include existing mappings to preserve them — but says nothing about apiVersion or regionId sourcing beyond what the schema 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?

States a specific verb and resource ('Create image profile') and adds meaningful scope: the profile is region-scoped and its image mapping definitions are created alongside it. The create-vs-update distinction from iaas_update_image_profile is clear from naming alone, though the description never names the 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?

It gives a strong conditional hint — 'if you want to keep the existing definitions, they should be added to the payload' — which tells the agent how to call it safely. But it never states when to use this rather than iaas_update_image_profile, nor any prerequisite such as verifying the regionId via iaas_get_regions.

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

iaas_create_integration_asyncB

Create an integration Create an integration in the current organization asynchronously POST /iaas/api/integrations

NameRequiredDescriptionDefault
bodyYesSpecification for creating a generic integration.Integration represents external system added to VMware Aria Automation and is identified by a type and specific properties. — Integration instance
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
validateOnlyNoOnly validate provided Integration Specification. Integration will not be created.

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, openWorldHint=true and idempotentHint=false. The description adds meaningful context the annotations do not: the operation is asynchronous and applies to the current organization. It does not say how to track the async request or what happens on validation failure.

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, though the first line 'Create an integration' merely repeats the tool name and the following sentence restates it. Minor redundancy but no bloat.

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 definition covers the what but not the operational context: how the async result is retrieved (request tracker), what happens when validateOnly is set, or side effects. Annotations cover safety, but the description leaves meaningful 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 body, apiVersion and validateOnly are already documented in the schema. The description adds no additional semantics about required fields such as integrationType or integrationProperties, 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 ('Create an integration') plus organization scoping and async nature, so the action is unambiguous. It does not differentiate from the many sibling create tools (e.g. iaas_create_aws_cloud_account_async, iaas_create_vsphere_cloud_account_async) that also create integrations/accounts in the same org.

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 generic integration creation versus the type-specific cloud account creation tools, nor any prerequisites. The only usage cue is implied by the word 'asynchronously'.

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

iaas_create_internal_network_ip_rangeC

Create internal network IP range Creates an internal network IP range. POST /iaas/api/network-ip-ranges

NameRequiredDescriptionDefault
bodyYesSpecification for creating or updating a NetworkIPRange — Network IP Range Specification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds only the raw REST endpoint, not what the operation actually does (whether the call is async and returns a request tracker, whether overlapping ranges are rejected, or what side effects occur), which is thin for a creation tool with 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.

Conciseness2/5

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

Three lines say the same thing: the name, 'Creates an internal network IP range.', and the endpoint path. The second sentence restates the title verbatim and the third duplicates annotations.title, so no sentence after the first earns its place.

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

Completeness4/5

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

The schema is fully described and annotations cover the mutation/safety profile, so an agent has the essential information to call it. The remaining gap is that there is no output schema and the description does not indicate what a successful create returns (resource ID vs. async request tracker), which for this API family is a meaningful omission but not fatal.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 fields — name, startIPAddress, endIPAddress, ipVersion, tags, fabricNetworkIds, apiVersion — are documented in the schema itself. The description contributes no additional meaning such as format constraints or how fabricNetworkIds scopes the range, 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 internal network IP range', which an agent can distinguish from the sibling get/update/delete variants by name. However, the description never explicitly contrasts itself with iaas_update_internal_network_ip_range or iaas_create_network, so differentiation is only implicit in 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 guidance on when to use this vs. alternatives (e.g., external network IP ranges, or updating an existing range), no prerequisites, and no preconditions such as the range needing to fall inside a fabric network. The agent must infer 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.

iaas_create_load_balancerC

Create load balancer POST /iaas/api/load-balancers

NameRequiredDescriptionDefault
bodyYesLoad balancer configuration. — LoadBalancer Specification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, destructiveHint=false, idempotentHint=false, and openWorldHint=true, so the description is not obligated to repeat the safety profile. But it adds no behavioral context at all: no note that this provisions real infrastructure via an external API, no indication that the call is non-idempotent (repeating it creates duplicate load balancers), and no mention of permissions or async 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 and front-loaded, but the second line merely repeats the annotation title (POST /iaas/api/load-balancers) and the whole text is under-specified rather than genuinely concise. No sentence adds information an agent could not get from the name and annotations.

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 provisioning call with a deeply nested body and no output schema, yet the description omits what the response contains (e.g., a request tracker or load balancer ID), whether the operation is asynchronous, and what happens on failure. The rich schema compensates for parameter-level detail, but behavioral and result-shape context are 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?

With 2 parameters and 100% schema description coverage, the schema fully documents `body` (including required nested fields name, nics, projectId, routes) and `apiVersion`. The description contributes no parameter meaning of its own, so the baseline of 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 says 'Create load balancer', which names the verb and resource, but it essentially restates the tool name and adds only the raw REST path (POST /iaas/api/load-balancers). Nothing distinguishes it from siblings such as iaas_scale_load_balancer, iaas_get_load_balancer, or iaas_delete_load_balancer beyond the obvious create/read/delete naming.

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

Usage Guidelines1/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, what prerequisites exist (e.g., a projectId, an existing network or deployment), or what alternatives to consider. The agent must infer everything from the name and schema.

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

iaas_create_machineC

Create machine POST /iaas/api/machines

NameRequiredDescriptionDefault
bodyYesSpecification for a cloud agnostic machine. — Machine Specification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond restating "Create machine" and the endpoint; it does not mention that provisioning is likely asynchronous, how the request is tracked, or what side effects occur.

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 only two lines with no filler, so it is concise, but the structure is under-specified for a complex create operation. Brevity here comes at the cost of useful context rather than through disciplined editing.

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?

This is a complex, nested, non-idempotent machine-provisioning mutation with no output schema, and the description provides no operational context. An agent gets no information about provisioning behavior, response handling, or how to choose required fields beyond what the schema already says.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 machine specification is thoroughly documented in the schema itself. The description adds no parameter semantics, which is acceptable at baseline 3 when the schema carries the full 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?

The description states a specific verb and resource: "Create machine", followed by the HTTP endpoint. An agent can tell this provisions a new machine, but it does not distinguish the tool from related siblings such as iaas_create_machine_snapshot or iaas_create_deployment.

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, nor any prerequisites, required permissions, or context about the parent project/deployment. The endpoint line is not usage guidance.

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

iaas_create_machine_snapshotC

Create snapshot operation for machine Second day create snapshot operation for machine POST /iaas/api/machines/{id}/operations/snapshots

NameRequiredDescriptionDefault
idYesThe id of the Machine. (path)
bodyYesSnapshot Specification details
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.7/5.0
Behavior2/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 POST, so the description does not need to restate that. It adds no context on whether the operation is asynchronous/long-running, what happens to the machine, or how repeated calls behave — nothing beyond the raw route already in 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?

The second sentence is a garbled near-duplicate ("Second day create snapshot operation for machine") that wastes space, and the trailing route line duplicates the annotation title. Only the first clause carries 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 a mutating tool with a nested request body and no output schema; the agent still lacks knowledge of whether a task/request-tracker is returned, whether the snapshot is async, or what snapshotMemory defaults to. For a mutation with this schema complexity, 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%, so the baseline is 3. The description adds no meaning about the body fields, notably snapshotMemory, which is the one parameter whose effect (capturing running-VM memory) an agent would want explained.

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 ("Create snapshot operation for machine") and states the HTTP route, so the agent can tell it creates a machine snapshot. It does not distinguish itself from siblings like iaas_create_block_device_snapshot, iaas_revert_machine_snapshot, or iaas_delete_machine_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?

No statement of when to use this versus revert/delete/get snapshot tools, and no prerequisites such as machine power state or required permissions. The only additional line, "Second day create snapshot operation for machine," provides no actionable guidance.

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

iaas_create_networkB

Create network Provision a new network based on the passed in constraints. The network should be destroyed after the machine is destroyed to free up resources. POST /iaas/api/networks

NameRequiredDescriptionDefault
bodyYesSpecification for a cloud network — Network Specification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already disclose non-read-only, non-destructive, non-idempotent and open-world behavior, so the description only needs to add operational context. It does add one useful trait: the network is tied to the machine's lifecycle and must be explicitly destroyed to free resources, warning about orphaned cost-bearing resources. It omits auth requirements, what happens on partial failure, and whether creation 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.

Conciseness4/5

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

Four short lines: purpose, mechanism, lifecycle caution, and HTTP path. It is front-loaded with the action and contains no filler. The redundant "Create network" header line is the only minor 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?

The schema fully documents the request body and annotations cover safety, but with no output schema the description never says what a create returns (e.g., a request tracker / task id from an asynchronous provision). For a provisioning call with nested constraint semantics, that missing return/progress information is a real gap, though the lifecycle warning is a compensating strength.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 even nested objects (constraints, tags, customProperties) are documented inline, so the schema carries almost all the semantic weight. The description only echoes this by saying the network is provisioned "based on the passed in constraints," without adding format or defaults beyond what the schema 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 ("Create network" / "Provision a new network"), which is easy to distinguish from read siblings like iaas_get_network(s) or iaas_delete_network. It does not explicitly disambiguate against the closely-named iaas_create_network_profile, but the object being created (a network, from constraints) 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?

It gives no guidance on when to call this versus related tools such as iaas_create_network_profile, iaas_allocate_network_ips_by_user, or the deployment-level creation endpoints. The only conditional statement — "should be destroyed after the machine is destroyed" — is a lifecycle note, not a cue for choosing this tool.

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

iaas_create_network_profileC

Create network profile POST /iaas/api/network-profiles

NameRequiredDescriptionDefault
bodyYesNetworkProfile instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 externally. The description adds nothing beyond restating the POST path — no statement about side effects, whether the profile is immediately usable, what happens on duplicate names, or required permissions.

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?

Extremely short and front-loaded, but the second line just repeats the endpoint path already present in the annotation title, so not every element earns its place. 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?

A mutating create tool with a large nested body, no output schema, and no description of required fields, isolation-type behavior, or what the call returns. For an agent to call this correctly it must rely entirely on schema archaeology plus the 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% and the nested body documents name, regionId, tags, isolationType, and the various ID lists in detail, so the schema carries the parameter burden. The description adds no meaning beyond it; 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 network profile"), so an agent knows the operation itself without opening the schema. It makes no attempt to distinguish this from siblings such as iaas_create_network, iaas_update_network_profile, or iaas_create_storage_profile, and never says what a network profile actually is.

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 prerequisites (e.g., a region must exist, regionId is required), and no mention of how this differs from creating a network or a storage profile. The only signal is the tool name itself.

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

iaas_create_nsx_t_cloud_account_asyncC

Create a NSX Manager cloud account Create a NSX Manager cloud account in the current organization POST /iaas/api/cloud-accounts-nsx-t

NameRequiredDescriptionDefault
bodyYesSpecification for an NSX Manager cloud account.A cloud account identifies a cloud account type and an account-specific deployment region or data center where the associated cloud account resources are hosted. — Cloud account Nsx Manager specification
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
validateOnlyNoIf provided, it only validates the credentials in the Cloud Account Specification, and cloud account will not be created.

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnly=false, destructive=false, openWorld=true, idempotent=false, so the safety profile is covered. Nothing in the description adds behavior beyond that: the async nature of the operation (the name says _async) and the resulting need to poll a request tracker, the fact that credentials/passwords are transmitted, and any rate-limit or permission 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.

Conciseness2/5

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

The first two lines say the same thing twice, and the third line just restates the endpoint already present in the tool title/annotations. Three lines of text deliver one sentence of information, so it is redundant rather than 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?

The input schema is fully documented with nested object descriptions and annotations carry the safety signals, so the agent can construct a valid call. The significant remaining gap is that this is an asynchronous create with a credential-bearing body, and the description says nothing about polling the returned request, about validateOnly being present in the schema, or about consequences of failure — meaningfully incomplete for a mutation tool 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%, including the nested body fields (hostName, username, password, dcid, isGlobalManager, certificateInfo), so the schema does the semantic work. The description contributes nothing beyond the endpoint path and adds no meaning such as how validateOnly interacts with creation or what apiVersion values are typical — 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 ("Create a NSX Manager cloud account in the current organization"), which is more precise than the name alone and clearly separates it from get/update/delete NSX-T siblings. It does not, however, explicitly contrast itself with the many other create_*_cloud_account_async tools, leaving the agent to infer the distinction from the resource noun.

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 iaas_update_nsx_t_cloud_account_async, iaas_create_cloud_account_async, or iaas_create_vsphere_cloud_account_async, nor any stated prerequisites (permissions, on-prem data collector requirement, that it is async and needs polling). The only contextual hint is "in the current organization."

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

iaas_create_on_demand_security_groupC

Create on-demand security group Provision a new on-demand security group POST /iaas/api/security-groups

NameRequiredDescriptionDefault
bodyYesSpecification for a cloud security group — Security group Specification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.4/5.0
Behavior2/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 no behavioral context beyond the POST endpoint string — nothing about async request-tracker behavior, validation failures, or what 'on-demand' implies operationally.

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?

Three near-identical lines ('Create on-demand security group' / 'Provision a new on-demand security group' / 'POST /iaas/api/security-groups') repeat one idea, and the endpoint path is already in the annotation title. The sentences do not earn their 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 mutation tool with a rich nested body and no output schema, the description omits what gets created, whether the call is asynchronous, and what a caller should expect back. Annotations and schema carry most of the weight, but the tool's central concept ('on-demand') is left undefined.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 (name, projectId, rules, tags, customProperties) is fully documented in the schema. The description adds nothing about parameter meaning, 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 verb+resource pair ('create ... security group') is clear, but the key modifier 'on-demand' is never explained, so an agent cannot tell how this differs from sibling tools like iaas_change_security_groups, iaas_reconfigure_security_group, or iaas_update_security_group. The three lines restate the same fact rather than adding specificity.

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

Usage 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 (e.g., that a projectId and often a deploymentId are needed), and no mention of alternative tools for managing security groups. 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.

iaas_create_projectC

Create project POST /iaas/api/projects

NameRequiredDescriptionDefault
bodyYesRepresents a specification for a project. — Project Specification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
validatePrincipalsNoIf true, a limit of 20 principals is enforced. Additionally each principal is validated in the Identity provider and important rules for group email formats are enforced.

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 write/non-idempotent profile is covered structurally. The description adds essentially nothing beyond the endpoint path: it says nothing about side effects, that the operation creates a new project entity with members/viewers/administrators, or about the validatePrincipals principal limit.

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 terse lines, front-loaded with the operation, with no filler. However, the second line merely repeats the annotation title ('POST /iaas/api/projects'), so it is redundant rather than value-adding, keeping it short of a 5.

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 complex mutation with a deeply nested body (member lists with principal types, constraint maps, zone assignment quotas) and no output schema. The rich schema offsets some burden, but the description says nothing about what gets created, return shape, or the principal-validation behavior, leaving a real gap for a complex write.

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

Parameters3/5

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

Schema description coverage is 100%, with each nested field (name, members, constraints, placementPolicy, zoneAssignmentConfigurations, validatePrincipals) documented in the schema itself. The description adds no parameter meaning, so the baseline 3 applies when the schema does all the work.

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 'Create project', which is a verb plus resource, but it largely restates the tool name (iaas_create_project) and adds only the raw HTTP endpoint. It gives no hint of how it differs from other project-creating siblings such as project_post_projects or iaas_create_deployment, so an agent cannot distinguish them from the description 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 guidance on when to use this tool, when not to, or what alternatives exist. It also omits prerequisites such as required permissions or whether the project must be created before zone assignments, so an agent gets no routing or precondition help.

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

iaas_create_storage_profileC

Create storage profile POST /iaas/api/storage-profiles

NameRequiredDescriptionDefault
bodyYesRepresents a specification of generic storage class. — StorageProfileSpecification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 elsewhere. The description adds nothing beyond a restatement of the annotation title (the POST path) – no note about whether the call is asynchronous, what gets created/returned, or whether duplicate names are rejected.

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 lines with no padding, which is good, but the second line merely repeats the annotation title path and the first line repeats the tool name. Efficient but nearly content-free rather than genuinely front-loaded with useful 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 a create tool with a large nested body (13 properties, deprecation notes on diskTargetProperties, a requestType enum for associations) and no output schema, yet the description explains none of the body composition, required-field constraints, or expected response shape. For a mutation tool of this complexity it is significantly 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%, and every body field (name, regionId, defaultItem, storageFilterType, storageProfileAssociations, etc.) is documented in the schema, so the baseline of 3 applies. The description contributes no additional meaning about the body structure or the optional apiVersion 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?

States a specific verb and resource: 'Create storage profile'. However, it makes no attempt to distinguish this generic tool from the provider-specific siblings (iaas_create_aws_storage_profile, iaas_create_azure_storage_profile, iaas_create_gcp_storage_profile, iaas_create_vsphere_storage_profile), so an agent cannot tell from the description why it would pick the generic variant.

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 generic create versus the four provider-specific create tools, no prerequisites (e.g., that regionId must reference an existing region), and no mention of what happens afterwards. The description is purely an endpoint stub.

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

iaas_create_tagC

Create Tag Create a new tag POST /iaas/api/tags

NameRequiredDescriptionDefault
bodyYesSpecification for a tag — Tag specification
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond the endpoint path: it does not say whether duplicate keys error out, what scope the tag is created in, or what is returned on success.

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 two of the three lines duplicate the name and the endpoint path rather than front-loading new information. There is no wasted length, yet also almost no content that earns its place.

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

Completeness2/5

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

This is a mutating tool with a nested request body and no output schema, and the description does not compensate for that complexity: nothing about tag scoping, uniqueness constraints, error behavior, or the shape of the response. An agent can call it, but cannot predict its 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 description coverage is 100%, with 'key' and 'value' documented inline, so the schema carries parameter meaning. The description adds no semantics of its own (e.g. uniqueness of key, whether value is optional in practice), which is the baseline expectation when the schema is complete.

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 pair 'Create a new tag' is specific enough to identify the operation, but it is essentially a restatement of the tool name, and the third line ('POST /iaas/api/tags') is the same information in another form. Nothing distinguishes it from sibling tag tools such as iaas_get_tags or iaas_delete_tag beyond the verb.

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 iaas_get_tags, iaas_get_tags_usage, or iaas_delete_tag, and no preconditions (scope, required permissions, whether the tag must be attached to a resource) are given. The agent must infer all of this 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.

iaas_create_vcf_cloud_account_asyncC

Create a cloud account Create a cloud account in the current organization POST /iaas/api/cloud-accounts-vcf

NameRequiredDescriptionDefault
bodyYesSpecification for a VCF cloud account.A cloud account identifies a cloud account type and an account-specific deployment region or data center where the associated cloud account resources are hosted. — Cloud account VCF specification
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
validateOnlyNoIf provided, it only validates the credentials in the Cloud Account Specification, and cloud account will not be created.

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already declare write, non-destructive, non-idempotent, open-world, so the safety profile is covered. The description adds only "in the current organization"; it says nothing about what the "async" suffix implies (returned request/tracker, polling), what happens on duplicate names, or that credentials are transmitted. Little value 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.

Conciseness3/5

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

Short and front-loaded, but the first two lines are near-duplicates ("Create a cloud account" / "Create a cloud account in the current organization"), so one sentence is effectively wasted 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?

This is a complex tool: nested credential objects, NSX and vCenter endpoints, regions, VCF workload domain, and an asynchronous create. The description addresses none of that — no async behavior, no result/tracker guidance, no VCF scope — even though the rich schema offsets the parameter gap somewhat.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 3 parameters including a deeply nested body, so the schema carries the semantics. The description contributes nothing about body, apiVersion, or validateOnly — baseline 3 is the ceiling here.

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 ("Create a cloud account") are stated, but the description never says VCF — that only appears in the tool name and the raw endpoint line. Against a long sibling list containing iaas_create_cloud_account_async, iaas_create_vsphere_cloud_account_async, iaas_create_vmc_cloud_account_async, etc., the agent gets no explicit differentiation beyond guessing from the URL suffix.

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 named. The agent is left to infer that this is the VCF-flavored creator versus the generic/vSphere/VMC variants, and nothing explains when to prefer validateOnly over an actual create.

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

iaas_create_vmc_cloud_account_asyncC

Create a cloud account Create a cloud account in the current organization POST /iaas/api/cloud-accounts-vmc

NameRequiredDescriptionDefault
bodyYesSpecification for a VMC cloud account.A cloud account identifies a cloud account type and an account-specific deployment region or data center where the associated cloud account resources are hosted. — Cloud account VMC specification
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
validateOnlyNoIf provided, it only validates the credentials in the Cloud Account Specification, and cloud account will not be created.

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already flag a non-idempotent, open-world write, so the description should add what annotations cannot. It omits the critical behavior: this is an *async* operation whose result must be tracked via a request tracker, and it ignores the schema's validateOnly dry-run mode. Credential/permission requirements for the VMC account are also unmentioned.

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?

Three lines, but the first two are near-duplicates ('Create a cloud account' / 'Create a cloud account in the current organization'), wasting the front-loaded position. Only the endpoint line carries distinct 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 tool with a large nested body of required credentials, an async request-tracker return, and no output schema, the description is far too thin. It should explain the async lifecycle and how to obtain regions/data collectors before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 (apiKey, sddcId, hostName, nsxHostName, regions, etc.) and the apiVersion/validateOnly params are already well documented. Baseline 3 applies since the description adds no meaning beyond the schema.

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 generic verb+resource ('Create a cloud account') and repeats it with an org scope. It never says 'VMC' in prose — the only signal that this is the VMC variant rather than the AWS/Azure/GCP/vSphere/NSX-T/AVI LB siblings is the URL path and the tool name. An agent must infer the differentiation rather than read 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 statement about when to use this versus the many sibling cloud-account creators, nor any prerequisites (VMC API key, data collector, region enumeration). The description gives no routing guidance at all beyond the tool name.

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

iaas_create_vsphere_cloud_account_asyncC

Create a cloud account Create a cloud account in the current organization POST /iaas/api/cloud-accounts-vsphere

NameRequiredDescriptionDefault
bodyYesSpecification for a vSphere cloud account.A cloud account identifies a cloud account type and an account-specific deployment region or data center where the associated cloud account resources are hosted. — CloudAccount instance
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
validateOnlyNoIf provided, it only validates the credentials in the Cloud Account Specification, and cloud account will not be created.

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, openWorldHint=true, idempotentHint=false, destructiveHint=false, so the safety profile is covered structurally. The description adds essentially nothing beyond that: it does not explain the async behavior (what a request tracker / task ID is returned), whether duplicate names are allowed, or that credentials are validated against a live vSphere endpoint. "In the current organization" is the only extra 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 short, but the first two lines are near-duplicates ("Create a cloud account" / "Create a cloud account in the current organization") and the endpoint line carries most of the actual signal. Redundancy without harm, but a sentence is wasted.

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 large nested body and no output schema, and the async contract — that creation is tracked as a request and must be polled — is never explained. The schema covers the payload well, but an agent still lacks the operational picture (async polling, credential validation, validateOnly dry-run) needed to use 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% and every body property, including validateOnly and the nested regions/certificateInfo objects, is documented in the schema itself. The description contributes no additional parameter meaning, 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 description states the verb and resource ("Create a cloud account in the current organization"), and the endpoint path "/iaas/api/cloud-accounts-vsphere" implies vSphere specificity. However, the prose never says vSphere, never mentions that this is an asynchronous operation (despite the tool name), and the first two sentences restate each other rather than adding distinct information. It is adequate but leaves differentiation from iaas_create_cloud_account_async largely to the URL.

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 prerequisite guidance is given. Nothing tells the agent to prefer this over iaas_create_cloud_account_async or iaas_create_vmc_cloud_account_async, nor that credentials and a data collector are typically required first. Usage must be inferred entirely from the endpoint path.

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

iaas_create_vsphere_storage_profileC

Create vSphere storage class POST /iaas/api/storage-profiles-vsphere

NameRequiredDescriptionDefault
bodyYesRepresents a specification of vSphere storage class. — StorageProfileVsphereSpecification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, so safety signalling is covered. The description adds nothing beyond the POST path: it does not say whether the class takes effect immediately, whether names must be unique, or what happens to association sub-specs with requestType CREATE/UPDATE/DELETE. It does not contradict 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?

Very short and front-loaded, so there is no wasted prose, but the second line merely restates the HTTP route already present in the annotation title—space that could have carried a prerequisite or a sibling reference.

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 non-idempotent mutation with a large nested specification object, no output schema, and heavy prerequisite data (region, storage policy, datastore associations). Given that complexity, a two-line description leaves out prerequisites, uniqueness/error behavior, and what the response 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% with only two top-level parameters (body, apiVersion) and deeply documented nested fields, so the schema carries the meaning. The description adds no additional parameter guidance, which is the baseline-3 case.

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 specific verb and resource (create vSphere storage class), and the 'vSphere' qualifier does separate it from the AWS/Azure/GCP create-storage-profile siblings. However, it never distinguishes itself from the generic iaas_create_storage_profile or from iaas_update_vsphere_storage_profile, and the second line is just the HTTP route.

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 prerequisites (a regionId and typically a vSphere storage policy or datastore association from iaas_get_fabric_vsphere_storage_policies are needed), and no mention of the update/delete alternatives. The only cue is the endpoint path.

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

iaas_create_zoneC

Create zone POST /iaas/api/zones

NameRequiredDescriptionDefault
bodyYesSpecification for a zone. — Zone specification
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the write/non-destructive profile is covered. The description adds no behavioral context of its own: not whether creation is synchronous or async, what happens on duplicate zone names, whether computeIds or tagsToMatch change matching scope, or any permission requirement. It does not contradict 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?

Two lines with no filler, so nothing is wasted, but content is essentially duplicated from the name and the annotation title. Front-loading is fine; the problem is under-specification rather than verbosity.

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 7-property body (required name + regionId, arrays of compute IDs, placement policy enum, tag-matching rules) and no output schema. For that complexity, two words and a path leave critical things unstated: what the call returns, whether the zone is usable immediately, and how the zone interacts with project/region assignments.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 documents name, regionId, folder, computeIds, placementPolicy and customProperties individually, so the schema carries the semantics. The description contributes nothing beyond the endpoint path, which lands at the baseline of 3.

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?

"Create zone" plus the raw path restates the tool name (iaas_create_zone) and the annotation title ("POST /iaas/api/zones") without adding anything. No scope, no explanation of what an IaaS zone is or how it relates to regions/compute, and no differentiation from iaas_update_zone, iaas_delete_zone, or iaas_get_zones.

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 (e.g. that a regionId must already exist), and no mention of alternatives such as iaas_create_region or iaas_update_zone for modifying existing zones. An 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.

iaas_delete_avi_lb_account_asyncC
DestructiveIdempotent

Delete an AVI Load Balancer cloud account Delete an AVI Load Balancer cloud account with a given id DELETE /iaas/api/cloud-accounts-avilb/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Cloud Account (path)
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 and readOnlyHint=false, so the description needs to add what happens on deletion (cascading removal of associated load balancers/config?) and what the 'async' suffix means. It adds none of that; the second sentence only repeats the first, and the endpoint adds no behavioral detail.

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 sentences one and two say the same thing verbatim apart from 'with a given id', which is wasted payload. The endpoint line is the only non-redundant addition.

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, asynchronous operation with no output schema and no explanation of the async contract — an agent is not told that it likely receives a request tracker and must poll (e.g. via iaas_get_request_tracker) to confirm completion. For a mutation tool whose annotations stop at 'destructive', that omission is significant.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 (id, apiVersion) are documented in the schema, so the baseline 3 applies. The phrase 'with a given id' merely restates the id parameter and adds no format, source, or lookup 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?

States a specific verb (Delete) and a specific resource (AVI Load Balancer cloud account), plus the underlying HTTP path, so an agent can distinguish it from iaas_get_avi_lb_cloud_account or iaas_create_avi_lb_cloud_account_async. However, it never explains how it relates to the generic sibling iaas_delete_cloud_account, which likely also handles cloud account deletion.

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 instead of iaas_delete_cloud_account or the other provider-specific delete tools, and no prerequisites or preconditions (e.g. must the account be empty or unassociated before deletion). The description assumes the reader already knows the AVI-specific routing rule.

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

iaas_delete_aws_cloud_accountC
DestructiveIdempotent

Delete an AWS cloud account Delete an AWS cloud account with a given id DELETE /iaas/api/cloud-accounts-aws/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Cloud Account (path)
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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. The description adds nothing beyond that: it does not say whether associated storage profiles, machines or networks are removed, whether the operation is async, or whether confirmation is needed — the main things an agent would want to know before a destructive 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?

It is short and front-loads the core action, but the first two lines are redundant restatements of the same sentence, and the raw REST path is structural metadata rather than useful guidance. One tight sentence would have served better.

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 destructiveness and no output schema to explain, the description is minimally sufficient to invoke the tool correctly (id + apiVersion). It falls short on the side effects of deleting an AWS cloud account, which is the key missing context 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% — the id path parameter and apiVersion format are fully documented in the schema. The description only restates 'with a given id', adding no semantics 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+resource: deleting an AWS cloud account by id, which distinguishes it from the generic iaas_delete_cloud_account and the other provider-specific deletes (azure, gcp, vsphere, vmc). However, the first two sentences are near-identical restatements, so the extra wording adds no 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 guidance on when to use this versus iaas_delete_cloud_account or the provider-specific alternatives, nor any prerequisites or warnings before a destructive delete. The agent must infer all selection logic 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.

iaas_delete_aws_storage_profileA
DestructiveIdempotent

Delete AWS storage class Delete AWS storage class with a given id DELETE /iaas/api/storage-profiles-aws/{id}

NameRequiredDescriptionDefault
idYesThe ID of the storage class. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

A3.5/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 readOnlyHint=false, so the safety profile is covered structurally. The description adds only the DELETE endpoint and id requirement, without explaining consequences such as whether associated resources are affected or whether deletion 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.

Conciseness4/5

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

The definition is short and front-loads the core action and endpoint. However, the first two lines are largely redundant, which slightly weakens 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 delete-by-id operation, the description plus rich annotations and fully documented schema give enough information to invoke the tool correctly. It does not cover edge cases or deletion impact, but those are partly signaled by destructiveHint=true.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 id and optional apiVersion are already documented in the input schema. The description mentions 'given id' but adds no syntax, format, or behavioral 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 gives a specific verb and resource: 'Delete AWS storage class' with a given id, and the endpoint confirms the AWS storage-profile scope. This clearly distinguishes it from sibling tools such as iaas_delete_azure_storage_profile, iaas_delete_gcp_storage_profile, and iaas_delete_storage_profile.

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 states what the tool does but provides no guidance on when to use it versus alternatives, prerequisites, or conditions under which deletion should be avoided. An agent must infer usage entirely from the tool name and annotations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_azure_cloud_accountC
DestructiveIdempotent

Delete an Azure Cloud Account Delete an Azure Cloud Account with a given id DELETE /iaas/api/cloud-accounts-azure/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Cloud Account (path)
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 and openWorldHint=true, so the description need not restate the safety profile, but it adds essentially nothing beyond them — no mention of what happens to dependent resources, whether deletion requires the account to be detached first, or what authorization is needed. The only extra content is the raw HTTP 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?

The first line duplicates the second line and the annotation title, so the description wastes roughly a third of its length on repetition. What remains is short and front-loaded, but the redundancy is notable in a three-line description.

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 destructive, provider-scoped delete with no output schema, the description omits the things an agent most needs: consequences of deletion, preconditions, and how to recover the correct identifier. The annotations carry the safety signal, but the description does little to complete the picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both `id` and `apiVersion` are already documented in the input schema. The description's phrase 'with a given id' merely restates the schema and adds no format, sourcing, or lookup guidance (e.g., how to obtain the id via iaas_get_azure_cloud_accounts). 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 an Azure Cloud Account') and names the provider, which distinguishes it from generic siblings like iaas_delete_cloud_account and provider-specific ones like iaas_delete_aws_cloud_account. It does not, however, explain how it differs behaviorally from those siblings beyond the provider 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?

There is no explicit guidance on when to use this tool versus alternatives, no prerequisites (e.g., the account must be unassociated/no deployments), and no warning or confirmation guidance despite the operation being irreversible in practice. Usage is only implied by the tool name and the 'with a given id' phrase.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_azure_storage_profileC
DestructiveIdempotent

Delete Azure storage class Delete Azure storage class with a given id DELETE /iaas/api/storage-profiles-azure/{id}

NameRequiredDescriptionDefault
idYesThe ID of the storage class. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 readOnlyHint=false, so the safety profile is covered. The description adds no behavioral context beyond the endpoint path: it does not mention deletion consequences, dependent resources, permissions, or what happens on repeated calls.

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 resource. It is slightly redundant because the first two lines repeat the same idea, but the API path adds useful endpoint context and there is no bloated 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 simple id-based delete with rich annotations and full schema coverage, the description is minimally sufficient to invoke the tool. However, because this is a destructive operation, it should say more about dependencies or irreversible effects; the annotations carry that burden instead.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents both the required id path parameter and the optional apiVersion parameter. The description only says the deletion is 'with a given id', adding no syntax or format 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: delete an Azure storage class by id. It is mostly clear, though it uses 'storage class' while the tool name and siblings use 'storage profile', and it does not explicitly differentiate itself from the generic iaas_delete_storage_profile or the AWS/GCP variants.

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 what to delete but gives no guidance on when to use this instead of iaas_delete_storage_profile or the AWS/GCP equivalents. There are no prerequisites, exclusions, or alternative-tool routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_block_deviceA
DestructiveIdempotent

Delete a BlockDevice Delete a BlockDevice 1. A block device cannot be deleted when attached to a machine. 2. A block device with persistent property set to 'false' is deleted. 3. A block device with persistent property set to 'true' needs an additional parameter 'purge' to be set to true, for deletion. DELETE /iaas/api/block-devices/{id}

NameRequiredDescriptionDefault
idYesThe ID of the block device. (path)
purgeNoControls whether this is a force delete operation. If true, best effort is made for deleting this block device. Use with caution as force deleting may cause inconsistencies between the cloud provider and VMware Aria Automation.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
forceDeleteNoControls whether this is a force delete operation. If true, best effort is made for deleting this block device. Use with caution as force deleting may cause inconsistencies between the cloud provider and VMware Aria Automation.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructive/readOnly/idempotent hints, but the description adds substantive behavior beyond them—namely the attachment guard and the persistent=true requiring purge=true rule. These are non-obvious conditions an agent would otherwise miss.

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 numbered rules are clear and useful, but the phrase 'Delete a BlockDevice' is repeated verbatim at the start, which is wasted space. Structure is scannable but front-loading suffers from the duplication.

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 single-resource delete with no output schema, the description covers the key operational caveats (attachment state, persistent/purge rules) while annotations carry the safety profile. Nearly complete, though it doesn't clarify the purge vs forceDelete distinction.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage the baseline is 3, but the description adds meaning beyond the schema: it explains that 'purge' must be set true specifically for persistent block devices. Note a slight semantic drift—the schema frames purge/forceDelete as force-delete, while the description ties purge to deleting persistent devices.

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 ('Delete a BlockDevice'), so an agent knows exactly what it does and can distinguish it from iaas_get_block_device or iaas_create_block_device by name. It doesn't explicitly call out sibling alternatives, but the delete intent 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?

Provides real preconditions: it cannot be deleted while attached to a machine, and the persistent/purge interaction determines whether deletion succeeds. This is clear operational context, though it does not name alternative tools or explicitly state when to prefer them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_block_device_snapshotC
DestructiveIdempotent

Delete snapshot operation for Block device Second day delete snapshot operation for Block device DELETE /iaas/api/block-devices/{id}/snapshots/{id1}

NameRequiredDescriptionDefault
idYesThe ID of the block device. (path)
id1YesSnapshot id to delete. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.9/5.0
Behavior3/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. The description adds only the HTTP endpoint, and does not say what happens to the snapshot's data, whether it's permanent, or permission requirements — leaving the added value modest but not wrong.

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 opening two lines are near-duplicates, and 'Second day delete snapshot operation' is a confusing, non-earning sentence. The useful content (the DELETE route) 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 a destructive delete with no output schema, annotations do cover the safety profile and the schema is complete, so an agent can invoke it. Still, the description contributes little about consequences or prerequisites beyond what structured fields 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%, so both path parameters (block device id and snapshot id1) and the optional apiVersion are already documented. The description adds no additional parameter guidance, 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 (Delete) and resource (Block device snapshot) and confirms the route DELETE /iaas/api/block-devices/{id}/snapshots/{id1}, which clearly separates it from siblings like iaas_delete_block_device and iaas_delete_machine_snapshot. However, it never explicitly names those sibling alternatives, and the 'Second day delete snapshot operation' line is redundant rather than clarifying.

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 similar iaas_delete_block_device, iaas_delete_machine_snapshot, or snapshot-revert tools. The name implies a delete-of-a-snapshot, but the description offers no prerequisites (snapshot must exist/exist in a certain state) or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_cloud_accountC
DestructiveIdempotent

Delete a cloud account Delete a cloud account with a given id DELETE /iaas/api/cloud-accounts/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Cloud Account (path)
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
forceDeleteNoIf true, best effort is made for deleting this endpoint and all related resources. In some situations, this may leave provisioned infrastructure resources behind. Please ensure you remove them manually. If false, a standard delete action will be exe…

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, openWorldHint=true and readOnlyHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that—no note about cascading effects on provisioned infrastructure, no mention that forceDelete alters the deletion semantics, no irreversibility statement. It essentially restates the operation the annotations describe.

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 first two lines are near-duplicates ('Delete a cloud account' / 'Delete a cloud account with a given id'), and the raw endpoint path adds little for an agent that already has the tool name and annotations title. Some redundancy at the cost of 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?

Annotations cover the destructive/idempotent profile and the schema documents all three parameters, so a minimal description is defensible for this small tool. Still, for a destructive infrastructure deletion it omits consequences (what happens to dependent machines, networks, or deployed workloads) and whether the caller should prefer the provider-specific delete variant.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 id, apiVersion and forceDelete are all documented in the schema, including forceDelete's best-effort behavior and leftover-resource caveat. The description only says 'with a given id', which adds no meaning over 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?

The description names a specific verb (Delete) and resource (cloud account) plus the target id and the underlying DELETE endpoint. It does not, however, distinguish this generic delete from the many sibling tools that delete specific cloud account types (iaas_delete_aws_cloud_account, iaas_delete_azure_cloud_account, iaas_delete_vsphere_cloud_account), leaving the agent to infer that this one is provider-agnostic.

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 generic delete versus the provider-specific deletes that clutter the sibling list, nor on prerequisites such as whether dependent resources or deployments must be removed first. The only usage-flavored hint is the implicit 'id' requirement already encoded in the schema's required array.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_cloud_account_nsx_tC
DestructiveIdempotent

Delete a NSX Manager cloud account Delete a NSX Manager cloud account with a given id DELETE /iaas/api/cloud-accounts-nsx-t/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Cloud Account (path)
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, so the safety profile is covered. The description adds nothing beyond repeating the DELETE verb: no note on what dependent objects are affected, whether the call is async or how failures (account in use) surface. With annotations carrying the load, this is a weak but non-contradictory addition.

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 action, but the first and second lines are near-duplicates and the raw endpoint line adds little for an agent. It is short, yet a third of 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?

For a two-parameter delete with full schema coverage and annotations covering the destructive/idempotent profile, the essentials are present. What is missing is the consequence of destruction and any precondition, which matters for a destructive operation on a cloud account.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 id and apiVersion are already documented in the schema. The phrase 'with a given id' merely restates the path parameter; baseline 3 applies when 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?

States a specific verb+resource pair ('Delete a NSX Manager cloud account') with the identifier used, and the NSX-T qualifier distinguishes it from the generic iaas_delete_cloud_account sibling. No explicit sibling routing, so not 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 statement of when to use this instead of iaas_delete_cloud_account or iaas_delete_vmc_cloud_account and no prerequisites (e.g. account must be unused/detached). Usage is only implied by the name and the NSX-T qualifier.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_compute_gatewayC
DestructiveIdempotent

Delete a compute gateway Delete compute gateway with a given id DELETE /iaas/api/compute-gateways/{id}

NameRequiredDescriptionDefault
idYesThe ID of the compute gateway. (path)
apiVersionNoControls whether this is a force delete operation. If true, best effort is made for deleting this compute gateway. Use with caution as force deleting may cause inconsistencies between the cloud provider and VMware Aria Automation.
forceDeleteNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, openWorldHint=true and readOnlyHint=false, so the safety profile is covered. The description adds nothing beyond the endpoint path — no note on irreversibility, forceDelete side effects on cloud/VMware Aria Automation consistency, or async completion 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 and front-loaded, but the first two lines are near-duplicates ('Delete a compute gateway' / 'Delete compute gateway with a given id') and the third is just the route, so a third of the text is redundant rather than informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive single-id delete with full annotation and schema coverage and no output schema, the description gives just enough to invoke it correctly. It is missing the one thing structured fields cannot convey well: what deletion actually destroys and the risk of forceDelete, which matters 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 coverage is 100%, so the parameters are documented structurally and the baseline is 3. The description contributes nothing to parameter meaning, which is a real loss here because the schema's apiVersion/forceDelete descriptions are swapped and a clarifying sentence would have resolved that ambiguity.

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 a compute gateway by id) and even names the HTTP route, so an agent can distinguish it from iaas_get_compute_gateway and iaas_create_compute_gateway. It stops short of explicitly contrasting with those siblings, 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 the get/list variants, no prerequisite (e.g., gateway must be detached or unreferenced before deletion), and no warning about consequences. The three lines only restate the operation and its endpoint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_compute_natC
DestructiveIdempotent

Delete a compute nat Delete compute nat with a given id DELETE /iaas/api/compute-nats/{id}

NameRequiredDescriptionDefault
idYesThe ID of the compute nat resource. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
forceDeleteNoControls whether this is a force delete operation. If true, best effort is made for deleting this nat. Use with caution as force deleting may cause inconsistencies between the cloud provider and VMware Aria Automation.

TDQS

C2.5/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. The description adds nothing beyond the generic 'Delete... with a given id' and the endpoint path — it does not warn that the deletion is irreversible or explain the forceDelete side effects (that caveat lives only 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two lines say the same thing twice ('Delete a compute nat' / 'Delete compute nat with a given id'), wasting space on redundancy rather than front-loading useful detail. The only genuinely additive content is the trailing HTTP endpoint line.

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-resource delete with full annotation and schema coverage, the description is minimally sufficient — an agent can identify the operation and the required id. However it omits any caution about the destructive/irreversible nature and the forceDelete consequences, leaving that to 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 id, apiVersion, and forceDelete params are fully documented in the schema itself, including the warning about force-delete inconsistencies. The description contributes no parameter meaning beyond the phrase 'with a given id', 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 'Delete' and the resource 'compute nat' with the qualifier 'with a given id', which is clear enough. But the first two lines are essentially a restatement of the tool name, so it adds little beyond what the identifier already conveys, and it never distinguishes this from sibling tools like iaas_get_compute_nat or iaas_reconfigure_nat.

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, no prerequisite or permission information, and no mention of the related reconfiguration/get operations. The agent is left to infer everything from the name and the raw HTTP path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_configuration_propertyC
DestructiveIdempotent

Delete a configuration property DELETE /iaas/api/configuration-properties/{id}

NameRequiredDescriptionDefault
idYes(path)
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 elsewhere. The description adds nothing beyond that — no note on permanence, cascading effects, required permissions, or whether the property must exist first; the endpoint line merely restates the title annotation.

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 line is front-loaded and efficient, but the second line duplicates the annotation title verbatim and earns no place. It is well-sized but one of two lines is redundant.

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, fully-schema-documented delete endpoint with no output schema, this is nearly sufficient. What is missing is the destructive-behavior context (irreversibility, confirmation expectations), which annotations partially 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 the id and apiVersion parameters are already documented in the schema. The description contributes no additional semantics about the id (e.g., whether it is a property name or UUID), 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 and resource ('Delete a configuration property') and the HTTP route makes the target collection unambiguous. The verb distinguishes it from the sibling read/patch tools (iaas_get_configuration_property, iaas_patch_configuration_property), though it never names 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?

There is no guidance on when to use this versus the sibling get/patch configuration-property tools, no prerequisites, and no warning that the deletion is irreversible. The agent must infer everything from the name and the destructiveHint annotation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_customnameC
DestructiveIdempotent

Delete custom name Delete custom name with a given id DELETE /iaas/api/naming/{id}

NameRequiredDescriptionDefault
idYesThe ID of the custom name. (path)
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 fully covered. The description adds nothing beyond that – it does not say what happens to objects referencing the deleted name, whether the call fails on an unknown id, or what the 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loaded, but the first line and the second line are redundant restatements of the same operation, and the endpoint line partly duplicates the annotation title. It earns its place overall but wastes 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 simple two-parameter destructive delete with full annotation coverage and no output schema, the definition gives enough to invoke correctly: the verb, the target resource, and the id path. Only failure-mode and side-effect context 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 both the 'id' path parameter and 'apiVersion' are already documented. The description adds only marginal meaning with 'with a given id', which is the baseline expected 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 ('Delete custom name') plus the REST endpoint, so the agent knows exactly what is deleted. It does not, however, distinguish the tool from its siblings iaas_create_custom_name, iaas_get_custom_name, or iaas_update_custom_name beyond the verb implied by 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?

There is no explicit when-to-use or when-not-to-use guidance; usage is only inferable from the word 'Delete'. Nothing tells the agent about prerequisites, whether the custom name must be unassigned first, or what alternative to pick for viewing/updating a name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_data_collectorA
DestructiveIdempotent

Delete Data Collector Delete Data Collector with a given id. Note: Data collector endpoints are not available in VMware Aria Automation (on-prem) release. DELETE /iaas/api/data-collectors/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Data Collector. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true, openWorldHint=true and readOnlyHint=false, so the agent knows this is an irreversible write. The description adds only the on-prem availability caveat and the raw endpoint path; it does not say what dependent objects are affected, whether the data collector must be stopped/unregistered first, or what the response is.

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 lines, front-loaded with the action statement and followed by the availability caveat. The first two lines restate each other ('Delete Data Collector' / 'Delete Data Collector with a given id'), a minor redundancy that keeps it off a 5.

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 delete with full schema coverage, rich annotations and no output schema, the description supplies the one non-obvious fact an agent needs: this API is not present on the on-prem release. Nothing else is strictly required, though a note on preconditions would round it out.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 (id and apiVersion) are already documented in the schema. The description adds no format hints, ID-source guidance, or apiVersion behavior, 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 ('Delete Data Collector with a given id') and includes the underlying endpoint, so the operation is unambiguous. It does not explicitly contrast with siblings such as iaas_get_data_collector or iaas_create_data_collector, but the verb makes the distinction obvious.

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 note that data collector endpoints are unavailable in the VMware Aria Automation on-prem release is a genuine when-not-to-use constraint that most sibling deletes lack. It stops short of naming alternatives or prerequisites (e.g., what must be true before deletion), so it isn't a full usage rule set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_deploymentC
DestructiveIdempotent

Delete a deployment Delete a deployment. DELETE /iaas/api/deployments/{id}

NameRequiredDescriptionDefault
idYesThe id of the deployment. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
forceDeleteNoIf true, best effort is made for deleting this deployment and all related resources. In some situations, this may leave provisioned infrastructure resources behind. Please ensure you remove them manually. If false, a standard delete action will be e…

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, readOnlyHint=false and openWorldHint=true, so the safety profile is covered structurally. The description adds nothing beyond restating the operation and the HTTP path — no statement about what is destroyed (all deployment resources), irreversibility, or the consequences of a best-effort force delete that may orphan infrastructure.

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 first two lines say the identical thing ("Delete a deployment" twice) and the third is just the raw endpoint. No sentence adds information beyond the tool name; the space could have been used for sibling routing.

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 3-parameter tool, annotations and the fully documented schema cover the mechanics, and there is no output schema to explain. What remains missing is the one thing description must supply: disambiguation from the near-identical deployment_delete_deployment sibling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 a detailed forceDelete explanation, so the description is not required to carry parameter meaning. It nevertheless mentions no parameters at all, leaving the baseline 3 appropriate rather than a higher score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Delete a deployment") plus the underlying REST endpoint, so the operation is unambiguous. However, it does nothing to separate it from the sibling deployment_delete_deployment (and onboarding_delete_deployment_by_id), which by name appear to delete the same resource through a different API surface.

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 IaaS-scoped delete versus the deployment_* sibling, no prerequisites or permission notes, and no mention of when forceDelete is appropriate. The agent must infer everything about selection 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.

iaas_delete_flavor_profileC
DestructiveIdempotent

Delete flavor profile Delete flavor profile with a given id DELETE /iaas/api/flavor-profiles/{id}

NameRequiredDescriptionDefault
idYesThe ID of the flavor. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, so the safety profile is known. The description adds nothing beyond them: it never says the profile is permanently removed, whether it must be unused by machines, or what happens to references.

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?

It is very short and the destructive action is front-loaded, but the first two lines restate the same thing ("Delete flavor profile" / "Delete flavor profile with a given id"), which is mild redundancy rather than added 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 single-required-parameter delete with full schema coverage and rich annotations, the definition is minimally sufficient to call correctly. It still omits consequences of deletion and any preconditions, which would matter 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% and both parameters (id, apiVersion) are documented in the schema. The description only repeats "with a given id", adding no format detail, ID-source guidance, or apiVersion note, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ("Delete flavor profile with a given id") and reinforces it with the HTTP method and path DELETE /iaas/api/flavor-profiles/{id}. That is enough to separate it from other iaas delete tools, though it does not explicitly name any sibling.

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, what prerequisites must hold, or which alternatives (e.g. iaas_update_flavor_profile, iaas_get_flavor_profile) exist. The agent has to infer usage 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.

iaas_delete_gcp_cloud_accountC
DestructiveIdempotent

Delete an GCP cloud account Delete an GCP cloud account with a given id DELETE /iaas/api/cloud-accounts-gcp/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Cloud Account (path)
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 and openWorldHint=true, so the safety profile is covered by structured data. The description adds nothing behavioral: it does not say whether the call is synchronous or returns a request tracker, what happens to associated resources/machines, or what permissions are required — it merely restates the name and pastes the 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?

Short, but the core statement is duplicated verbatim ('Delete an GCP cloud account' appears twice) and the third line is just the HTTP route. Two of three lines are redundant, so it is concise in length but not in information density.

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 destructive, open-world delete with no output schema, the description should at least state whether the operation is asynchronous and what a caller observes after success. Sibling tools such as iaas_update_cloud_account_async show async patterns exist in this family, and nothing here tells the agent which pattern applies.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both 'id' (path) and 'apiVersion' fully documented, so the baseline is 3. The phrase 'with a given id' confirms the id is the path identifier, but no format or example is added 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?

Specific verb+resource: 'Delete an GCP cloud account' with the REST endpoint, which distinguishes it from iaas_delete_aws_cloud_account and iaas_delete_azure_cloud_account by provider. However, it never mentions the generic iaas_delete_cloud_account sibling, so the differentiation relies entirely on the provider token in the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus iaas_delete_cloud_account, no prerequisites (e.g. account must be unregistered / no dependent machines), and no warning about what to expect after deletion. The agent must infer the entire usage context from the name and the destructiveHint annotation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_gcp_storage_profileC
DestructiveIdempotent

Delete GCP storage profile Delete GCP storage profile with a given id DELETE /iaas/api/storage-profiles-gcp/{id}

NameRequiredDescriptionDefault
idYesThe ID of the storage profile. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, readOnlyHint=false and openWorldHint=true, so the safety profile is fully covered. The description adds nothing beyond that — it just restates 'delete ... with a given id' and the REST path, saying nothing about what happens to dependent entities or whether deletion fails while the profile is in use.

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 operation, but the first two lines are near-verbatim duplicates ('Delete GCP storage profile' / 'Delete GCP storage profile with a given id'), so one sentence is wasted. The REST endpoint line is the only additional content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, idempotent delete with complete schema coverage and full annotations, the definition is minimally sufficient to invoke correctly. It omits consequences of deletion (cascading effects, behavior when the profile is attached to machines), which is the 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% with both parameters documented ('The ID of the storage profile. (path)' and the apiVersion format). The description's phrase 'with a given id' adds no 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?

States a specific verb and resource ('Delete GCP storage profile') and scopes it to a given id, which is enough to separate it from the AWS/Azure/vSphere delete siblings. It does not explicitly contrast itself with the generic iaas_delete_storage_profile, but the cloud qualifier carries the differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as iaas_delete_storage_profile (generic) or the get/update GCP storage profile siblings. The agent must infer that the GCP-specific delete is the right pick.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_image_profileC
DestructiveIdempotent

Delete image profile Delete image profile with a given id DELETE /iaas/api/image-profiles/{id}

NameRequiredDescriptionDefault
idYesThe ID of the image. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 nothing beyond that — it does not say whether deletion fails when the profile is in use, whether dependent resources are affected, or what authorization is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short and front-loaded, but the phrase 'Delete image profile' is repeated verbatim across two lines and the third line merely restates the endpoint. Some redundancy that could be collapsed without losing 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 destructive single-parameter delete with full annotation coverage and no output schema, the definition is minimally adequate. It omits the one thing that would genuinely help an agent: failure conditions and side effects of deleting an image profile.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 id and apiVersion parameters are already documented in the schema. The description only echoes 'with a given id' and adds no format, sourcing, or versioning nuance, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource (delete image profile) plus the exact REST path, which separates it from sibling delete tools such as iaas_delete_network_profile and iaas_delete_storage_profile. It stops short of explicitly routing the agent away from those siblings, so it is clear but not maximally differentiated.

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 alternatives (e.g. iaas_update_image_profile or iaas_get_image_profile), and no prerequisites such as needing the image profile to be unused. The only usage signal is the implicit 'given id'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_integrationB
DestructiveIdempotent

Delete an integration Delete an integration with a given id asynchronously DELETE /iaas/api/integrations/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Integration (path)
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 openWorldHint=true, so safety is covered. The description adds one genuinely useful trait beyond them: the operation is asynchronous, implying a request-tracker style response rather than immediate completion. It does not, however, say what is destroyed downstream (e.g. associated cloud accounts/zones) or that the returned request must be polled.

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 first two lines are near-duplicates ('Delete an integration' / 'Delete an integration with a given id asynchronously'), so a full sentence is spent restating the same claim; the only new information is the trailing endpoint and the word 'asynchronously'.

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 two-parameter destructive delete with full annotation and schema coverage, the description is minimally sufficient: the agent knows what is deleted, by id, and that it is async. It is missing the follow-up semantics of an async delete (what request id comes back and how to track it) and any note on cascading effects, which matter for a destructive call 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%, so both `id` and `apiVersion` are already documented in the schema. The description only echoes that an id is required and adds no format or versioning nuance 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 ('Delete an integration') and adds the scoping detail 'with a given id' plus the underlying endpoint. It does not differentiate from the many other iaas_delete_* siblings (cloud accounts, storage profiles, zones) or from its counterpart iaas_update_integration_async, so an agent gets a clear purpose but no routing help.

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 (e.g. detaching vs deleting, or deleting a cloud account instead of an integration). The only contextual clue is 'asynchronously', which describes behavior, not selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_internal_network_ip_rangeC
DestructiveIdempotent

Delete internal network IP range Delete internal network IP range with a given id DELETE /iaas/api/network-ip-ranges/{id}

NameRequiredDescriptionDefault
idYesThe ID of the network IP range. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 readOnlyHint=false, so the safety profile is covered elsewhere. The description adds only the raw HTTP path and restates the operation; it says nothing about what happens to dependent resources, whether deletion can be undone, or what permissions are needed.

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 first two lines say the same thing ("Delete internal network IP range" repeated with "with a given id"), so one of them does not earn its place. The endpoint line is the only additional content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive delete tool the structured data does most of the work: annotations flag it as destructive and idempotent, and the schema fully documents both parameters. The description is minimally sufficient but leaves the agent without any note on side effects or prerequisites before performing an irreversible 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 id and apiVersion parameters are already documented in the schema. The description's "with a given id" is redundant with that schema text and adds no format or validation detail, 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 and resource ("Delete internal network IP range") and ties it to the concrete endpoint DELETE /iaas/api/network-ip-ranges/{id}, so an agent can distinguish it from the get/update siblings by the verb alone. It stops short of explicitly naming 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 alternatives such as iaas_update_internal_network_ip_range or iaas_get_internal_network_ip_range, nor any preconditions such as checking that the range is unused before deletion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_load_balancerC
DestructiveIdempotent

Delete load balancer Delete load balancer with a given id DELETE /iaas/api/load-balancers/{id}

NameRequiredDescriptionDefault
idYesThe ID of the load balancer. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
forceDeleteNoControls whether this is a force delete operation. If true, best effort is made for deleting this load balancer. Use with caution as force deleting may cause inconsistencies between the cloud provider and VMware Aria Automation.

TDQS

C2.3/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 safety profile is known. The description adds nothing beyond that — no note about what happens to attached virtual servers, whether the delete succeeds asynchronously, or the consequences and cautions around force deletion.

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?

Three lines where one would do: the first and second lines are the same statement repeated, and the third is a raw endpoint path already captured in the annotation title. Short, but redundancy rather than density.

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 destructive, open-world mutation with no output schema, the description should explain outcome, async behavior, and risk of the forceDelete path. It explains none of these, leaving the agent dependent entirely on annotations plus schema prose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each parameter (id, apiVersion, forceDelete) is documented in the schema, so baseline 3 applies. The description's 'with a given id' merely restates the required parameter and adds no semantics about apiVersion defaults or when forceDelete should be chosen.

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 does convey verb and resource ('Delete load balancer ... with a given id'), but it says the same thing twice and the third line is just the REST path. It offers no differentiation from close siblings such as iaas_delete_load_balancer_operation, iaas_scale_load_balancer, or iaas_create_load_balancer.

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 mention of prerequisites (load balancer must exist, be detached, or be in a deletable state), and no pointer to iaas_delete_load_balancer_operation for async tracking. The agent must infer everything from the name and annotations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_load_balancer_operationC

Delete operation for load balancer Second day delete operation for load balancer POST /iaas/api/load-balancers/{id}/operations/delete

NameRequiredDescriptionDefault
idYesThe ID of the load balancer. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
forceDeleteNoControls whether this is a force delete operation. If true, best effort is made for deleting this load balancer. Use with caution as force deleting may cause inconsistencies between the cloud provider and VMware Aria Automation.

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description only says 'delete', while the annotations declare destructiveHint=false and idempotentHint=false — deleting a load balancer is inherently destructive, so the text is in tension with the declared safety profile. Nothing is said about asynchronous completion, request tracking, or how forceDelete interacts with cloud-provider inconsistency.

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 two lines are near-duplicates ('Delete operation for load balancer' / 'Second day delete operation for load balancer'), and the raw path is redundant with the title. Front-loaded yes, but with wasted repetition and undefined terminology.

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 destructive, non-idempotent, open-world async operation with no output schema, the description should at least say that it returns/queues an operation task and what state the load balancer ends in. Neither the async nature nor the difference from iaas_delete_load_balancer is covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (id, apiVersion, forceDelete are all documented, including the force-delete caveat), so the schema already carries parameter meaning. The description contributes nothing about parameters beyond restating the delete intent, which is the expected baseline here.

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 says this is a delete operation for a load balancer and gives the underlying POST path, which conveys a verb and resource. But it never distinguishes itself from the sibling iaas_delete_load_balancer, and 'Second day delete operation' is unexplained jargon that leaves the difference between the two delete tools unclear.

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 operation versus iaas_delete_load_balancer, iaas_scale_load_balancer, or the other load-balancer operations, and no prerequisites (e.g. read-only mode, quiescing, or existing async task) are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_machineC
DestructiveIdempotent

Delete Machine Delete Machine with a given id DELETE /iaas/api/machines/{id}

NameRequiredDescriptionDefault
idYesThe ID of the machine. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
forceDeleteNoControls whether this is a force delete operation. If true, best effort is made for deleting this machine. Use with caution as force deleting may cause inconsistencies between the cloud provider and VMware Aria Automation.

TDQS

C2.5/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 safety profile is covered. The description adds nothing beyond the HTTP verb and path: it does not say what state the machine is left in, whether disks are removed, or that deletion is irreversible. The forceDelete caveats live only 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loaded, but the three lines are near-duplicates of one another and of the title; the repetition does no work and crowds out the behavior notes an agent actually needs.

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 destructive, open-world delete on a cloud machine, the description supplies no lifecycle context: no ordering relative to power-off, no note about dependent resources, no confirmation of what is returned (there is no output schema). Annotations and schema cover the mechanical bits, but a call this consequential deserves more than an endpoint echo.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 id, apiVersion and the forceDelete inconsistency warning. The description contributes no parameter meaning beyond the {id} path placeholder, which is the baseline 3 case.

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 specific verb and resource ('Delete Machine with a given id'), which is clearer than the bare name, but it does no work to distinguish this from the many other iaas_delete_* siblings. It restates the title and endpoint path rather than defining scope or consequences.

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 delete a machine versus alternatives like iaas_unregister, iaas_suspend_machine, or iaas_power_off_machine, nor any precondition such as the machine needing to be powered off first. The agent is left to infer everything about selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_machine_diskC
DestructiveIdempotent

Delete machine disk Remove a disk from a given machine. DELETE /iaas/api/machines/{id}/disks/{diskId}

NameRequiredDescriptionDefault
idYesThe ID of the machine. (path)
diskIdYesThe ID of the disk. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, and the description adds nothing beyond them — the route line merely repeats the annotation title. It does not say whether the disk is destroyed or just detached, whether backing storage is reclaimed, or what happens on a repeat call.

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 operation stated in the first line. The third line duplicates the route already present in the annotations title, which is minor waste but not 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 destructive, open-world mutation the description covers only the bare identity of the operation. Annotations carry the safety profile, but the missing preconditions, data-loss implications, and any post-deletion state leave gaps an agent would want filled before invoking it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both path parameters and the apiVersion parameter are fully documented in the schema. The description only echoes the {id} and {diskId} placeholders without adding format, sourcing, or constraints, 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 ('Remove a disk from a given machine') and the exact route, so an agent can tell it apart from attach_machine_disk or get_machine_disk. It stops short of explicitly naming those siblings, but the operation itself 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 attaching, resizing, or promoting a disk, and no prerequisites such as whether the machine must be powered off or whether the disk must be detached first. The agent must infer all preconditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_machine_snapshotC
DestructiveIdempotent

Delete snapshot operation for machine Second day delete snapshot operation for machine DELETE /iaas/api/machines/{id}/snapshots/{snapshotId}

NameRequiredDescriptionDefault
idYesThe id of the Machine. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
snapshotIdYesSnapshot id to delete. (path)

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, readOnlyHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond restating DELETE: it does not say the snapshot is permanently removed and unrecoverable, whether the machine must be powered off, or whether associated data is affected.

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 line ("Second day delete snapshot operation for machine") is a near-duplicate of the first and reads as leftover generated filler. The endpoint is useful and front-loadable, so the waste is modest rather than fatal.

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, idempotent delete with no output schema and fully documented parameters, the minimum an agent needs is present, and annotations carry the destructive/idempotent signals. However, nothing is said about irreversibility or preconditions, which is a real gap for a destructive 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 id and snapshotId documented as path parameters and apiVersion explained. The description's path template mirrors that but adds no format, validation, or scoping detail, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ("Delete snapshot ... for machine") and includes the exact REST path, so an agent knows precisely which operation this is. It does not differentiate from siblings like iaas_create_machine_snapshot, iaas_revert_machine_snapshot, or iaas_get_machine_snapshot, and the duplicated "Second day" line adds noise but no disambiguation.

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 rather than revert_machine_snapshot or get_machine_snapshots, and no mention of prerequisites such as machine power state or required permissions before a snapshot can be deleted. Usage is only implied by the verb and path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_networkC
DestructiveIdempotent

Delete a network Delete a network with a given id DELETE /iaas/api/networks/{id}

NameRequiredDescriptionDefault
idYesThe ID of the network. (path)
apiVersionNoControls whether this is a force delete operation. If true, best effort is made for deleting this network. Use with caution as force deleting may cause inconsistencies between the cloud provider and VMware Aria Automation.
forceDeleteNoControls whether this is a force delete operation. If true, best effort is made for deleting this network. Use with caution as force deleting may cause inconsistencies between the cloud provider and VMware Aria Automation..

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, openWorldHint=true and readOnlyHint=false, so the safety profile is fully covered elsewhere. The description adds nothing beyond that — notably it never warns that deletion is irreversible or that forceDelete can desynchronise the cloud provider from Aria Automation, which is the most important behavioural fact here and lives only in the schema parameter text.

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 two lines say the same thing twice and the third merely repeats the endpoint already exposed in the annotation title. It is not bloated, but the redundancy means little of the text earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, open-world delete operation with no output schema, the description should warn about irreversibility and the forceDelete trade-off. As written, an agent must open the schema to learn the one fact that could prevent a costly mistake.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 id, apiVersion and forceDelete semantics (including the force-delete caution) are already documented in the schema. The description adds nothing about parameters, which is acceptable at this coverage level but earns no extra credit.

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 a network') plus the underlying endpoint DELETE /iaas/api/networks/{id}, so an agent can identify the operation. It does not differentiate itself from near neighbours such as iaas_delete_network_profile or iaas_delete_internal_network_ip_range, which matters in this very large sibling set.

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 prerequisites, and no exclusions. The only content is a restatement of the operation and the HTTP path, 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.

iaas_delete_network_profileC
DestructiveIdempotent

Delete network profile Delete network profile with a given id DELETE /iaas/api/network-profiles/{id}

NameRequiredDescriptionDefault
idYesThe ID of the network profile. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.5/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 safety profile is covered structurally. The description contributes nothing beyond that — it never warns that the delete is irreversible or what happens to networks still associated with the profile, which is the missing behavioral context an agent would need.

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?

Three lines state the same fact twice and then repeat it as a REST path. Nothing is front-loaded beyond the tool name, and repetition occupies space that could have carried real guidance.

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-parameter delete whose schema and annotations are complete, minimum viable context is present. It is still incomplete in that consequences of deletion and any dependency (e.g., existing networks using the profile) are never mentioned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 id and apiVersion parameters are fully documented in the schema. The description only echoes 'with a given id' and adds no meaning about ID sourcing or apiVersion implications; baseline 3 is appropriate when the schema does the work.

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 specific verb and resource (delete a network profile by id), which is clearer than the bare tool name, but the second sentence adds nothing and there is no differentiation from nearby siblings such as iaas_delete_network or iaas_update_network_profile. An agent can infer the purpose, but only barely beyond what the name already conveys.

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 instead of iaas_delete_network, iaas_update_network_profile, or the get_* siblings, and no prerequisites. There is no indication of the conditions under which deletion is appropriate or what to check first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_projectC
DestructiveIdempotent

Delete project Delete project with a given id DELETE /iaas/api/projects/{id}

NameRequiredDescriptionDefault
idYesThe ID of the project. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.5/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 safety profile is known. The description adds only the raw REST endpoint and nothing about consequences, permissions, or cascade behavior toward resources inside the project, which is exactly the extra context a destructive tool needs.

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 two of three lines are pure repetition of the tool name, so the text is under-informative rather than efficient. The only unique content, the DELETE path, is buried at the end.

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 destructive, irreversible project deletion with no output schema, the description omits what actually matters: whether dependent deployments/resources are removed, whether deletion fails on a non-empty project, and whether the call is async or returns a request tracker. The REST endpoint alone does not make it callable with confidence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 the required 'id' and the optional 'apiVersion' are fully documented in the schema. The description's 'with a given id' is redundant with that, and it adds no meaning about format or versioning behavior. 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 a concrete verb and resource ('Delete project') and adds the path-identified target, so the basic action is unambiguous. However, the three lines restate the same fact three times and give no differentiation from the similarly named sibling project_delete_project, which is a real source of confusion in this toolset.

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. project must be empty, required role), and no reference to an alternative such as project_delete_project. The agent is left to 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.

iaas_delete_requestC
DestructiveIdempotent

Delete Request Delete a single Request DELETE /iaas/api/request-tracker/{id}

NameRequiredDescriptionDefault
idYesThe ID of the request. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, so the description's only added value is the raw HTTP path. It says nothing about what is removed, whether related request graph/event data is affected, or whether the deletion is permanent or soft.

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 first two lines ('Delete Request' and 'Delete a single Request') restate the same thing and the endpoint line repeats the annotation title verbatim. Front-loaded and harmless, yet at least one sentence 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?

For a single-ID destructive delete whose annotations already flag destructiveness and idempotency, and with a fully described schema, the essentials are present. What's missing is domain context — what a 'Request' is here (a tracked IaaS request) and whether deleting it also removes its graph/event history.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 (id, apiVersion) are fully documented in the schema. The description only echoes the {id} path placeholder and adds no syntax, format, or versioning nuance beyond that, so the baseline 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 a single Request') plus the underlying endpoint DELETE /iaas/api/request-tracker/{id}, which tells an agent exactly what object is affected. It does not explicitly distinguish itself from the sibling read tools (iaas_get_request_tracker, iaas_get_request_trackers), though the delete verb makes that largely self-evident.

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 alternatives, no prerequisites, and no caution about when deletion is inappropriate. The agent must infer from the name and endpoint that it removes a request-tracker entry rather than any other kind of request.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_security_groupC
DestructiveIdempotent

Delete an on-demand security group Delete an on-demand security group with a given id DELETE /iaas/api/security-groups/{id}

NameRequiredDescriptionDefault
idYesThe ID of the security group. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
forceDeleteNoControls whether this is a force delete operation. If true, best effort is made for deleting this security group. Use with caution as force deleting may cause inconsistencies between the cloud provider and VMware Aria Automation.

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, so safety is covered, but the description adds nothing beyond that: it does not say what happens to machines still attached, whether deletion is asynchronous, or how the non-force path fails. The only added text is the endpoint path, which duplicates the annotation title.

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 first two lines are near-verbatim duplicates and the third line restates the endpoint already present in the annotation title, so roughly half the text is redundant 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 destructive delete with three parameters, annotations and schema carry most of the load and no output schema is needed. Still missing is any statement of failure behavior or dependency constraints (attached machines, non-on-demand groups), which is the main thing an agent would need before calling 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 the forceDelete parameter already carries a detailed caution about provider/VMware Aria Automation inconsistency. The description contributes no additional parameter meaning, which is the baseline expectation when the schema is fully documented.

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 an on-demand security group with a given id') plus the underlying REST endpoint, so an agent can distinguish it from siblings like iaas_reconfigure_security_group or iaas_update_security_group. It does not explicitly name those alternatives, 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 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/reconfigure, no prerequisites (e.g., security group must be an on-demand type, must not be attached to a machine), and no mention of the forceDelete escalation path. The repeated phrase 'on-demand security group' only hints at a scope restriction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_storage_profileC
DestructiveIdempotent

Delete storage class Delete storage profile with a given id DELETE /iaas/api/storage-profiles/{id}

NameRequiredDescriptionDefault
idYesThe ID of the storage profile. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, so the safety profile is fully covered. The description adds nothing beyond restating the operation and the raw HTTP path – no mention of what happens to dependent entities, whether associations must be removed first, or what the deletion 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?

Three lines where two say the same thing ('Delete storage class' vs 'Delete storage profile'), so there is avoidable duplication. It is short and front-loaded, but the redundancy costs it a point.

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, idempotent single-parameter delete with a fully documented schema and no output schema, the description is minimally sufficient – the annotations carry the safety burden. However, on a tool with ~15 provider-specific delete siblings, the missing disambiguation guidance is a real completeness 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%, documenting both 'id' (path) and 'apiVersion'. The description's phrase 'with a given id' merely echoes the schema, adding 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.

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 storage profile with a given id'), so the action is unambiguous. It does not differentiate from the many sibling delete tools (iaas_delete_aws_storage_profile, iaas_delete_azure_storage_profile, iaas_delete_vsphere_storage_profile), so an agent cannot tell from the description why the generic one is preferable.

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 prerequisites, and no mention of alternatives despite a crowded sibling set of provider-specific storage profile deletes. The usage is only inferable from the tool name itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_tagC
DestructiveIdempotent

Delete Tag Delete a tag by ID DELETE /iaas/api/tags/{id}

NameRequiredDescriptionDefault
idYesThe ID of the tag. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
ignoreUsageNoControls whether this is a delete operation while ignoring tag usage. If true, best effort is made for deleting this tag. All the tag assignments are removed. Only after successfully un-assigning the tag from resources, the tag is deleted from VMwar…

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, readOnlyHint=false and openWorldHint=true, so the safety profile is covered. Beyond the endpoint path, the description adds nothing behavioral — it does not mention that tag assignments are removed or that the call can be best-effort, even though ignoreUsage makes that possible.

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 very short lines with the action and identifier front-loaded; nothing is padded. The heading line is redundant with the second sentence, which is the only inefficiency.

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-entity delete with full annotation coverage, complete param docs and no output schema, the definition is minimally sufficient. What is missing are the operational expectations: whether the tag must be unassigned first, failure behavior, and how to find a valid ID.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 fully explains id, apiVersion and ignoreUsage, including the un-assignment consequences. The description contributes no additional parameter meaning, 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 (delete a tag) plus the lookup key (by ID), so the operation is unambiguous. It does not differentiate itself from siblings such as iaas_get_tags or iaas_create_tag beyond what the name already conveys, and the first line merely restates 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?

There is no guidance on when to use this versus iaas_get_tags_usage or iaas_create_tag, no prerequisite that the tag ID must exist, and no warning about the destructive consequence. The description offers only the HTTP route, 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.

iaas_delete_vcf_cloud_accountC
DestructiveIdempotent

Delete an VCF cloud account Delete an VCF cloud account with a given id DELETE /iaas/api/cloud-accounts-vcf/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Cloud Account (path)
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 risk profile is fully covered by structured data. The description adds nothing beyond that: it does not say what is destroyed beyond the account record (credentials, associated integrations, dependent objects), whether deletion can be undone, or how failures on in-use accounts surface. Nothing contradicts the annotations, but there is no value-add.

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 two lines say the same thing twice ('Delete an VCF cloud account' / 'Delete an VCF cloud account with a given id'), which is pure redundancy. The endpoint line is useful for mapping to the API. Short overall, but not efficiently front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, open-world delete with no output schema, an agent needs to know side effects and failure modes: whether the account must be empty/unlinked first, whether dependent resources are removed, and what an in-use error means. None of that is present, leaving annotations to carry risk and the schema to carry inputs, with nothing in between.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the id parameter is documented as the path identifier and apiVersion with its format and versioning reference. The description's phrase 'with a given id' merely echoes the schema. Baseline 3 applies since the schema carries the semantic load.

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 VCF cloud account') plus the identifier-based selection ('with a given id'), which lets an agent distinguish it from the read sibling iaas_get_vcf_cloud_account. However, it never explicitly differentiates itself from the near-identical siblings iaas_delete_vmc_cloud_account, iaas_delete_vsphere_cloud_account, or iaas_delete_cloud_account; that discrimination rests entirely on 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?

There is no guidance on when this tool should be chosen over the generic iaas_delete_cloud_account or the other provider-specific deletes, and no prerequisites, sequencing, or exclusions are stated. The only implicit cue is the name itself. For a destructive operation in a family of a dozen delete-shaped siblings, this is a real gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_vmc_cloud_accountB
DestructiveIdempotent

Delete an VMC cloud account Delete an VMC cloud account with a given id DELETE /iaas/api/cloud-accounts-vmc/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Cloud Account (path)
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

B3.2/5.0
Behavior3/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. The description adds the REST path but does not add impact details such as cascade effects, authentication requirements, or what remains after deletion.

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-loads the action and resource, but it redundantly repeats 'Delete an VMC cloud account' in the first two lines and then appends the endpoint. Minor repetition prevents a 5.

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 destructive operation with rich annotations and complete schema descriptions, the core invocation information is present. However, the description does not cover operational context such as what dependencies prevent deletion or how to choose among the many sibling delete 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?

The input schema has 100% description coverage, documenting both id and apiVersion clearly. The description only repeats that deletion uses a given id and adds no semantics beyond the schema, so the baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: delete a VMC cloud account identified by id, and includes the REST endpoint. It is clear enough to distinguish this platform-specific deletion from generic cloud-account deletion, though it does not explicitly compare itself to 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 when-to-use or when-not-to-use guidance, no mention of alternatives such as the generic iaas_delete_cloud_account or get_vmc_cloud_account tools, and no prerequisite or irreversibility warning. Usage is only implied by the delete verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_vsphere_cloud_accountC
DestructiveIdempotent

Delete a vSphere cloud account Delete a vSphere Cloud Account with a given id DELETE /iaas/api/cloud-accounts-vsphere/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Cloud Account (path)
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 and openWorldHint=true, so the safety profile is known. The description adds no behavioral context of its own - nothing about whether the delete is cascading, asynchronous, or blocked by attached resources - it merely restates the tool name and appends the HTTP 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?

Short and front-loaded, but the first two sentences are near-verbatim duplicates of each other, wasting space that could carry real guidance. The endpoint line is the only non-redundant addition.

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 destructive, open-world mutation with no output schema, the description should say what happens to dependent objects and whether the operation returns before deletion completes. Those gaps leave the agent unable to reason about side effects beyond what the annotations already state.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both `id` and `apiVersion` fully documented in the schema. The description's phrase 'with a given id' mirrors that documentation without adding format hints or edge cases, 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 (delete a vSphere cloud account) and ties it to the exact REST endpoint, so the agent knows precisely which object type is targeted. It does not explain how this differs from the generic iaas_delete_cloud_account or the other provider-specific delete tools, so sibling differentiation comes from the name rather than the description.

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 the generic cloud-account delete or the other per-provider deletes, and no preconditions (e.g. whether machines/networks must be unregistered first). The only implied usage comes from the tool name itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_vsphere_storage_profileC
DestructiveIdempotent

Delete vSphere storage profile Delete vSphere storage profile with a given id DELETE /iaas/api/storage-profiles-vsphere/{id}

NameRequiredDescriptionDefault
idYesThe ID of the storage profile. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 safety is covered externally. The description contributes nothing beyond that: it does not say what happens to objects referencing the profile, whether deletion fails if the profile is in use, or what auth/scope is 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?

The first two lines are near-verbatim duplicates ('Delete vSphere storage profile' / 'Delete vSphere storage profile with a given id'), which wastes space rather than front-loading new information. The endpoint line is the only distinct content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete-by-id with a fully described schema and complete annotations, the description is minimally sufficient. It leaves out the operational consequences of a destructive profile deletion, which an agent would want before calling 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 coverage is 100% and both parameters (id, apiVersion) are documented in the schema, so the schema carries the burden. The description's 'with a given id' simply echoes the required field and adds no format or sourcing detail (e.g., where to obtain the vSphere storage profile 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?

States a specific verb and resource ('Delete vSphere storage profile with a given id'), which is enough to separate it from the generic iaas_delete_storage_profile and the AWS/Azure/GCP variants. It is clear but never explicitly contrasts itself with those near-identical 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 this over iaas_delete_storage_profile or the other provider-specific delete tools, and no prerequisites or caveats are given. The only usage signal is the implicit 'delete with a given id'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_delete_zoneB
DestructiveIdempotent

Delete a zone DELETE /iaas/api/zones/{id}

NameRequiredDescriptionDefault
idYesThe ID of the zone. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

B3.1/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. The description adds only the endpoint and does not explain cascading effects, required permissions, or irreversibility beyond what the annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short lines, front-loads the action, and contains no filler. The endpoint line is terse and useful for API mapping.

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-resource delete, the schema and annotations cover the required ID and safety hints. However, the description omits dependency or cascade warnings and return behavior, and no output schema exists to fill that 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%, with id documented as the zone ID path parameter and apiVersion also described. The description adds the endpoint path but no additional 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 ('Delete a zone') plus the REST endpoint, so the action is immediately clear. It does not explicitly distinguish itself from siblings like iaas_get_zone or iaas_update_zone, but the name and description are specific enough.

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 prerequisites, and no warning about when not to delete a zone. The agent must infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_enumerate_aws_regions_asyncB

Get the available regions for specified AWS cloud account POST /iaas/api/cloud-accounts-aws/region-enumeration

NameRequiredDescriptionDefault
bodyYesSpecification for a region enumeration of aws cloud account. — AWS region enumeration specification
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false). The description adds that it targets a specified AWS account but omits the key behavioral trait of an async POST: that it likely returns a request tracker requiring polling for the region list. This is a genuine gap 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?

One sentence front-loads the purpose, followed by the raw endpoint path. Efficient, though the trailing URL fragment adds little for an agent and slightly clutters the definition.

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 an asynchronous enumeration tool with no output schema, the description should explain the async pattern and how to retrieve results. It instead leaves the agent with only a one-line purpose and an endpoint path, so it is not complete enough to invoke-and-follow-up 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 the schema itself explains the accessKeyId/secretAccessKey vs cloudAccountId alternatives and the apiVersion format. The description only implies the cloud-account target and adds no syntax or format detail 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 (get) and resource (available AWS regions) scoped to a specified cloud account. It is distinguishable from the azure/gcp/vmc siblings by name and text, though the async behavior implied by the name is not explained.

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 other enumerate_*_regions_async siblings or the generic iaas_enumerate_regions_async. Critically, the async workflow (that results must later be fetched via iaas_get_region_enumeration_result) is never mentioned despite that sibling existing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_enumerate_azure_regions_asyncB

Get the available regions for specified Azure cloud account POST /iaas/api/cloud-accounts-azure/region-enumeration

NameRequiredDescriptionDefault
bodyYesSpecification for a region enumeration of azure cloud account. — Azure region enumeration specification
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, openWorldHint=true and idempotentHint=false, so the agent knows this is a non-idempotent outward-facing POST rather than a simple read. The description adds the endpoint path but does not explain the async request/tracker behavior, credential handling, or that credentials in the body are sensitive — the one thing an agent most needs beyond the hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence plus the raw POST path — front-loaded and free of filler. The endpoint string adds little for an agent but costs almost nothing.

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, async enumeration tool with a nested credential-bearing body and no output schema, the description omits the critical fact that this is asynchronous and how results are retrieved. An agent could call it correctly in shape but be stranded on what to do with 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%, and the nested body properties already spell out the tenantId/cloudAccountId and subscriptionId/cloudAccountId either-or patterns. The description contributes 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 (get available regions) scoped to Azure cloud accounts, which implicitly separates it from the AWS/GCP/vSphere enumeration siblings. It stops short of flagging the async nature implied by the tool name, so an agent cannot tell from the description alone that this kicks off a request rather than returning regions directly.

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 pick this over the generic iaas_enumerate_regions_async, the per-provider siblings, or iaas_get_region_enumeration_result. No prerequisite or follow-up step is mentioned, so the agent must infer the whole polling workflow from sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_enumerate_gcp_regions_asyncC

Get the available regions for specified GCP cloud account POST /iaas/api/cloud-accounts-gcp/region-enumeration

NameRequiredDescriptionDefault
bodyYesSpecification for a region enumeration of gcp cloud account. — GCP region enumeration specification
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond this—it omits the async job semantics implied by 'async' in the name, does not describe what the POST returns, and the only extra text is the raw endpoint path, which duplicates 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short lines with the purpose front-loaded and no filler. The '/iaas/api/...' path line is redundant with the annotation title, slightly reducing the value of the second line.

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 an async, non-idempotent POST with a complex nested credentials body and no output schema, the description should explain that it kicks off an enumeration job and how to obtain the result. It supplies none of that, leaving the async lifecycle entirely undisclosed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 body properties already document the dual credential modes (cloudAccountId vs projectId/privateKey/clientEmail). The description adds no parameter 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?

States a specific verb and resource ('Get the available regions') scoped to a GCP cloud account. The 'gcp' in the name/description implicitly distinguishes it from the aws/azure/vmc/vsphere region-enumeration siblings, though it never names 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?

No guidance on when to use this instead of iaas_enumerate_regions_async or the other provider-specific siblings. Critically, it never says that results must be retrieved via iaas_get_region_enumeration_result, which is the key follow-up an agent needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_enumerate_private_imagesC

Enumerate all private images for enabled regions of the specified cloud account POST /iaas/api/cloud-accounts/{id}/private-image-enumeration

NameRequiredDescriptionDefault
idYesId of cloud account to enumerate (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 partially covered. The description adds only the 'enabled regions' scope and does not disclose that this is an asynchronous, long-running enumeration that requires subsequent polling, which is the key behavioral fact for a POST-triggered job.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence that front-loads the verb and scope, with no wasted prose. The trailing raw API path is redundant with the annotation title but does not meaningfully bloat the text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and an async operation behind a POST, the description should indicate that the call returns a request tracker to poll (siblings like iaas_get_request_tracker exist for this). That critical lifecycle information is absent, leaving the agent unable to interpret 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%, with both 'id' and 'apiVersion' documented in the schema. The description's phrase 'specified cloud account' loosely maps to 'id' but adds no format or versioning detail beyond what the schema already gives, 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 ('Enumerate') and resource ('private images') scoped to 'enabled regions of the specified cloud account', so the action is unambiguous. However, it does not differentiate itself from the many provider-specific siblings (iaas_enumerate_private_images_aws/azure/gcp/vmc/vsphere/vcf), so an agent must infer that this is the generic/cross-provider variant.

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 guidance on when to use this versus the provider-specific enumerate_private_images_* siblings, nor on prerequisites such as the cloud account needing to exist or be enabled. Usage is only implied by the phrase 'for enabled regions'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_enumerate_private_images_awsC

Enumerate all private images for enabled regions of the specified AWS account POST /iaas/api/cloud-accounts-aws/{id}/private-image-enumeration

NameRequiredDescriptionDefault
idYesId of AWS cloud account to enumerate (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already tell the agent this is a non-read-only, non-idempotent, open-world POST, and the description adds nothing beyond that. It does not disclose that this is an asynchronous enumeration job, whether it overwrites prior results, whether it costs quota/time, or how to poll progress — all critical for a trigger-style POST in a suite that has iaas_get_request_tracker and iaas_get_region_enumeration_result siblings.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence states the core behavior efficiently. The appended raw 'POST /iaas/api/...' line merely restates the title/annotation and is dead weight, but the overall shape is tight.

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 state-changing, async enumeration trigger with no output schema, yet the description says nothing about what the call returns, whether it blocks, where results land, or how long it takes. For a non-read-only action tool with no output contract, that is a substantial gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both the account id and apiVersion are already documented in the schema. The phrase 'specified AWS account' mildly reinforces that id must be an AWS cloud account, but adds no format, default, or version-negotiation 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 ('Enumerate all private images') scoped to an AWS cloud account's enabled regions, so the operation is unambiguous. It implicitly differentiates from the azure/gcp/vsphere siblings via the account scope, but never names those siblings or the generic iaas_enumerate_private_images variant.

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 versus when-not guidance, no mention of prerequisites (regions must already be enabled) and no pointer to how the enumeration result is retrieved. The agent must infer everything from the tool name and the bare REST path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_enumerate_private_images_azureB

Enumerate all private images for enabled regions of the specified Azure account POST /iaas/api/cloud-accounts-azure/{id}/private-image-enumeration

NameRequiredDescriptionDefault
idYesId of Azure cloud account to enumerate (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, openWorldHint=true, idempotentHint=false and destructiveHint=false, so the safety profile is covered. The description adds the "enabled regions" scoping and the REST path, but leaves a key behavioral question unanswered: whether this kicks off an asynchronous enumeration job that must be polled, which matters for a non-idempotent POST with external calls. No contradiction, but the useful extra context is thin.

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 scope before the endpoint path. The trailing POST path is mildly redundant with the annotation title but does anchor the call for an agent working from the API surface.

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?

There is no output schema, so the description must carry the burden of explaining what comes back — and it does not say whether the call returns a request tracker/job id, a list of images, or an async status. For a non-idempotent provider-side enumeration with only two params, that omission is the main 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%, with both `id` (the Azure cloud account id, path) and `apiVersion` documented inline. The description only restates that the id identifies the Azure account and adds no format, source, or lookup guidance, so the schema is doing the semantic 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?

States a specific verb (enumerate), resource (private images), and scope (enabled regions of a specified Azure account), which clearly separates it from the AWS/GCP/VMC/vSphere/VCF enumeration siblings. It does not, however, contrast itself with the generic iaas_enumerate_private_images or with iaas_get_images, so the differentiator is only implied by the provider 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 provider-specific scope is implied by "Azure account," which is enough for an agent to pick this over the AWS/GCP variants. But there is no explicit when-to-use guidance, no mention of whether results must be retrieved separately (e.g. via iaas_get_region_enumeration_result or an image listing tool), and no prerequisites beyond the account id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_enumerate_private_images_gcpC

Enumerate all private images for enabled regions of the specified GCP account POST /iaas/api/cloud-accounts-gcp/{id}/private-image-enumeration

NameRequiredDescriptionDefault
idYesId of GCP cloud account to enumerate (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description, however, adds nothing beyond that: it does not say the enumeration is likely asynchronous/long-running, whether it returns a request tracker, or whether repeated calls are costly — the one thing an agent actually needs for a non-idempotent POST.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the scope stated first; the trailing POST path is redundant with the title/annotations but harmless. 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?

For a non-idempotent, open-world enumeration with no output schema, the description should say what comes back and how to observe the results (the region counterpart has iaas_get_region_enumeration_result). It is minimally viable but leaves the result-retrieval path entirely unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 (id, apiVersion) are documented in the schema, so the schema does the heavy lifting. The phrase 'specified GCP account' mirrors the id parameter without adding format or identifier-source detail, which is the expected 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 (enumerate) and resource (private images) scoped to GCP cloud-account enabled regions, which distinguishes it from the aws/azure/vmc/vsphere/vcf siblings by provider. It stops short of saying what enumeration actually accomplishes (importing/refreshing image records into the system), so an agent knows the surface but not the effect.

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. Given siblings like iaas_get_images, iaas_get_fabric_images and iaas_enumerate_private_images (generic), the agent would benefit from knowing this discovers new images versus listing already-known ones, but the description offers nothing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_enumerate_private_images_vcfB

Enumerate all private images for enabled regions of the specified VCF account POST /iaas/api/cloud-accounts-vcf/{id}/private-image-enumeration

NameRequiredDescriptionDefault
idYesId of VCF cloud account to enumerate (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, and openWorldHint=true, so the description's main contribution is the 'enabled regions' scoping detail. It does not disclose that a POST-based enumeration typically kicks off an asynchronous job or what the caller must do afterward, which is meaningful context the annotations don't carry.

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 no filler. The second line is the raw endpoint path, which largely duplicates the annotation title, so it earns little of its 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 mutation-flagged, open-world POST with no output schema, the description should say what the call returns (likely a request tracker/id) and that results are retrieved separately. That guidance is absent, leaving a gap an agent would hit at invocation time.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 the account id and apiVersion are already documented in the schema. The description only restates that an account id is required; it adds no format, sourcing guidance (where to obtain the VCF account id), or versioning advice beyond the schema's own pointer.

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 (enumerate private images) with a clear provider scope ('VCF account' and 'enabled regions'), which distinguishes it from the AWS/Azure/GCP/vSphere/VMC variants. It does not explicitly name those siblings, so differentiation relies on the provider token in the name rather than prose.

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: call this when you want private images for a VCF cloud account. Nothing says when to use the generic iaas_enumerate_private_images instead, what prerequisites exist (e.g., a completed account onboarding/region enumeration), or whether this must be followed by a request-tracker poll.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_enumerate_private_images_vmcB

Enumerate all private images for enabled regions of the specified VMC account POST /iaas/api/cloud-accounts-vmc/{id}/private-image-enumeration

NameRequiredDescriptionDefault
idYesId of VMC cloud account to enumerate (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The 'POST /iaas/api/cloud-accounts-vmc/{id}/private-image-enumeration' line usefully signals this is a mutation-style trigger rather than a pure read, which aligns with readOnlyHint=false and non-idempotent. But it doesn't disclose that an enumeration is likely asynchronous or how the result is later retrieved, which is the behavior an agent most needs here.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single front-loaded sentence plus the endpoint path; nothing redundant. The raw path is slightly machine-ish but does convey the POST semantics in a few tokens.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and no mention of what the call returns or that the enumeration result must be polled/fetched via a request tracker or region enumeration result endpoint. For a non-idempotent, open-world trigger this leaves a real operational 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% and both parameters (id, apiVersion) are documented in the schema, so the description carries no burden here. It adds only the VMC-specific framing of the id; 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: enumerate private images for the enabled regions of a specified VMC account. The 'VMC' qualifier implicitly separates it from the aws/azure/gcp/vsphere/vcf siblings, though it 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 statement of when this should be called instead of e.g. iaas_enumerate_private_images or iaas_get_images, and no prerequisites (account must exist, must be enabled). The agent is left to 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.

iaas_enumerate_private_images_vsphereC

Enumerate all private images for enabled regions of the specified vSphere account POST /iaas/api/cloud-accounts-vsphere/{id}/private-image-enumeration

NameRequiredDescriptionDefault
idYesId of vSphere cloud account to enumerate (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, so the safety profile is largely covered. The description adds nothing beyond the endpoint: it does not say that enumeration is a triggered job, whether it returns a request tracker, how long it takes, or what permissions the account needs — all of which are the non-obvious behaviors for this 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?

The purpose is front-loaded in a single clean sentence, which is good. But the trailing raw path 'POST /iaas/api/cloud-accounts-vsphere/{id}/private-image-enumeration' is verbatim duplication of the annotation title and earns no place in the description.

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, the tool is non-idempotent and open-world, and it likely kicks off a background enumeration whose results surface elsewhere (e.g., via iaas_get_images or fabric image tools). None of that is conveyed, so an agent cannot tell what happens after invoking it or how to retrieve results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both the path id and the apiVersion already documented in the schema. The description's phrase 'specified vSphere account' loosely maps to id, but adds no format, constraint, or enumeration semantics 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Enumerate all private images') scoped to 'enabled regions of the specified vSphere account,' which is precise enough for an agent to understand the operation. However, it never distinguishes itself from the many sibling enumerators (iaas_enumerate_private_images_aws/azure/gcp/vmc/vcf, iaas_enumerate_private_images), leaving the provider split implied only by 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 when-to-use, when-not-to-use, or alternative guidance is given. With roughly a dozen sibling enumerate tools in scope, an explicit statement such as 'use for vSphere accounts only; other providers have separate tools' would be the single highest-value addition, and it is absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_enumerate_regions_asyncC

Get the available regions for specified cloud account POST /iaas/api/cloud-accounts/region-enumeration

NameRequiredDescriptionDefault
bodyYesSpecification for a region enumeration of generic cloud account. — Region enumeration specification
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover safety (destructiveHint=false, openWorldHint=true), but the description omits the single most consequential trait: this is an *async* operation whose name and 'POST' path imply it kicks off work that must be polled, presumably via iaas_get_region_enumeration_result or iaas_get_request_tracker. It also doesn't mention that callers supply credentials (privateKey/privateKeyId) in the request body, or that 'Get' here is a POST that annotations mark readOnlyHint=false — a tension an agent should know about.

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 lines with no filler, but the second line is a raw HTTP path that gives an agent little beyond what the name already says. The brevity is under-specification rather than efficiency — the space freed up was not spent on the async flow.

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 an async, 2-required-parameter tool with nested credential objects and no output schema, the description should explain that it initiates enumeration and how to retrieve the eventual regions. Neither the polling path nor the sibling to call next is named, leaving a real gap in a complex flow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 either/or between cloudAccountId and the privateKeyId/privateKey credential pair is fully documented inside the schema. The description adds no additional meaning about apiVersion or the body shape, 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+resource: retrieve available regions for a cloud account, with the target endpoint appended. It is clear what the tool produces, but it never distinguishes itself from the many provider-specific siblings (iaas_enumerate_aws_regions_async, iaas_enumerate_azure_regions_async, iaas_enumerate_vcf_regions_async, etc.) or from iaas_get_regions, so the agent cannot tell when this generic variant is the right one.

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, when-not-to-use, or prerequisite guidance. Nothing says whether this generic tool is a fallback when a provider-specific enumerator doesn't exist, or whether it should be preferred over iaas_get_regions / iaas_get_region_enumeration_result.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_enumerate_vcf_regions_asyncC

Get the available regions for specified VCF cloud account POST /iaas/api/cloud-accounts-vcf/region-enumeration

NameRequiredDescriptionDefault
bodyYesSpecification for a region enumeration of vcf cloud account. — VCF region enumeration specification
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 and openWorldHint=true, so the safety profile is partly covered. The description adds nothing beyond the raw endpoint: it does not disclose that credentials (including passwords) are submitted in the body, that the operation is asynchronous, or how long results persist. As a mutation-flagged, outbound-calling tool with no output schema, this is thin.

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 lines with the operation stated first and the HTTP path second. No wasted prose, though the path line largely duplicates the annotation title.

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 an asynchronous enumeration tool with a 15-field nested credential body and no output schema, the description should explain the follow-up result retrieval and what is returned (a request tracker). Neither is present, leaving a substantive gap in how an agent completes the task.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 every body field, including the nested certificate object, is documented by the schema itself. The description adds no parameter meaning, 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 available regions for a VCF cloud account, plus the exact endpoint. It is distinguishable from the many sibling enumerate_*_regions tools by the VCF qualifier, though the description never explicitly contrasts itself with iaas_enumerate_regions_async or iaas_get_region_enumeration_result.

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 other region-enumeration endpoints, and no mention of the async contract — an agent is not told that the call only kicks off enumeration and that results must be fetched via iaas_get_region_enumeration_result. Prerequisites (existing cloudAccountId vs. full vCenter/NSX credential set) are only implied through schema text.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_enumerate_vmc_regions_asyncC

Get the available regions for specified VMC cloud account POST /iaas/api/cloud-accounts-vmc/region-enumeration

NameRequiredDescriptionDefault
bodyYesSpecification for a region enumeration of vmc cloud account. — VMC region enumeration specification
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, and destructiveHint=false, but the description only says 'Get' and shows a POST path. It does not disclose that this initiates an asynchronous enumeration operation, what it creates or returns, or how the caller should obtain the eventual result, leaving a significant behavioral gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded, with the core purpose in the first sentence and the endpoint appended. It contains no filler, though the endpoint line largely duplicates the title and the brevity comes at the cost of important async context covered elsewhere.

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 async POST operation with a complex nested input and no output schema, yet the description does not explain the asynchronous lifecycle, expected return, or how to poll/retrieve the enumeration result. The schema covers parameters well and annotations cover safety traits, but the description is not complete enough for correct operational use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the nested body schema already documents cloudAccountId, credentials, data collector details, and certificate settings. The description adds only the phrase 'specified VMC cloud account' and does not add meaning beyond the schema, so the 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 and resource for a specific provider: 'Get the available regions for specified VMC cloud account.' That distinguishes it from region tools for AWS/Azure/GCP/VCF/vSphere, but it does not clarify the async enumeration behavior or how it differs from sibling retrieval tools such as iaas_get_regions or iaas_get_region_enumeration_result.

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, prerequisites, or alternatives. In a sibling set with many region-enumeration and region-retrieval tools, an agent is left to infer that this is the VMC-specific enumeration call and that results may need to be retrieved elsewhere.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_enumerate_vsphere_regions_asyncC

Get the available regions for specified vSphere cloud account POST /iaas/api/cloud-accounts-vsphere/region-enumeration

NameRequiredDescriptionDefault
bodyYesSpecification for a region enumeration of vshpere cloud account. — vSphere region enumeration specification
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 openWorldHint=true, so the safety profile is partly covered. However the description adds nothing beyond the endpoint path: it does not disclose that this is an asynchronous enumeration that reaches out to an external vSphere endpoint, nor what state is created server-side, which is the key behavior an agent needs to know for a POST enumeration call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence plus the raw endpoint, with zero filler. It is efficient, though part of the brevity comes from omitting needed context rather than from tight 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 an async POST enumeration with a nested body, no output schema, and a sibling result-retrieval tool, the description is too thin: it never explains the async follow-up, the external endpoint dependency, or what the caller receives. An agent could easily call this expecting regions in 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 body fields (cloudAccountId vs. hostName/username/password, dcid, certificateInfo) are already fully documented in the schema. The description only implies 'specified cloud account' and adds no insight into the either/or credential paths or the apiVersion requirement; 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+resource: 'Get the available regions for specified vSphere cloud account', which pins down the provider (vSphere) and the object (regions). It doesn't explicitly distinguish itself from the many sibling enumerators (iaas_enumerate_aws_regions_async, iaas_enumerate_regions_async) or from iaas_get_regions, but the vSphere qualifier makes the target 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 when-to-use guidance: nothing explains how this differs from iaas_get_regions, or when to enumerate versus list already-known regions. Critically, the tool is named '_async' and a sibling iaas_get_region_enumeration_result exists, yet the description never says results must be fetched separately or that credentials/endpoint access are prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_aboutC
Read-onlyIdempotent

Get about page The page contains information about the supported API versions and the latest API version. The version parameter is mandatory for endpoints introduced after version 2019-01-15and optional for the rest though highly recommended. If you do not specify explicitly an exact version, you will be calling the latest supported General Availability API version. Here is an example of a call which specifies the exact version you are using: GET /iaas/api/network-profiles?apiVersion=2021-07-15 Note that this version is deprecated: 2019-01-15. GET /iaas/api/about

NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/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 covered elsewhere. The description contributes a fact annotations can't convey — what the payload contains (supported and latest API versions) — but says nothing about response shape or size. Acceptable, 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose sentence is front-loaded, but roughly two-thirds of the text is copied boilerplate about version negotiation, including a sample call to a different endpoint (/iaas/api/network-profiles) and a note that 2019-01-15 is deprecated. None of that earns its place for a zero-parameter GET that only returns metadata.

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, zero-param endpoint with no output schema, the description gives enough to know the returned content is API version metadata. However, no output schema exists and the description never characterizes the response (fields, format), relying instead on boilerplate that doesn't apply.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema sets additionalProperties=false, yet the description repeatedly asserts a 'version parameter' is mandatory for some endpoints and 'highly recommended' for others. For a no-param tool that is actively misleading, as an agent could believe it must send apiVersion when doing so would fail schema validation.

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 clear verb+resource ('Get about page') and immediately clarifies what the page contains: supported API versions and the latest API version. That distinguishes it from the CRUD-style siblings, though it does not differentiate itself from other namespace 'about' endpoints (e.g. project_get_about, blueprint_get_about).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is given; the reader must infer that this is a discovery/version-negotiation endpoint. The bulk of the text discusses a version parameter that this tool does not even accept, which adds noise 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.

iaas_get_all_custom_namesC
Read-onlyIdempotent

Get All Custom Names GET /iaas/api/naming

NameRequiredDescriptionDefault
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 fully covered by structured data. The description adds nothing beyond restating the HTTP path — no pagination behavior, no result ordering, no note that it returns across all projects.

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 second line simply repeats the endpoint path that already appears in the annotation title, so it contributes little. Not verbose, but under-specified rather than efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter list endpoint with full annotation coverage and no output schema, this is minimally adequate. It still leaves open whether results are paginated or tenant-wide and how it differs from the project-scoped sibling, which an agent would need in this large toolset.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter exists and its schema description coverage is 100%, so the apiVersion format is already fully documented in the schema. The description adds no meaning beyond that, making the baseline 3 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 ("Get All Custom Names") and the word "All" implicitly distinguishes it from the singular iaas_get_custom_name sibling. However, it never names the sibling or clarifies the relationship to iaas_get_custom_name_by_project_id, so the differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this listing versus iaas_get_custom_name or iaas_get_custom_name_by_project_id, and no mention of prerequisites, scoping, or filtering. The agent must infer the choice 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.

iaas_get_allocated_and_released_ip_addressesC
Read-onlyIdempotent

Get all allocated and released addresses of an IPAM network IP range GET /iaas/api/network-ip-ranges/{id}/ip-addresses

NameRequiredDescriptionDefault
idYesThe ID of the network IP range. (path)
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 safety is covered. Beyond that the description only restates the REST route; it says nothing about whether results are paginated, how large a range can be, whether released-and-reallocated addresses appear once or multiple times, or any auth/rate considerations on an open-world call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence plus the endpoint path, with the resource and scope front-loaded and no padding. The trailing HTTP route is mildly redundant with the title/annotations but is cheap.

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?

There is no output schema, so the description must convey what comes back, and 'all allocated and released addresses' is only partially informative — it does not clarify whether free/unallocated addresses are excluded, whether each address carries status/allocation metadata, or whether the response is paginated. Adequate for a simple read 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% and both parameters (id, apiVersion) are documented in the schema, so the schema carries the load. The description adds only the implicit link between the range ID and the returned addresses; it adds no format, versioning, or default-value detail beyond what is already structured.

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 allocated and released IP addresses belonging to one IPAM network IP range. It is clear on its own, but it does not differentiate itself from the near-identical sibling 'iaas_get_allocated_or_released_ip_address' (singular), nor from 'iaas_get_internal_network_ip_range' / 'iaas_get_fabric_network_ip_ranges'.

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 choose this versus the singular 'iaas_get_allocated_or_released_ip_address' sibling or the other IP-range getters. No preconditions, no exclusions, and no mention of what state the range must be in.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_allocated_or_released_ip_addressB
Read-onlyIdempotent

Get an allocated or released address of an IPAM network IP range GET /iaas/api/network-ip-ranges/{networkIPRangeId}/ip-addresses/{ipAddressId}

NameRequiredDescriptionDefault
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
ipAddressIdYesThe ID attribute of the IP Address (path)
networkIPRangeIdYesThe ID of a network IP range. (path)

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the operation as read-only, idempotent, non-destructive, and open-world, so the safety profile is covered. The description adds the narrow state scope ('allocated or released') and the endpoint path, but does not explain return behavior, error cases, permissions, 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 definition is short and front-loads the action and resource. The second line repeats the endpoint already present in the annotation title, which is mildly redundant but not harmful.

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 complete schema descriptions and rich annotations, the description is nearly sufficient. The main omission is response shape, but the operation is simple enough that 'Get an ... address' adequately signals what is returned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 with path semantics. The description does not add parameter meaning beyond what the schema already states, 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?

The description uses a specific verb, 'Get', and names the exact resource: an allocated or released IP address within an IPAM network IP range. It is clear what the tool retrieves, although it does not explicitly distinguish itself from the plural sibling iaas_get_allocated_and_released_ip_addresses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit when-to-use guidance, no exclusions, and no alternatives. An agent can infer it is for a single address because of the singular wording and the endpoint, but that inference is not stated as usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_avi_lb_cloud_accountB
Read-onlyIdempotent

Get an AVI Load Balancer cloud account Get an AVI Load Balancer with a given id GET /iaas/api/cloud-accounts-avilb/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Cloud Account (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, and destructiveHint=false, so the safety profile is covered. The description adds only the HTTP endpoint and repeats the retrieval semantics, with no additional behavioral context such as error behavior when the id is missing 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 and front-loads the purpose, but the first two sentences are redundant: 'Get an AVI Load Balancer cloud account' and 'Get an AVI Load Balancer with a given id' repeat the same information. The endpoint adds little for an agent.

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 single-resource getter with a fully documented schema and complete annotations, the description is mostly sufficient. It does not explain return fields or not-found behavior, but no output schema exists and annotations cover the interaction profile.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema already documents both id and apiVersion. The description only mentions 'given id', adding no 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 ('Get') and resource ('AVI Load Balancer cloud account') and clarifies it retrieves one by id. It distinguishes itself from the plural sibling indirectly through 'given id', though it does not name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'with a given id', but there is no explicit guidance on when to use this instead of iaas_get_avi_lb_cloud_accounts or the generic iaas_get_cloud_account. No exclusions or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_avi_lb_cloud_accountsB
Read-onlyIdempotent

Get AVI Load Balancer cloud accounts Get all AVI Load Balancer cloud accounts within the current organization GET /iaas/api/cloud-accounts-avilb

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 safety is covered. The description adds the organizational scoping constraint, but says nothing about pagination behavior, default page size, or how results are ordered despite exposing top/skip.

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 two lines are near-duplicates of each other ('Get AVI Load Balancer cloud accounts' vs 'Get all ... within the current organization'), and the raw GET path adds little beyond what the title already shows. One line of the content is wasted repetition.

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 list endpoint with full schema coverage and annotations, the essentials are present. Still missing is any hint of result shape/pagination or how it differs from the singular and generic cloud-account listing 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 the schema already documents top, skip and apiVersion; baseline 3 applies. The description contributes no additional meaning about pagination or versioning beyond restating the endpoint path.

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 all AVI Load Balancer cloud accounts') and scopes it to the current organization, so the operation is unambiguous. However, it never distinguishes itself from the closely-named sibling iaas_get_avi_lb_cloud_account (singular) or the generic iaas_get_cloud_accounts, leaving the agent to infer that this one returns a 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?

The description gives no when-to-use guidance, no mention of the singular retrieval sibling, and no indication of when the paginated list is preferable to fetching one account. Usage is only implied by the verb 'Get all'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_aws_cloud_accountC
Read-onlyIdempotent

Get an AWS cloud account Get an AWS cloud account with a given id GET /iaas/api/cloud-accounts-aws/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Cloud Account (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 safety is covered. The description adds nothing beyond that — no auth requirements, no error behavior when the id is unknown, no note on what the returned object contains. The 'GET /iaas/api/cloud-accounts-aws/{id}' line merely restates the operation already encoded in the annotations title.

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 first two lines are near-duplicates ('Get an AWS cloud account' / 'Get an AWS cloud account with a given id'), and the third is a raw REST path. Nothing is off-topic, but the redundancy costs it.

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 GET with full annotation coverage and a fully documented two-parameter schema, this is minimally sufficient to call correctly. It is thin on what comes back (no output schema exists) and on failure modes, which an agent might reasonably 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 both the required 'id' (path) and optional 'apiVersion' are documented in the schema. The description's phrase 'with a given id' adds no format or sourcing 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?

States a specific verb and resource ('Get an AWS cloud account') and narrows scope to a single account identified by id. It is distinguishable from the list sibling iaas_get_aws_cloud_accounts and the generic iaas_get_cloud_account, though it never names 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?

'with a given id' implies you must already know the account ID, which is the only usage signal present. There is no statement of when to use this versus iaas_get_aws_cloud_accounts or iaas_get_cloud_account, 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.

iaas_get_aws_cloud_accountsB
Read-onlyIdempotent

Get AWS cloud accounts Get all AWS cloud accounts within the current organization GET /iaas/api/cloud-accounts-aws

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 the useful scope constraint ('within the current organization') beyond annotations, but says nothing about pagination behavior despite top/skip parameters or about the shape of returned accounts.

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 core purpose in the first line. There is mild redundancy between the title line and the second sentence, plus a raw REST path that adds little for an agent, but no sentence is misleading.

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 list endpoint with annotations covering safety, the description is adequate. Given no output schema exists, though, it omits any hint of return contents or pagination semantics, which an agent would need to consume results 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 top, skip, and apiVersion are already documented in the schema. The description contributes no additional semantics such as default page size or ordering, 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 ('Get all AWS cloud accounts') and scopes it to the current organization, which is clearer than the bare tool name. It does not, however, distinguish it from sibling iaas_get_cloud_accounts (all providers) or iaas_get_aws_cloud_account (single account by id), leaving the agent to infer that this returns only AWS accounts org-wide.

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 instead of the many sibling listing tools, and no exclusions or prerequisites stated. The agent must derive usage context entirely from the tool name and the 'current organization' phrase.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_aws_storage_profileB
Read-onlyIdempotent

Get AWS storage class Get AWS storage class with a given id GET /iaas/api/storage-profiles-aws/{id}

NameRequiredDescriptionDefault
idYesThe ID of storage class. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

B3.1/5.0
Behavior2/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 fully covered without the description. The description adds nothing beyond restating that it is a GET by id — no mention of behavior when the id is not found, permission requirements, or what a profile 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?

It is short, but the first two sentences are near-verbatim repeats of the tool name, and the only genuinely additive content is the REST path on line three. Front-loading is fine; the redundancy costs it.

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 by-ID fetch with full schema coverage and complete annotations, the definition is workable. However, with no output schema, the description should say what a storage profile returns (e.g., storage class, provisioning type), 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 coverage is 100%, with the id parameter and the optional apiVersion both documented in the schema itself. The description says 'with a given id' but adds no format, sourcing, or example 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.

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 AWS storage class') scoped to a single entity by id, which lets an agent distinguish it from the plural list sibling iaas_get_aws_storage_profiles. It does not explicitly name that sibling, but 'with a given id' communicates the single-item scope clearly.

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: 'with a given id' hints that this is a by-ID lookup rather than a listing, but the description never says when to choose this over iaas_get_aws_storage_profiles, iaas_get_storage_profile, or provider-specific variants. 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.

iaas_get_aws_storage_profilesB
Read-onlyIdempotent

Get AWS storage classes Get all AWS storage classes GET /iaas/api/storage-profiles-aws

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, so the safety profile is covered. The description adds only the 'all' scope and endpoint path, but does not mention pagination, ordering, or return format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, but the first two lines are redundant ('Get AWS storage classes' and 'Get all AWS storage classes'). The endpoint path is useful, but the duplicate sentence does not earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list endpoint with rich annotations and full schema coverage on its single optional parameter, the description is nearly complete. It clearly states the resource and scope, though it could mention whether the result is paginated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 only parameter is an optional apiVersion already documented in the schema. The description adds no additional parameter semantics beyond what the schema provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Get all AWS storage classes.' It distinguishes the AWS-specific resource from the generic storage-profile siblings via 'AWS,' but it does not explicitly contrast itself with iaas_get_aws_storage_profile or iaas_get_storage_profiles.

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 guidance on when to use this tool versus its siblings, such as iaas_get_aws_storage_profile for a single profile or iaas_get_storage_profiles for the generic list. 'Get all' implies a listing use case, but no alternatives 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.

iaas_get_azure_cloud_accountC
Read-onlyIdempotent

Get an Azure Cloud Account Get an Azure Cloud Account with a given id GET /iaas/api/cloud-accounts-azure/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Cloud Account (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 description adds nothing on the safety profile. It also omits what happens if the id is unknown (404 style behavior) or any permission requirements, repeating only the annotation-covered endpoint 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?

Short, but the first two lines are near-duplicates ('Get an Azure Cloud Account' repeated with 'with a given id'), so it is redundant rather than tightly front-loaded. The endpoint path is the only distinct 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 single-resource read with one required parameter and no output schema, the essential call mechanics are present. However, with no output schema the description could have sketched the returned cloud account shape, and it says nothing about failure modes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 the id and apiVersion parameters documented in the schema. The description adds no extra meaning such as id format, where the id comes from, or whether apiVersion is optional in practice, 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 an Azure Cloud Account with a given id') and the underlying endpoint, so the agent knows exactly which object is fetched. It does not explicitly distinguish itself from the sibling list tool iaas_get_azure_cloud_accounts, leaving that inference to the singular/plural naming.

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 iaas_get_azure_cloud_accounts, iaas_get_cloud_account, or iaas_get_vsphere_cloud_account. The agent must infer selection 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.

iaas_get_azure_cloud_accountsB
Read-onlyIdempotent

Get Azure cloud accounts Get all Azure cloud accounts within the current organization GET /iaas/api/cloud-accounts-azure

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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. The description contributes the organization-level scoping constraint, but says nothing about pagination defaults or what the response collection looks like, so it adds modest 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two lines restate the same fact ('Get Azure cloud accounts' / 'Get all Azure cloud accounts within the current organization'), and the raw path 'GET /iaas/api/cloud-accounts-azure' is implementation noise already present in the annotation title. Front-loaded intent is fine, but a third of the text is redundant.

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, org-scoped list endpoint with complete schema coverage and full annotations, the description gives the agent enough to call it correctly. Only paging/return-shape detail is absent, and no output schema exists, which is a minor gap rather than 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% (top, skip, apiVersion each documented), so the baseline of 3 applies. The description adds no meaning about paging behavior or default record counts, so it neither compensates nor detracts.

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 all Azure cloud accounts') plus the scope ('within the current organization'), which separates it from the cross-provider iaas_get_cloud_accounts and the single-object iaas_get_azure_cloud_account. It never names those siblings explicitly, so differentiation must be inferred from 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The org-scoped listing intent is implied, but there is no explicit when-to-use/when-not guidance and no reference to alternatives such as iaas_get_cloud_accounts (all providers) or iaas_get_azure_cloud_account (single account). An agent must infer routing from naming conventions alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_azure_disk_encryption_setsC
Read-onlyIdempotent

Get Azure disk encryption sets Get all Azure disk encryption sets GET /iaas/api/fabric-azure-disk-encryption-sets

NameRequiredDescriptionDefault
regionIdYesRegion id
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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. The description adds no behavioral detail beyond repeating the operation and endpoint, such as region scoping, pagination, or response shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and easy to scan, but the first two lines redundantly restate the same operation and the raw endpoint provides limited value to 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?

For a simple read-only getter, the full schema and rich annotations cover much of what an agent needs. However, the description omits required region scoping and says nothing about return behavior 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 both regionId and apiVersion are already documented in the schema. The description adds no extra parameter meaning, 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 and resource, 'Get Azure disk encryption sets,' and makes the scope clear with 'Get all.' It does not distinguish from related retrieval tools, but the purpose itself is still easy to identify.

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 when-to-use guidance, prerequisites, or alternatives despite a large set of sibling iaas_get_* tools. The only implicit guidance is that this retrieves Azure disk encryption sets.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_azure_storage_profileC
Read-onlyIdempotent

Get Azure storage class Get Azure storage class with a given id GET /iaas/api/storage-profiles-azure/{id}

NameRequiredDescriptionDefault
idYesThe ID of storage class. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 fully covered. The description adds nothing beyond restating the HTTP method — no note on what the response contains, whether 404 is returned for unknown ids, or any auth/versioning 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?

Very short, but the first line ('Get Azure storage class') is pure duplication of the title/first clause and the second line largely repeats it. The useful content — that id is a path parameter — is present but not front-loaded as the differentiator.

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 GET with full schema coverage and complete annotations, this is minimally adequate. However, with no output schema, the description should say at least something about what a storage profile object contains or how it differs from the generic/vSphere/AWS profiles it sits among.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 (id, apiVersion) are documented in the schema itself. The description only echoes that the id is required and adds no format, sourcing, or versioning detail, 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 ('Get') and resource ('Azure storage class') plus the scoping condition ('with a given id'), which implicitly separates it from the list variant iaas_get_azure_storage_profiles. It does not name any sibling explicitly, so it stops short of full differentiation among the many storage-profile 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 statement of when to use this tool versus iaas_get_azure_storage_profiles, iaas_get_storage_profile, or iaas_get_vsphere_storage_profile. The only hint is the 'given id' requirement, which is a parameter fact rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_azure_storage_profilesC
Read-onlyIdempotent

Get Azure storage classes Get all Azure storage classes GET /iaas/api/storage-profiles-azure

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 fully covered. The description adds nothing beyond repeating "Get" and the raw endpoint URL — no pagination, no filtering behavior, no note about whether all Azure storage profiles or only those in a cloud account 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short lines, but the first two are near-duplicates ("Get Azure storage classes" / "Get all Azure storage classes") and the third is just an endpoint URL. It is front-loaded and not bloated, but includes redundant framing without adding substance.

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 full annotation coverage and a fully documented single param, the essentials are present. However, with no output schema, the agent gets no hint about what a storage profile object contains or whether the result includes associated cloud accounts, which would help selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single optional apiVersion parameter that is fully documented in the schema. The description doesn't mention apiVersion at all, but the schema carries that burden, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb-and-resource pair ("Get all Azure storage classes") that tells the agent this is a list operation scoped to Azure storage profiles. It doesn't distinguish itself from siblings like iaas_get_azure_storage_profile (singular) or the generic iaas_get_storage_profiles, leaving the agent to infer the collection semantics.

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 the singular Azure profile getter or the provider-agnostic list. No prerequisites, filtering context, or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_block_deviceC
Read-onlyIdempotent

Get BlockDevice Get a single BlockDevice GET /iaas/api/block-devices/{id}

NameRequiredDescriptionDefault
idYesThe ID of the block device. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, destructiveHint=false and openWorldHint, so the safety profile is fully covered elsewhere. The description adds only the raw REST path, with no statement about error behavior, permissions, or what a 404 means — essentially nothing beyond structured data.

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 same fact is restated three times ('Get BlockDevice', 'Get a single BlockDevice', 'GET /iaas/api/block-devices/{id}') — redundant rather than wasteful in length. Two of the three lines earn no additional 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 trivial single-resource read with full schema coverage and rich annotations, an agent can invoke it correctly from what is present. Coverage is adequate but minimal; there is no output shape (no output schema) and no hint about relations to disks/machines.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 the required 'id' path parameter and optional 'apiVersion' documented in-schema. The description contributes nothing about parameter meaning, 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 ('Get a single BlockDevice') and the singular framing implicitly distinguishes it from the plural sibling iaas_get_block_devices. It never names that sibling explicitly, so differentiation is by implication rather than statement.

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 use this versus iaas_get_block_devices or iaas_get_machine_disks, no prerequisites, and no note about what a missing/unknown id yields. The agent must infer the choice 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.

iaas_get_block_devicesC
Read-onlyIdempotent

Get BlockDevices Get all BlockDevices GET /iaas/api/block-devices

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
countNoFlag which when specified, regardless of the assigned value, shows the total number of records. If the collection has a filter it shows the number of records matching the filter.
filterNoFilter the results by a specified predicate expression. Operators: eq, ne, and, or.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.8/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 by structured data. The description adds nothing beyond restating the HTTP path — no pagination behavior, no default page size, no indication of whether the full collection is returned or truncated.

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 the first two lines are redundant restatements of the same phrase and the endpoint path is largely a duplicate of the annotations title. It is front-loaded but padded rather than informative.

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 parameterless-required list endpoint whose five query parameters are fully described in the schema and whose safety profile is fully described by annotations, nothing essential is missing. A richer description would be welcome but the 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% with five well-documented parameters (top, skip, count, filter, apiVersion), so the schema carries the semantic load. The description contributes no additional meaning about pagination or filter syntax; 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?

States the verb and resource ("Get all BlockDevices") and gives the underlying REST path, so the operation is identifiable as a collection list. However, it does not distinguish itself from the singular sibling iaas_get_block_device or from iaas_get_machine_disks, leaving the plural/singular split to be inferred 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 guidance on when to call this versus iaas_get_block_device (single-record fetch) or iaas_get_machine_disks, both of which return overlapping data. No prerequisites, no mention of how to page through a large collection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_certificate_infoC
Read-onlyIdempotent

Get certificate info GET /iaas/api/certificates/{id}

NameRequiredDescriptionDefault
idYesThe ID of the EndpointCreationTaskState (path)
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, idempotentHint, and destructiveHint=false, so the safety profile needs no restating. The description adds nothing beyond the path – no auth requirements, no behavior on an unknown id (404 vs empty), and no note about what object is returned, which matters since 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short lines, front-loaded with the verb+resource and no filler. The second line only restates the annotation title endpoint, so it is near-waste but not harmful.

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 read tool with no output schema, the description should at least say what a certificate record contains or how it relates to endpoints/cloud accounts. Instead it gives only the raw HTTP route, leaving the agent to guess the payload shape and the domain 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 coverage is 100%, so both the id path parameter and the apiVersion date parameter are documented in the schema, setting the baseline at 3. The description contributes nothing further – notably it does not clarify the id, whose schema text is a mismatched copy-paste ('ID of the EndpointCreationTaskState').

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?

"Get certificate info" states a clear verb plus resource, and the REST path confirms it is a fetch-by-id for a single certificate. It does not distinguish itself from the many other iaas_get_* retrievers (or provider_get_certificate) or say what 'info' contains, 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?

No indication of when to call this versus a list endpoint or the sibling provider_get_certificate. There are no prerequisites, exclusions, or alternative-routing guidance anywhere in the text.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_cloud_accountB
Read-onlyIdempotent

Get cloud account Get cloud account with a given id GET /iaas/api/cloud-accounts/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Cloud Account (path)
selectNoSelect a subset of properties to include in the response.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

B3.3/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 endpoint and single-resource lookup context, but does not describe response behavior, error cases, or any additional operational constraints.

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 first two lines are redundant: 'Get cloud account' is immediately restated as 'Get cloud account with a given id'. The endpoint line is useful, but the repeated introduction 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 simple read-only GET by ID, the description plus annotations and full schema coverage are enough to invoke the tool. However, with no output schema, it does not explain what the returned cloud account object contains or how errors are surfaced, 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 schema already documents all three parameters including id, select, and apiVersion. The description reinforces that the id is used to fetch a specific cloud account but adds no syntax or format detail 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 states a specific verb and resource: get a cloud account with a given ID. It implicitly distinguishes itself from the list-style sibling by requiring an ID, but it does not explicitly differentiate from provider-specific cloud account getters such as iaas_get_aws_cloud_account or iaas_get_vsphere_cloud_account.

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 'with a given id' — an agent should use this when it has a specific cloud account ID. However, the description gives no explicit when-to-use guidance, no exclusions, and no alternatives to consider versus the many provider-specific or list-based sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_cloud_accountsB
Read-onlyIdempotent

Get cloud accounts Get all cloud accounts within the current organization GET /iaas/api/cloud-accounts

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
countNoFlag which when specified, regardless of the assigned value, shows the total number of records. If the collection has a filter it shows the number of records matching the filter.
filterNoFilter the results by a specified predicate expression. Operators: eq, ne, and, or.
selectNoSelect a subset of properties to include in the response.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, non-destructive and openWorldHint, so the safety profile is fully covered. The description adds only the REST endpoint path; it says nothing about paging behavior, default ordering, whether the organization scope is derived from the auth token, or what a large-org response looks like. That is minimum viable against an annotation-covered read tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three lines, but the first line merely restates the tool name and the second nearly repeats it, and the raw endpoint path duplicates the annotation title 'GET /iaas/api/cloud-accounts'. Short, but with avoidable redundancy rather than added 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 list tool with full schema coverage and no output schema, the description is adequate but thin: it does not say what identifying fields come back, whether the collection is paginated by default, or the empty-result case. An agent can call it, but cannot predict 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%, so all six parameters (top, skip, count, filter, select, apiVersion) are already documented in the schema. The description adds no extra semantics — no example filter expressions, no note on how top/skip interact, no versioning caveat beyond pointing at 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 (get cloud accounts) and scopes it to 'all cloud accounts within the current organization', which implicitly separates it from the single-resource iaas_get_cloud_account. However, it never distinguishes itself from the many provider-specific list siblings (iaas_get_aws_cloud_accounts, iaas_get_azure_cloud_accounts, iaas_get_vsphere_cloud_accounts, etc.), so the agent must infer that this is the unfiltered cross-provider listing.

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 iaas_get_aws_cloud_accounts/iaas_get_vsphere_cloud_accounts or the singular iaas_get_cloud_account, and no mention of when filtering by type is preferable. Pagination is left entirely to the schema with no note about defaults or large result sets.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_compute_gatewayB
Read-onlyIdempotent

Get a compute gateway Get compute gateway with a given id GET /iaas/api/compute-gateways/{id}

NameRequiredDescriptionDefault
idYesThe ID of the gateway. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

B3.1/5.0
Behavior2/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 fully covered. The description adds nothing beyond that — not even noting that it returns a single object or what happens on an unknown ID — and its third line merely repeats the annotation title's endpoint 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 and front-loaded, but three lines communicate one fact, with line two restating line one and line three duplicating the annotation title. Redundancy rather than under-specification is the issue.

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 GET with complete schema coverage and rich annotations, this is minimally sufficient — an agent can call it correctly. It stops short of describing the returned gateway object or error behavior, which would have made it complete without 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?

Schema description coverage is 100%, with both the path ID and optional apiVersion documented in the schema itself. The description's 'with a given id' adds no format, sourcing, or constraint detail beyond what the schema already provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get a compute gateway with a given id'), so an agent knows it retrieves a single gateway rather than a collection. It does not name the sibling list tool iaas_get_compute_gateways to make the single-vs-list distinction explicit, and the first two lines restate the same fact.

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: 'with a given id' signals that the caller must already have the gateway ID, which hints at when to use it versus the list endpoint. There is no explicit when/when-not guidance and no alternative tool is named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_compute_gatewaysC
Read-onlyIdempotent

Get compute gateways Get all compute gateways GET /iaas/api/compute-gateways

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, openWorldHint=true, so the safety profile is fully covered structurally. The description adds nothing beyond that — no note about what is returned, whether results are scoped by project/tenant, or about the absence of paging/filter parameters in a collection 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?

Very short and front-loaded, but the three lines are near-duplicates ('Get compute gateways' / 'Get all compute gateways' / path) — the repetition adds no information and displaces content that would actually help, such as return shape or scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema and the description says nothing about what a compute gateway is or what the response contains, for a raw collection endpoint. For a simple read this is survivable, but the description is essentially an auto-generated stub and leaves the agent guessing about return fields and scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single optional parameter (apiVersion) with 100% schema description coverage, so the schema carries the meaning. The description does not mention apiVersion at all, but per the high-coverage baseline this is an acceptable 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 verb and resource ('Get compute gateways', 'Get all compute gateways') so the agent can tell it lists gateways rather than fetching a single one. However, it never distinguishes itself from the near-identical sibling iaas_get_compute_gateway (singular), and the third line merely repeats the REST path. Purpose is inferable but not sharpened beyond 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 guidance on when to call this versus iaas_get_compute_gateway, or on any prerequisites/filters. The 'all' wording hints at scope but no exclusions or alternatives are named, leaving the agent to infer list-vs-single selection from the tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_compute_natB
Read-onlyIdempotent

Get a Compute Nat Get Compute Nat with a given id GET /iaas/api/compute-nats/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Compute Nat resource. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

B3.1/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. The description contributes nothing beyond the name and HTTP path — no note on what a Compute NAT is, error behavior for unknown IDs, or response shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short and front-loaded, but the first two lines say the same thing ('Get a Compute Nat' / 'Get Compute Nat with a given id'), so one of the three lines is pure repetition.

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 annotations and 100% schema coverage this is close to sufficient, but a one-clause explanation of what a Compute NAT resource represents would round it out. No output schema exists, so nothing is owed on return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both the id path parameter and apiVersion are documented structurally. The description only restates that an id is required and adds no syntax or format 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 ('Get a Compute Nat with a given id') plus the underlying endpoint, so an agent knows this is a single-resource read. It does not distinguish itself from nearby siblings such as iaas_get_compute_nats (list), iaas_create_compute_nat, or iaas_reconfigure_nat.

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?

'with a given id' implies usage — fetch one existing Compute NAT when its ID is known — but no explicit when-to-use, when-not-to-use, or alternative (e.g. use iaas_get_compute_nats to discover IDs) is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_compute_natsC
Read-onlyIdempotent

Get Compute Nats Get all Compute Nats GET /iaas/api/compute-nats

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 covered. The description contributes nothing beyond the REST path — no mention of pagination, result size, or whether the listing is org/project-scoped, which for an 'all' endpoint is meaningful context.

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?

Three lines that each restate the same fact — the operation name and its HTTP path — with zero additional information. Size is small but nothing in it earns its place beyond the first line.

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 no-required-param, read-only list endpoint with full annotation coverage and no output schema, the minimum is arguably met. Still, an agent is left guessing about pagination, filtering by compute gateway, and what a compute NAT record contains, which the description could have supplied cheaply.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage on the single apiVersion parameter (including a pointer to /iaas/api/about), the schema carries the load and the baseline of 3 applies. The description adds no extra meaning about the version parameter or its defaults.

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 lines 'Get Compute Nats' and 'Get all Compute Nats' do convey a list-of-compute-NATs operation, and 'all' weakly distinguishes it from the singular sibling iaas_get_compute_nat. But the phrasing is near-tautological with the tool name and the bare HTTP path adds no semantics, so an agent gets only a vague sense of the resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description never says when to choose this over iaas_get_compute_nat (single NAT), iaas_get_compute_gateways, or iaas_reconfigure_nat. No prerequisites, no filtering context, no exclusions — usage must be inferred 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.

iaas_get_computesA
Read-onlyIdempotent

Get computes Get zone's computes by given zone ID GET /iaas/api/zones/{id}/computes

NameRequiredDescriptionDefault
idYesThe ID of the zone. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds no significant behavioral traits that are not already covered by the annotations. Since `readOnlyHint: true` and `destructiveHint: false` already define its safety profile, the description simply restates its functional nature as a data retrieval operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of two short sentences that front-load the resource and the filtering mechanism. There is no extraneous language.

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 definition is complete enough for an agent to correctly invoke the tool given the schema and annotations. However, it lacks information regarding pagination or potential rate limiting, which would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 100%, the baseline score is 3. The description provides zero unique semantic information regarding the parameters, merely repeating that the zone ID is used to locate the computes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is highly specific, using the verb 'Get' and immediately specifying the resource 'zone's computes'. It clearly identifies the scope of the tool—retrieving computes filtered by a zone ID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear contextual requirement (needs a zone ID), but it offers no explicit guidance on when this tool should be chosen over other list operations (e.g., listing all computes without zone constraints).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_configuration_propertiesC
Read-onlyIdempotent

Get configuration properties Get all configuration properties GET /iaas/api/configuration-properties

NameRequiredDescriptionDefault
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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. The description contributes nothing beyond the raw endpoint path: no return shape, no pagination behavior, no note on how many properties come back or whether results are tenant-scoped.

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 line 1 ("Get configuration properties") and line 2 ("Get all configuration properties") say the same thing, and line 3 is just the HTTP path. Roughly a third of the content is genuine signal; the rest is 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?

This is a simple one-parameter read with no output schema and rich annotations, so the bar is low, but the description still leaves the agent without any idea of what the response contains — a list wrapper, property names/values, or metadata — which matters for an untyped GET-all 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?

There is a single required parameter (apiVersion) and schema description coverage is 100%, with the schema explaining the yyyy-MM-dd format and pointing to /iaas/api/about. The description adds no additional parameter meaning, but baseline 3 applies when the schema fully carries this 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 and resource are present ("Get all configuration properties"), and the scope word "all" implicitly distinguishes it from the sibling iaas_get_configuration_property. However, the first line and the second line are near-duplicates, and the sibling is never named or contrasted, so the agent must infer the list-vs-single 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 guidance on when to call this versus iaas_get_configuration_property, iaas_patch_configuration_property, or iaas_delete_configuration_property. No prerequisites, no mention of whether the result is filtered or paginated, and no exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_configuration_propertyC
Read-onlyIdempotent

Get single configuration property GET /iaas/api/configuration-properties/{id}

NameRequiredDescriptionDefault
idYes(path)
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, openWorld, so the safety profile is covered. The description adds nothing beyond restating the HTTP verb and path — no note on what a configuration property contains, whether lookups can fail, or any permission requirement.

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 action front-loaded and no filler. It is efficient, though arguably under-informative rather than genuinely concise for a description that has nothing else to offer.

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 full schema coverage and no output schema, the definition is adequate but bare: it never explains what a configuration property is or what the response contains, which the absence of an output schema makes slightly more important.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both id and apiVersion. The description's URL template implies that id is a path parameter, adding only marginal value; the apiVersion format requirement is left entirely to the schema.

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 specific verb+resource ('Get single configuration property') and the underlying REST path, which tells an agent it retrieves one entity by ID. It only implicitly distinguishes itself from the sibling iaas_get_configuration_properties (the plural list tool) through the word 'single'.

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 word 'single' hints that this is the by-ID fetch and the plural sibling handles listing, but there is no explicit when-to-use/when-not statement and no mention of alternatives, prerequisites, or error behavior for a missing ID.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_custom_nameC
Read-onlyIdempotent

Get Custom Name by Id GET /iaas/api/naming/{id}

NameRequiredDescriptionDefault
idYesThe ID of the custom name. (path)
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, and the annotation title already contains the same GET path the description repeats. Nothing new is disclosed — no behavior on a missing ID (404 vs empty), no auth requirement, no response shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short lines with the identifying information front-loaded and no filler. It is terse rather than padded, though the second line merely restates the annotation title.

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 this is minimally adequate, and the schema documents both inputs. With no output schema, however, the agent has no indication of what a Custom Name object contains, and the description does not compensate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the id (path) and apiVersion parameters are fully documented in the schema, and the description adds nothing beyond that. Baseline 3 applies when the schema carries the parameter 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?

States a specific verb and resource ("Get Custom Name by Id"), which cleanly separates it from iaas_get_all_custom_names and iaas_get_custom_name_by_project_id in the sibling list. It does not explicitly name those siblings as alternatives, 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?

No when-to-use context, no prerequisites, and no mention of the list/project-scoped variants an agent could confuse it with. The agent must infer from the name alone that this is the single-record lookup path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_custom_name_by_project_idC
Read-onlyIdempotent

Get Custom Names For Project Id GET /iaas/api/naming/projectId/{id}

NameRequiredDescriptionDefault
idYesProject id. (path)
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.6/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 covered. The description adds nothing beyond the endpoint path — no behavior on unknown project ids, empty results, pagination, or authentication scope — so it earns little 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short lines, front-loaded and free of padding. It is efficient, though the brevity 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?

For a read-only lookup in a crowded iaas naming family with no output schema, the description should at least say what a custom-name record contains or how the project scoping affects results. Neither is present, leaving the agent to guess the return shape and its distinction from the sibling naming endpoints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: both 'id' (project id, path) and 'apiVersion' are documented in the schema, so baseline 3 applies. The description only echoes that the id is part of the path and adds no format, validation, or versioning guidance.

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 in title case ('Get Custom Names For Project Id') plus the raw HTTP route. The verb+resource are identifiable, but it adds no clarity about what a 'custom name' record is or how this differs from siblings such as iaas_get_custom_name and iaas_get_all_custom_names.

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 exclusions, and no mention of the obvious alternatives (iaas_get_custom_name, iaas_get_all_custom_names, iaas_get_custom_names_by_project_id-style variants). An agent must infer selection purely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_data_collectorB
Read-onlyIdempotent

Get Data Collector Get Data Collector with a given id. Note: Data collector endpoints are not available in VMware Aria Automation (on-prem) release. GET /iaas/api/data-collectors/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Data Collector. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 a meaningful availability constraint noting the endpoint is unavailable in on-prem releases, but it does not describe response behavior or errors.

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 it redundantly repeats 'Get Data Collector' in the first two sentences and then restates the REST endpoint. The availability caveat 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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple get-by-id retrieval with full schema coverage and read-only annotations, the description is largely complete. The main omission is a brief statement of what is returned, though the tool is simple enough 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 description coverage is 100%, and the schema already documents both id and apiVersion. The description only repeats that an id is required and adds no format, example, or apiVersion 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 a Data Collector by a given id. This distinguishes it from the plural list tool iaas_get_data_collectors, though the description does not explicitly name sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the required id parameter, but the description does not explicitly say when to use this versus iaas_get_data_collectors or other alternatives. It does add a useful availability caveat for VMware Aria Automation on-prem.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_data_collectorsA
Read-onlyIdempotent

Get Data Collectors Get all Data Collectors. Note: Data collector endpoints are not available in VMware Aria Automation (on-prem) release. GET /iaas/api/data-collectors

NameRequiredDescriptionDefault
disabledNoIf query param is provided with value equals to true, only disabled data collectors will be retrieved.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds meaningful behavioral context by warning that data collector endpoints are unavailable in the on-prem VMware Aria Automation release.

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 availability caveat placed prominently. It has minor redundancy between the heading 'Get Data Collectors' and the sentence 'Get all Data Collectors,' plus the raw endpoint path restates the annotation 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 simple read-only list endpoint with full parameter schema coverage and rich annotations, the description is largely complete. The main omission is that it does not explain response shape or whether pagination applies, though no output schema exists and the tool has no required parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are fully documented in the schema. The description adds no additional parameter semantics beyond stating that it retrieves all data collectors, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get all Data Collectors.' The word 'all' distinguishes this list operation from the sibling singular tool iaas_get_data_collector, and the on-prem availability caveat adds useful scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a clear usage context ('Get all') and a when-not caveat for VMware Aria Automation on-prem. However, it does not explicitly route the agent between this tool and the singular iaas_get_data_collector or other sibling list endpoints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_deploymentsC
Read-onlyIdempotent

Get Deployments Get all deployments. GET /iaas/api/deployments

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
countNoFlag which when specified, regardless of the assigned value, shows the total number of records. If the collection has a filter it shows the number of records matching the filter.
filterNoFilter the results by a specified predicate expression. Operators: eq, ne, and, or.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety behavior is covered. The description adds only the raw REST path (GET /iaas/api/deployments), and says nothing about default page size, whether results are unpaginated by default, or what identifying fields a deployment 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?

It is short, but the first two lines are redundant ("Get Deployments" / "Get all deployments"), and no line is front-loaded with the information an agent would actually need, such as pagination defaults or scope.

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 parameterless-required read-only list endpoint with full schema coverage, an annotations safety profile, and no output schema, the definition is just barely sufficient. It does not tell the agent that the response is a paginated collection or that the endpoint is IaaS-scoped, 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 description coverage is 100% across all five parameters (top, skip, count, filter, apiVersion), so the schema already carries the semantics. The description adds nothing about pagination conventions or filter expression syntax, 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?

"Get all deployments" states a verb and resource and the scope word "all" implies a collection listing rather than a single lookup, but it largely restates the tool name and gives no differentiation from the many deployment-related siblings (deployment_get_deployments, iaas_get_single_deployment, deployment_get_deployment_by_id).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no mention of alternatives, despite several sibling tools that return deployments from a different service. The agent must infer from the name alone that this is the IaaS-side list endpoint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_disk_snapshotC
Read-onlyIdempotent

Get disk snapshot Get snapshot with a given id for specific disk GET /iaas/api/block-devices/{id}/snapshots/{id1}

NameRequiredDescriptionDefault
idYesThe ID of the disk. (path)
id1YesThe ID of the snapshot. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 essentially nothing beyond restating the endpoint path (which is already duplicated in the annotation title) – no mention of behavior when the disk or snapshot id is unknown, or of the disk→snapshot containment relationship beyond the bare phrase 'specific disk'.

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 lines, front-loaded with the verb and resource; there is no filler prose. The raw 'GET /iaas/api/...' line is largely redundant with the annotation title, which keeps it just shy of a 5.

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, three-parameter read with full schema coverage, rich annotations and no output schema, the description is minimally sufficient to call the tool correctly. It nonetheless leaves out anything about error/not-found behavior or the relationship between the disk id and snapshot id, which a marginally richer definition would supply.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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% – id, id1 and apiVersion are each documented in the schema, including the (path) markers. The description only echoes the path template, adding no meaning 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?

The description states a specific verb and resource ('Get disk snapshot ... with a given id for specific disk'), which clearly distinguishes a single-resource fetch from the listing sibling iaas_get_disk_snapshots. It never names that sibling explicitly, so the differentiation is inferred from 'a given id' rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus the list endpoint iaas_get_disk_snapshots or vs. the sibling iaas_delete_block_device_snapshot. The only hint is the phrase 'with a given id', which implies single-record retrieval but names no alternative, matching the calibration level for 'no when-to-use' descriptions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_disk_snapshotsC
Read-onlyIdempotent

Get disk snapshots information GET /iaas/api/block-devices/{id}/snapshots

NameRequiredDescriptionDefault
idYesThe ID of the disk. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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. Beyond that the description adds nothing: no indication that this returns a collection, no pagination or result-size behavior, no note that the disk must exist or which 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short lines with the purpose front-loaded and no filler. The verbatim REST path is mildly redundant with the title but is compact and informative for an API-aware 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?

With annotations present and both parameters fully described in schema, the essentials are covered. However, there is no output schema and the description never indicates that the result is a list of snapshot objects, leaving the agent to guess at 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 coverage is 100% and the id parameter is documented as the disk ID with the apiVersion description pointing at /iaas/api/about. The description only echoes the {id} path parameter and adds no format or acquisition guidance, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource (get disk snapshots) and the embedded endpoint path confirms the scope is a block device's snapshot collection. The plural-vs-singular distinction from the sibling iaas_get_disk_snapshot is left implicit rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance and no mention of alternatives such as iaas_get_disk_snapshot for a single snapshot or iaas_get_block_devices for discovering the required disk ID. Usage can only be inferred from the {id} path fragment.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_event_logsC
Read-onlyIdempotent

Get Event Logs Get all Event logs GET /iaas/api/event-logs

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
countNoFlag which when specified, regardless of the assigned value, shows the total number of records. If the collection has a filter it shows the number of records matching the filter.
filterNoFilter the results by a specified predicate expression. Operators: eq, ne, and, or.
selectNoSelect a subset of properties to include in the response.
endDateNoEnd Date e.g. 2020-12-01T08:00:00.000Z
startDateNoStart Date e.g. 2020-12-01T08:00:00.000Z
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, and destructiveHint=false, so safety is covered. The description adds only the endpoint path and no behavioral context such as pagination behavior, whether all records or a bounded default page is returned, or how results relate to other event-log tools.

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 same idea is repeated three times across the title line, the sentence, and the path. It is concise without being informative, so it does not earn full marks.

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 eight-parameter list endpoint with no output schema, yet the description says nothing about the response shape, default pagination, or the relationship to the many sibling event-log tools. Annotations cover safety, but the description leaves too much about invocation behavior 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% for all eight optional parameters, so the schema already documents top, skip, filter, select, and date bounds. The description adds no additional semantics beyond what the schema provides, which is acceptable at baseline 3 when schema does the heavy lifting.

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 and resource ('Get all Event logs') and includes the REST path, so the basic purpose is clear. But it is close to a restatement of the tool name and does not distinguish this tool from close siblings like deployment_get_event_logs or eventbroker_get_events, which also retrieve event logs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this IaaS event-log endpoint versus deployment_get_event_logs or eventbroker_get_events, nor any mention of prerequisites or scoping. The agent must infer the right 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.

iaas_get_external_ip_blockA
Read-onlyIdempotent

Get specific external IP block by id An external IP block is network coming from external IPAM provider that can be used to create subnetworks inside it GET /iaas/api/external-ip-blocks/{id}

NameRequiredDescriptionDefault
idYesThe ID of the external IP block (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 covered. The description adds genuinely useful domain context (external IP blocks come from an external IPAM provider and are containers for subnetworks), but says nothing about failure behavior for a bad id 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?

Three short lines, front-loaded with the action, followed by the domain gloss and the endpoint. Every sentence is relevant, though the domain gloss could arguably sit after the id semantics.

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 rich annotations, the description supplies what the structured fields cannot: what an external IP block actually is. Only the absence of error/empty-result behavior keeps it from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 'id' path parameter and 'apiVersion' are already documented by the schema. The description only restates that lookup is by id and adds no format, example, or apiVersion guidance, which is the correct baseline when 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?

States a specific verb+resource+selector ('Get specific external IP block by id'), and the definition sentence plus REST endpoint make the resource unambiguous. The singular-vs-plural distinction from iaas_get_external_ip_blocks is implicit rather than stated outright, so it stops just short of 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?

Usage is implied by 'by id' — an agent can infer this is the single-item fetch versus the list sibling — but the description never says when to choose this over iaas_get_external_ip_blocks or what to do without an id. 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.

iaas_get_external_ip_blocksB
Read-onlyIdempotent

Get all external IP blocks An external IP block is network coming from external IPAM provider that can be used to create subnetworks inside it GET /iaas/api/external-ip-blocks

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, so the safety profile is covered. The description adds useful domain context by explaining that external IP blocks come from an external IPAM provider and can be used to create subnetworks, but it does not disclose return format, pagination behavior, or other behavioral traits 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?

The description is short and front-loads the operation with "Get all external IP blocks" before adding a definition and endpoint. It is mostly efficient, though the endpoint line duplicates information already present in the annotation 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 simple read-only list tool with one optional parameter and no output schema, the description is nearly sufficient: it states the operation and defines the resource. The main missing context is whether results are paginated or how they relate to the singular iaas_get_external_ip_block sibling, but annotations already carry the safety profile.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 single optional apiVersion parameter is fully documented in the schema. The description does not add any parameter-level meaning, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: "Get all external IP blocks." It clearly identifies the operation as listing external IP blocks, but it does not distinguish this plural-list tool from the sibling singular tool iaas_get_external_ip_block or other IP-range 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 provides domain context by defining an external IP block, but it gives no explicit guidance on when to use this tool versus alternatives. It does not mention the singular sibling tool, pagination expectations, or any exclusion conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_external_network_ip_rangeC
Read-onlyIdempotent

Get external IPAM network IP range Get external IPAM network IP range with a given id GET /iaas/api/external-network-ip-ranges/{id}

NameRequiredDescriptionDefault
idYesThe ID of the external IPAM network IP range. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.6/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 that: the trailing 'GET /iaas/api/external-network-ip-ranges/{id}' duplicates the annotation title verbatim and says nothing about not-found behavior, error responses, or the shape of the returned record.

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 the resource is front-loaded, but sentence two is a near-verbatim repetition of sentence one and sentence three repeats the annotation title, so roughly half the text is redundant rather than earning 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 read-by-id operation with full annotation coverage and a 100%-documented two-parameter schema, the definition is adequate to invoke correctly. However, since no output schema exists, the description should give at least a hint of what the returned IP-range record contains (CIDR, IPAM provider, associated network) — that gap is unaddressed anywhere.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 `id` and `apiVersion` are documented in the schema, including the path marker and the versioning reference. The description's 'with a given id' adds no syntax, format, or sourcing guidance beyond what the schema already states, so the baseline of 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+resource ('Get ... external IPAM network IP range') is stated and the object is specific, but the second sentence merely rephrases the first ('with a given id'), and nothing distinguishes it from the sibling list tool iaas_get_external_network_ip_ranges or from iaas_get_internal_network_ip_range beyond the resource noun. It is clear but essentially restates 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?

There is no explicit when-to-use statement, no mention of the list counterpart as the alternative, and no prerequisites. The only usage signal is the implicit 'fetch one by id' conveyed by the endpoint path, which the agent must infer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_external_network_ip_rangesC
Read-onlyIdempotent

Get external IPAM network IP ranges Get all external IPAM network IP ranges GET /iaas/api/external-network-ip-ranges

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.8/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 upstream. The description adds only the raw GET path, which repeats the read semantics rather than adding anything new such as pagination behavior, result limits, or scope of the external IPAM data returned.

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?

Three lines convey one idea; the second line is a verbatim amplification of the first and the third is just the endpoint path. It is short but redundant rather than economical, and none of the space is used to front-load distinguishing 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 list with no output schema and full annotation coverage, the description is minimally sufficient — an agent can call it. It still omits whether results are paginated or what the response collection contains, which matters for a listing endpoint over a potentially large set of ranges.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single optional apiVersion parameter, and the schema already explains the yyyy-MM-dd format and the /iaas/api/about reference. The description adds no parameter meaning beyond that, 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 ('Get all external IPAM network IP ranges'), so an agent knows this is a list operation over external IPAM ranges. However it offers no differentiation from close siblings such as iaas_get_external_network_ip_range (singular), iaas_get_internal_network_ip_ranges, or iaas_get_external_ip_blocks, and the three lines merely restate each other.

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 the singular getter or the internal-range equivalent, and no prerequisites or context conditions are given. Usage has to be inferred 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.

iaas_get_fabric_aws_volume_typesB
Read-onlyIdempotent

Get fabric AWS volume types Get all fabric AWS volume types. GET /iaas/api/fabric-aws-volume-types

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, non-destructive and openWorld, so the safety profile is covered. The description adds only the implicit scope of 'all' items, with no mention of pagination, filtering limits, or permission requirements beyond what the annotations imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loaded, but the first and second lines restate each other ('Get fabric AWS volume types' / 'Get all fabric AWS volume types') and the raw 'GET /iaas/api/fabric-aws-volume-types' line is redundant with the annotations title. Nothing is wasted in volume, but nothing is gained either.

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 list tool this is minimally adequate, but with no output schema the description should say what each entry contains (IDs, names, association to a cloud account/fabric) so the agent knows what it can do with the result. That 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% and the single optional apiVersion parameter is fully documented in the schema, so the schema carries the burden. The description adds no meaning about how apiVersion affects results, 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?

States a specific verb and resource: 'Get all fabric AWS volume types', which is clear enough to know it is an unfiltered listing of AWS volume types in the fabric. It does not distinguish this from nearby siblings such as iaas_get_aws_storage_profiles or iaas_get_fabric_vsphere_storage_policies, 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 guidance on when to use this enumeration versus the related storage-profile or fabric-policy endpoints. The only usage clue is the implicit 'get all', which does not tell the agent about prerequisites or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_fabric_azure_storage_accountB
Read-onlyIdempotent

Get fabric Azure storage account Get fabric Azure storage account with a given id GET /iaas/api/fabric-azure-storage-accounts/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Fabric Azure Storage Account. (path)
selectNoSelect a subset of properties to include in the response.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds only the REST endpoint path, which gives modest extra context but nothing on return shape, pagination, 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same statement is repeated across three lines ('Get fabric Azure storage account' twice, then the endpoint path) before any distinguishing detail. The repetition costs space without adding information, and the one useful qualifier ('with a given id') is buried on line two.

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 by-id tool with complete schema coverage and strong annotations, the description is minimally adequate, but it omits any pointer to the listing sibling and says nothing about what the response contains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters (id, select, apiVersion) are already documented. The description adds no 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?

States a specific verb ('Get') and resource ('fabric Azure storage account') and adds 'with a given id', which distinguishes a single-record fetch from enumeration. It does not name the plural sibling iaas_get_fabric_azure_storage_accounts, so full sibling differentiation is left to the agent.

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 by-id lookup and the plural sibling is for listing, but the description never states when to use this versus iaas_get_fabric_azure_storage_accounts or any prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_fabric_azure_storage_accountsC
Read-onlyIdempotent

Get fabric Azure storage accounts Get all fabric Azure storage accounts. GET /iaas/api/fabric-azure-storage-accounts

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
countNoFlag which when specified, regardless of the assigned value, shows the total number of records. If the collection has a filter it shows the number of records matching the filter.
filterNoFilter the results by a specified predicate expression. Operators: eq, ne, and, or.
selectNoSelect a subset of properties to include in the response.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 elsewhere. The description adds nothing behavioral beyond restating the name and raw GET path — no mention of pagination behavior, default page size, filterable fields, or what happens when no Azure fabric is onboarded.

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 text is short but redundant: the first line and second line say effectively the same thing ("Get fabric Azure storage accounts" / "Get all fabric Azure storage accounts"), and the raw endpoint duplicates the annotation title. It is front-loaded and not bloated, but two of three lines fail to add 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 list endpoint with a fully documented schema and strong annotations, the essentials are present. What is missing is domain context an agent would need to disambiguate the resource — what a "fabric Azure storage account" represents versus an Azure storage profile, and whether the result set is paginated — with no output schema to fall back on.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 top, skip, count, filter, select, and apiVersion each documented in the schema itself, so the baseline is 3. The description contributes no additional meaning about how filter predicates are formed or how select interacts with the response, but it does not need to given full 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 ("Get all fabric Azure storage accounts") and the underlying endpoint, so the agent knows this is a collection read of Azure fabric storage accounts. It does not, however, distinguish itself from the near-identical sibling iaas_get_fabric_azure_storage_account (singular) or from iaas_get_azure_storage_profiles, leaving ambiguity about list-vs-single-record and fabric-vs-profile semantics.

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 this tool over its siblings, nor any stated preconditions (e.g., that the Azure cloud account must be registered). The word "all" hints at a list operation but nothing explicit routes the agent between this and iaas_get_fabric_azure_storage_account or iaas_get_azure_storage_profiles.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_fabric_computeC
Read-onlyIdempotent

Get fabric compute Get fabric compute with a given id GET /iaas/api/fabric-computes/{id}

NameRequiredDescriptionDefault
idYesThe ID of the fabric compute. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 fully covered. The description adds nothing beyond that — no error behavior for an unknown id, no auth/scope requirements, no note on what a 'fabric compute' 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?

It is short and front-loaded, but the three lines are near-verbatim restatements of the same fact ('Get fabric compute' / 'Get fabric compute with a given id' / 'GET /iaas/api/fabric-computes/{id}'). Terse, yet redundant rather than dense.

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 getter with full schema coverage and annotations, the essentials are present. However, with no output schema there is no hint at all about what a fabric compute record contains, which is the one gap the description could have closed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 'id' and 'apiVersion' are documented), so the baseline is 3. The description's phrase 'with a given id' merely echoes the schema and adds no format, sourcing, or versioning guidance for apiVersion.

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 fabric compute') and narrows scope to a single record via 'with a given id'. It never names the closely related sibling iaas_get_fabric_computes (the list variant) or iaas_update_fabric_compute, so differentiation is left to the agent.

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 use this versus the list endpoint, no prerequisites (e.g. needing a prior list call to obtain the id), and no exclusions. The path template '/fabric-computes/{id}' implies single-record retrieval 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.

iaas_get_fabric_computesC
Read-onlyIdempotent

Get fabric computes Get all fabric computes. GET /iaas/api/fabric-computes

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
countNoFlag which when specified, regardless of the assigned value, shows the total number of records. If the collection has a filter it shows the number of records matching the filter.
filterNoFilter the results by a specified predicate expression. Operators: eq, ne, and, or.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 fully covered. The description adds nothing beyond that profile — no pagination defaults, no note about result volume or ordering — it merely restates the operation and echoes the HTTP 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?

It is short, but not efficient: line two ("Get all fabric computes") is a near-verbatim restatement of line one, and line three is just the HTTP route already reflected in the title annotation. Two of three lines do not earn their 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 read-only list with full schema coverage and rich annotations, the description is minimally sufficient to call correctly. What it lacks is disambiguation from the ~350 siblings — especially iaas_get_fabric_compute (single) and iaas_get_computes — which is the one piece of context an agent here actually needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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%: top, skip, count, filter and apiVersion are each documented in the schema, including filter operators and the count flag's behavior. The description adds no parameter meaning beyond the endpoint path, 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 ("Get all fabric computes"), so the agent knows this is a collection read of fabric computes. However, it does nothing to distinguish itself from the singular sibling iaas_get_fabric_compute or from the adjacent iaas_get_computes resource, leaving discrimination to 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 when-to-use guidance, no mention of prerequisites (e.g., a cloud account or integration must exist), and no reference to the singular or non-fabric compute siblings. The agent must infer usage 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.

iaas_get_fabric_flavorsC
Read-onlyIdempotent

Get fabric flavors Get all fabric flavors GET /iaas/api/fabric-flavors

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
includeCoresNoIf set to true will include cores in response.

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, destructiveHint=false and openWorldHint, so the safety profile is fully covered by structured fields. The description adds nothing behavioral beyond that: no pagination, no response shape, no note about whether results are scoped to the calling user's project or all fabric-backed endpoints.

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 action, but the first two lines are redundant paraphrases of each other and the third is a URL already reflected in the tool name and annotation title. Three lines to convey one line of 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?

There is no output schema, so the description should do more work describing what a 'fabric flavor' is and what a listing returns. It leaves the core domain concept and the return content entirely unexplained for an agent that must choose among dozens of iaas_get_* listing 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% with only two optional params (apiVersion, includeCores), both of which the schema documents itself. The description adds no meaning beyond the schema, so the baseline of 3 applies rather than a higher score.

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 specific verb and resource ('Get all fabric flavors') and even pins the REST route, so the basic action is unambiguous. However, it never distinguishes 'fabric flavors' from the many adjacent list tools in the same family (iaas_get_flavors, iaas_get_flavor_profiles, iaas_get_fabric_aws_volume_types), which is exactly the ambiguity an agent needs resolved 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?

No statement of when to use this tool, when not to, or which sibling to prefer. The description is three restatements of the name plus the endpoint path, with zero routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_fabric_imageA
Read-onlyIdempotent

Get fabric image Get enumerated fabric image with a given id. Fabric images are enumerated images from a specific region, which could be used in image mappings. GET /iaas/api/fabric-images/{id}

NameRequiredDescriptionDefault
idYesThe ID of the image. (path)
selectNoSelect a subset of properties to include in the response.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 clear. The description adds useful domain context about what a fabric image is, but it does not describe response behavior or authorization 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 short and front-loads the main operation. The initial 'Get fabric image' restates the tool name, and the trailing GET endpoint duplicates the annotation title, but the remaining content is useful and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-by-ID tool with full schema descriptions and annotations, the definition is largely complete. It explains the resource domain well enough to call the tool correctly, and no output schema exists to require return-value documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents id, select, and apiVersion. The description only reinforces that retrieval requires a given id, adding no further parameter semantics. 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: retrieving a single enumerated fabric image by ID. It also explains what fabric images are. It does not explicitly contrast with the plural sibling iaas_get_fabric_images, but 'with a given id' implies single-item retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives context that fabric images are region-specific and can be used in image mappings. However, it does not explicitly say when to use this tool versus iaas_get_fabric_images or iaas_get_images, nor does it state prerequisites such as knowing the image ID.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_fabric_imagesB
Read-onlyIdempotent

Get allfabric images. Fabric images are enumerated images from a specific region, which could be used in image mappings. Get all enumerated fabric images GET /iaas/api/fabric-images

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
countNoFlag which when specified, regardless of the assigned value, shows the total number of records. If the collection has a filter it shows the number of records matching the filter.
filterNoFilter the results by a specified predicate expression. Operators: eq, ne, and, or.
selectNoSelect a subset of properties to include in the response.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, so the safety profile is covered. The description adds that the collection is region-scoped enumeration data, which is useful context, but says nothing about pagination behavior, result size, or what a filtered/empty result looks like — the areas the annotations do not 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 core concept sentence earns its place, but the opening 'Get allfabric images' is a redundant restatement (with a typo) and the trailing 'Get all enumerated fabric images' plus raw endpoint path repeat the same information a third time. Padding dilutes an otherwise adequate definition.

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 parameterless read-only list operation with full schema coverage and no output schema, the description covers what the resource is. It still omits pagination expectations and result ordering/shape, which matter for a collection endpoint whose paging params the agent must use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters (top, skip, count, filter, select, apiVersion) are already documented in the schema. The description adds no extra semantics — notably it does not connect the 'specific region' wording to any parameter, leaving how region scoping is expressed unexplained. 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 names a specific verb+resource (get fabric images) and explains the domain concept — enumerated images from a specific region that feed image mappings. That is more than a name restatement. It does not, however, explicitly differentiate itself from close siblings like iaas_get_fabric_image (singular) or iaas_get_images, 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 'could be used in image mappings' implies the downstream purpose, but there is no explicit when-to-use statement, no prerequisite, and no named alternative. An agent must infer that this is the listing counterpart to iaas_get_fabric_image and distinct from iaas_get_images.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_fabric_networkB
Read-onlyIdempotent

Get fabric network Get fabric network with a given id GET /iaas/api/fabric-networks/{id}

NameRequiredDescriptionDefault
idYesThe ID of the fabric network. (path)
selectNoSelect a subset of properties to include in the response.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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. The description adds only the raw endpoint path and no further behavioral context such as not-found behavior or response shape, so it sits at the minimum-viable level given rich 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?

Three very short lines with the purpose front-loaded and no filler prose. It is slightly redundant, repeating 'Get fabric network' twice, but the total length is negligible.

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 GET with full schema coverage, comprehensive annotations, and no output schema, this is adequate but thin. It never explains what a fabric network represents or when an agent would reach for it rather than the vSphere-specific or plural variants among the many 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 id, select, and apiVersion are already documented in the schema. The description mentions only the 'given id' and adds nothing about select's filtering semantics or the apiVersion date format, which is the expected baseline when 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 states a specific verb and resource ('Get fabric network') and adds 'with a given id', which signals single-resource retrieval. That implicitly separates it from the plural sibling iaas_get_fabric_networks, but no sibling is named explicitly, so 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?

There is no when-to-use guidance, no prerequisites (e.g. the id must come from iaas_get_fabric_networks or a related listing call), and no named alternative. The only hint is the phrase 'with a given id', which merely restates the required parameter already documented in the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_fabric_network_ip_rangesC
Read-onlyIdempotent

Get associated fabric network IP ranges for a fabric network Get associated fabric network IP ranges for a fabric network with a given id GET /iaas/api/fabric-networks/{id}/network-ip-ranges

NameRequiredDescriptionDefault
idYesThe ID of the fabric network. (path)
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.8/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, so the safety profile is fully covered by structured data. The description adds nothing beyond restating the verb and the REST path – it does not mention pagination behavior despite top/skip parameters, nor whether an empty list is returned when no ranges exist.

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 sentence is written twice verbatim before the endpoint path, which is pure waste. The endpoint line is arguably useful routing context, but the duplicated sentence should have been spent on scope or sibling differentiation instead.

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 endpoint with full schema coverage and complete annotations, the description is minimally sufficient. It is still missing the two things an agent would want that structured fields don't supply: how the response is shaped/paged and how it differs from the near-identical sibling range endpoints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 (id, top, skip, apiVersion) is already documented in the schema. The description only reinforces that id identifies the fabric network; baseline 3 is appropriate when the schema carries the load.

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: retrieving IP ranges belonging to a fabric network identified by id. It is clear what the tool returns at a high level, but it never distinguishes itself from closely named siblings such as iaas_get_fabric_network_vsphere_ip_ranges, iaas_get_external_network_ip_ranges, or iaas_get_internal_network_ip_ranges.

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 this tool over the several other network-IP-range endpoints in the sibling list, nor any stated prerequisites (e.g. the fabric network must exist or be of a supported provider type). The only implied usage is the 'with a given id' scope, which the required parameter already conveys.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_fabric_networksC
Read-onlyIdempotent

Get fabric networks Get all fabric networks. GET /iaas/api/fabric-networks

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
countNoFlag which when specified, regardless of the assigned value, shows the total number of records. If the collection has a filter it shows the number of records matching the filter.
filterNoFilter the results by a specified predicate expression. Operators: eq, ne, and, or.
selectNoSelect a subset of properties to include in the response.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 fully covered. The description adds only the endpoint path, which duplicates the title and contributes no behavioral context such as pagination defaults 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?

It is short, but also redundant: 'Get fabric networks', 'Get all fabric networks', and the endpoint path all restate the same fact rather than front-loading useful constraints. Nothing is wasted in length, but nothing is earned either.

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 and six well-documented parameters, the description is just barely adequate: annotations carry safety, schema carries parameters, but the description gives no guidance on filtering or pagination behavior 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 coverage is 100% with all six parameters (top, skip, count, filter, select, apiVersion) documented in the schema. The description adds no 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?

States a specific verb and resource ('Get all fabric networks') so the agent knows this is a list operation on fabric networks, distinguishable from the singular iaas_get_fabric_network. It does not, however, differentiate itself from related siblings like iaas_get_vsphere_fabric_networks or iaas_get_networks.

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 named alternative. The agent must infer from the name alone that this lists all fabric networks rather than a filtered subset.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_fabric_network_vsphere_ip_rangesC
Read-onlyIdempotent

Get associated fabric network IP ranges for a fabric vSphere network Get associated fabric network IP ranges for a fabric vSphere network with a given id GET /iaas/api/fabric-networks-vsphere/{id}/network-ip-ranges

NameRequiredDescriptionDefault
idYesThe ID of the fabric vSphere network. (path)
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.8/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 by structured data. The description adds no behavioral context beyond restating the operation and pasting the REST path — nothing about pagination semantics (top/skip) or what a non-existent network id yields.

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 two sentences are verbatim duplicates, and the raw GET path is a third restatement of the same fact. Roughly two-thirds of the text is redundant rather than value-adding.

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 endpoint with a fully documented schema and no output schema, the description is minimally adequate but says nothing about the returned collection of IP ranges or its pagination, which is the main thing an agent would need to know beyond the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with four documented parameters, so the schema carries the parameter burden and the baseline is 3. The description only repeats that an id is required and adds no paging or versioning 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?

The description names a specific verb (get) and a specific resource (IP ranges associated with a fabric vSphere network, by id), which distinguishes it from the generic iaas_get_fabric_network_ip_ranges and from unrelated siblings. However, it never explicitly contrasts itself with those near-duplicate siblings, leaving the agent to infer the vSphere-specific scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives such as iaas_get_fabric_network_ip_ranges, iaas_get_vsphere_fabric_networks, or iaas_get_network_ip_ranges_result. Usage is only implied by the resource name and the required id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_fabric_vsphere_datastoreC
Read-onlyIdempotent

Get fabric vSphere datastore Get fabric vSphere datastore with a given id GET /iaas/api/fabric-vsphere-datastores/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Fabric vSphere Datastore. (path)
selectNoSelect a subset of properties to include in the response.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, destructiveHint=false and openWorldHint, so safety is covered. The description adds nothing beyond restating the endpoint — no mention of permission requirements, error behavior for missing ids, or whether the record is scoped (e.g., by org/project).

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 lines are redundant: the first and second sentences say the same thing, and the third is a raw path that adds little. Some tightening would help.

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 read tool with no output schema and a rich sibling ecosystem, the description should indicate what a datastore record contains or how it differs from the list endpoint. As written it is a bare minimum restatement, leaving the agent to infer the return shape 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 coverage is 100%, so all three parameters (id, select, apiVersion) are already documented. The description's 'with a given id' maps to the id param but adds no syntax or formatting guidance; 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.

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 ('Get fabric vSphere datastore') and 'with a given id' hints at single-resource retrieval, which does separate it from the list sibling iaas_get_fabric_vsphere_datastores. However, the second sentence is essentially a restatement of the first plus the raw HTTP path, not a substantive explanation of what is retrieved.

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 vs the list variant iaas_get_fabric_vsphere_datastores, no prerequisites, and no exclusions. The 'given id' phrasing is the only implicit selection hint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_fabric_vsphere_datastoresC
Read-onlyIdempotent

Get fabric vSphere datastores Get all fabric vSphere datastores. GET /iaas/api/fabric-vsphere-datastores

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
countNoFlag which when specified, regardless of the assigned value, shows the total number of records. If the collection has a filter it shows the number of records matching the filter.
filterNoFilter the results by a specified predicate expression. Operators: eq, ne, and, or.
selectNoSelect a subset of properties to include in the response.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, openWorld, and non-destructive, so the safety profile is covered. The description adds nothing further—no note on pagination behavior, result volume, or what the endpoint returns—beyond restating the GET path, which also appears in the annotation title.

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 two of the three lines say essentially the same thing ('Get fabric vSphere datastores' / 'Get all fabric vSphere datastores') and the third is the raw endpoint path. There is redundancy rather than front-loaded added value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list endpoint with full schema coverage and annotations carrying the safety profile, the minimal description is technically sufficient to call the tool. However, it gives no context on the vSphere fabric domain or how these datastores relate to storage profiles and datastore-facing siblings, leaving the agent to infer scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so top, skip, count, filter, select, and apiVersion are already fully documented in the schema. The description adds no syntax hints or defaults beyond that, which is the expected baseline when 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 states a specific verb and resource ('Get all fabric vSphere datastores'), making the collection being returned unambiguous. The plural 'datastores' implicitly distinguishes it from the sibling iaas_get_fabric_vsphere_datastore (singular), but no explicit differentiation is given.

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 the singular sibling iaas_get_fabric_vsphere_datastore or the many other get-list endpoints, and no prerequisites or exclusions are mentioned. The agent must infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_fabric_vsphere_storage_policiesC
Read-onlyIdempotent

Get fabric vSphere storage polices Get all fabric vSphere storage polices. GET /iaas/api/fabric-vsphere-storage-policies

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
countNoFlag which when specified, regardless of the assigned value, shows the total number of records. If the collection has a filter it shows the number of records matching the filter.
filterNoFilter the results by a specified predicate expression. Operators: eq, ne, and, or.
selectNoSelect a subset of properties to include in the response.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.6/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 nothing beyond the raw endpoint path: no pagination defaults, no filtering behavior, no note on result size, which is the kind of context a list endpoint would benefit from.

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 first two lines are near-duplicates and the third is just the HTTP path, so almost no sentence carries new information. It is concise without being informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only collection endpoint with full annotations and complete schema coverage, the minimum needed to call it is present. However, with no output schema and no statement of what a fabric storage policy record contains or how results are paged, an agent still has to discover the response shape empirically.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 six parameters, so top, skip, count, filter, select and apiVersion are already documented. The description adds no syntax or interaction guidance (e.g. filter operator semantics or how top/skip combine), 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?

States a verb and resource (get all fabric vSphere storage policies), which is enough to identify it, but the three lines largely restate the tool name and title. It never explicitly contrasts itself with the singular sibling iaas_get_fabric_vsphere_storage_policy, so the only disambiguator is the word '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?

There is no indication of when to use this versus iaas_get_fabric_vsphere_storage_policy or iaas_get_vsphere_storage_profiles. No prerequisites, no exclusions, no alternative named — usage must be inferred 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.

iaas_get_fabric_vsphere_storage_policyC
Read-onlyIdempotent

Get fabric vSphere storage policy Get fabric vSphere storage policy with a given id GET /iaas/api/fabric-vsphere-storage-policies/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Fabric vSphere Storage Policy. (path)
selectNoSelect a subset of properties to include in the response.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 by structured data. The description adds nothing beyond restating the operation and pasting the HTTP path — no information about error behavior when the ID doesn't exist, or what the returned policy 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?

The description is short, but the first two lines are near-verbatim duplicates ("Get fabric vSphere storage policy" repeated), and the raw HTTP path adds little for an agent. Front-loaded but with wasted repetition.

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-by-ID tool whose annotations cover safety, the essentials are present. However, with no output schema, a phrase describing what a fabric vSphere storage policy record contains (or that it returns 404 for unknown IDs) would have closed the 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%, so all three parameters (id, select, apiVersion) are documented in the schema itself. The description only mentions "a given id" and adds no meaning about the select projection or API versioning semantics, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ("Get fabric vSphere storage policy") and adds "with a given id", which distinguishes this single-item fetch from the plural list sibling iaas_get_fabric_vsphere_storage_policies. The purpose is unambiguous, though the sibling routing is only implied by the singular form rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as iaas_get_fabric_vsphere_storage_policies, nor on prerequisites like needing a valid fabric policy ID from a prior list call. Usage must be inferred 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.

iaas_get_flavor_profileC
Read-onlyIdempotent

Get flavor profile Get flavor profile with a given id GET /iaas/api/flavor-profiles/{id}

NameRequiredDescriptionDefault
idYesThe ID of the flavor. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
includeCoresNoIf set to true will include cores in response.

TDQS

C2.6/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 externally. The description adds only the endpoint path, with no note on behavior such as error handling for a missing ID or what the 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short and front-loaded, but the opening line 'Get flavor profile' duplicates the title and the second line repeats the resource again before adding the only new information, the ID requirement and route.

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-record fetch with a fully documented 3-parameter schema and complete annotations, the description is adequate. It is not misleading, but it leaves an agent to infer from the route alone that this returns one flavor profile rather than a list.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so id, apiVersion, and includeCores are all documented in the schema itself. The description adds no meaning beyond that, which meets the baseline 3 for a fully documented schema.

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 specific verb and resource ('Get flavor profile with a given id') and the HTTP route confirms it is a single-resource fetch, implicitly distinguishing it from the plural iaas_get_flavor_profiles. However, the first line merely restates the tool name and 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 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 iaas_get_flavor_profiles, iaas_get_flavors, iaas_get_fabric_flavors, or the update/delete variants. The 'given id' phrasing hints at single-record retrieval but nothing states conditions or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_flavor_profilesC
Read-onlyIdempotent

Get flavor profile Get all flavor profile GET /iaas/api/flavor-profiles

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
includeCoresNoIf set to true will include cores in response.

TDQS

C2.6/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 structurally. The description adds nothing beyond that baseline: no indication of pagination, result volume, ordering, or what a flavor profile contains, so it contributes no behavioral context of its own.

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?

Only three short lines, so it is not bloated, but the first two lines are near-duplicates ("Get flavor profile" / "Get all flavor profile") and the third is a raw endpoint path. The signal-to-word ratio is poor even at this length — the redundancy should have been spent on distinguishing siblings.

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 2-parameter, zero-required, read-only list operation with full schema coverage and annotations, this minimal text is technically enough to invoke the tool. It is not enough to choose it confidently among the many similarly named iaas_get_* flavor tools, and there is no output schema to 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% for both parameters (apiVersion and includeCores), so the schema already carries the semantics. The description adds nothing about includeCores' effect on the response, but that gap is not costly given full coverage — 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 restates the tool name plus the HTTP endpoint ("Get all flavor profile", "GET /iaas/api/flavor-profiles"), which does convey a read/list operation on flavor profiles. However it is largely tautological and gives no differentiation from the nearby siblings iaas_get_flavor_profile (singular) or iaas_get_flavors, so an agent cannot tell from the text which one 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 guidance on when to use this tool versus iaas_get_flavor_profile, iaas_get_flavors, or iaas_get_fabric_flavors. No preconditions, no mention of whether a listing requires a project/region context, and no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_flavorsC
Read-onlyIdempotent

Get flavors Get all flavors defined in FlavorProfile GET /iaas/api/flavors

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
includeCoresNoIf set to true will include cores in response.

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so safety is covered. The description adds only the scope hint that flavors come from FlavorProfile; it discloses nothing about pagination, result size, or whether the list is filtered by project or region — a real gap for an openWorld read that could return many entries.

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 lines with the purpose front-loaded. The trailing 'GET /iaas/api/flavors' largely duplicates the annotation title, but the waste is minor.

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?

Both parameters are documented in-schema and the read-only profile is carried by annotations, so the tool is callable as described. Since there is no output schema, the description could have said what a flavor record contains, and it never resolves the ambiguity with flavor-profile and fabric-flavor 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 apiVersion and includeCores are already documented in the schema. The description adds no interpretation of includeCores' effect on the payload, 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?

It states a specific verb and resource ('Get all flavors defined in FlavorProfile'), which is better than restating the name. But the sibling set contains iaas_get_fabric_flavors, iaas_get_flavor_profiles, and iaas_get_flavor_profile, and nothing distinguishes this tool's flavors from fabric or profile flavors, so an agent must guess which one it needs.

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 iaas_get_fabric_flavors or iaas_get_flavor_profiles. Usage is only implied by the resource name, and 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.

iaas_get_foldersB
Read-onlyIdempotent

Get folders Get all folders within the current organization GET /iaas/api/folders

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
countNoFlag which when specified, regardless of the assigned value, shows the total number of records. If the collection has a filter it shows the number of records matching the filter.
filterNoFilter the results by a specified predicate expression. Operators: eq, ne, and, or.
selectNoSelect a subset of properties to include in the response.
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
cloudAccountIdNoThe ID of a vcenter cloud account.
externalRegionIdNoThe external unique identifier of the region associated with the vcenter cloud account.

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, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds only the organizational scoping ("current organization") and the underlying route; it says nothing about pagination behavior, page size defaults, or result volume for what is clearly a collection 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 very short lines with the resource scope front-loaded and no filler. The first line ("Get folders") is redundant with the second and the raw REST route adds little for an agent, but overall it is lean.

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 collection endpoint with no output schema, an agent still lacks return-shape expectations, default page size, and whether the cloud-account/region filters are optional refinements. Annotations cover safety, so the description is workable but leaves real gaps 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 `top`, `skip`, `count`, `filter`, `select`, `apiVersion`, `cloudAccountId` and `externalRegionId` are all documented in the schema. The description adds nothing about them — notably it never hints that results can be narrowed by cloud account or external region, but baseline 3 is appropriate when the schema carries the full 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?

States a specific verb and resource ("Get all folders") plus a scope ("within the current organization"), which is more than a restatement of the name. No sibling tool in the list covers folders, so the resource alone distinguishes it, but the description does no explicit routing.

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, nor any prerequisite or exclusion. The tricky question for this endpoint — folders belonging to which cloud account/region, and whether the vCenter-scoped filters should be used — is left entirely implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_gcp_cloud_accountC
Read-onlyIdempotent

Get an GCP cloud account Get an GCP cloud account with a given id GET /iaas/api/cloud-accounts-gcp/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Cloud Account (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, idempotentHint, openWorldHint, and destructiveHint, and the description adds essentially no behavioral context beyond those annotations. It does not mention authentication needs, error behavior, or anything about the returned resource, though it also does not contradict 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?

The description is short and front-loaded with the core action, but the first two sentences are largely redundant: 'Get a GCP cloud account' and 'Get a GCP cloud account with a given id' communicate nearly the same thing.

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 retrieval, the description plus the fully documented schema and rich annotations are enough to call the tool correctly. However, with no output schema, the description could have clarified the return shape or error behavior and 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%, so the schema already documents both the required id path parameter and the optional apiVersion parameter. The description adds no meaning 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 states a specific verb and resource: retrieve a GCP cloud account by id. The phrase 'with a given id' implicitly distinguishes it from the plural listing sibling, but it does not name or explicitly compare against iaas_get_gcp_cloud_accounts or other cloud-account retrieval 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 implies use when an id is known, but it gives no explicit guidance on when to use this single-retrieval tool instead of the plural list tool or other cloud-account getters. No prerequisites, alternatives, or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_gcp_cloud_accountsB
Read-onlyIdempotent

Get GCP cloud accounts Get all GCP cloud accounts within the current organization GET /iaas/api/cloud-accounts-gcp

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, so the safety profile is fully covered. The description adds the useful org-scoping constraint via 'within the current organization', but says nothing about pagination limits, default page size, or response ordering.

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 lines, front-loaded with the resource and scope, and the raw endpoint path is useful routing context. Minor redundancy between the first two lines ('Get GCP cloud accounts' vs 'Get all GCP cloud accounts'), but nothing 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 read-only list endpoint with a fully documented 3-parameter schema and rich annotations, the description supplies the resource, scope, and endpoint. Only pagination defaults are left unspecified, which is a small gap given 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 description coverage is 100%, with top, skip, and apiVersion all documented in the schema itself. The description mentions no parameters at all, so baseline 3 applies — meaning is fully carried by 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 gives a specific verb (get) and resource (GCP cloud accounts) and adds scope: 'all GCP cloud accounts within the current organization'. That is enough to separate it from iaas_get_cloud_accounts (all providers) and iaas_get_gcp_cloud_account (singular), 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?

It says what the call returns but never when to choose it over iaas_get_cloud_accounts or iaas_get_gcp_cloud_account, and gives no guidance on pagination or filtering. The only constraint offered is organizational scope, which is a boundary, not usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_gcp_storage_profileC
Read-onlyIdempotent

Get GCP storage class Get GCP storage class with a given id GET /iaas/api/storage-profiles-gcp/{id}

NameRequiredDescriptionDefault
idYesThe ID of storage profile. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 fully covered. The description adds nothing beyond restating the operation and echoing the raw endpoint path already present in the annotation title, leaving return shape and not-found behavior undisclosed.

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?

Three short lines, but the first two are near-duplicates ('Get GCP storage class' / 'Get GCP storage class with a given id') and the third merely restates the HTTP route. Minimal waste in absolute terms, yet the content is repetitive rather than informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-by-id tool with full annotation coverage and no output schema, the basics are covered. Still, an agent gets no hint of what a GCP storage profile contains or what a failed lookup looks like, which the description could cheaply supply.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 (id and apiVersion), so the schema does the heavy lifting and baseline is 3. The phrase 'with a given id' only weakly reinforces the required parameter and adds no format or sourcing detail.

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 GCP storage class with a given id'), which is enough to tell this is a single-item fetch. It does not distinguish itself from the sibling list tool iaas_get_gcp_storage_profiles or from the AWS/Azure equivalents, and the 'storage class' vs 'storage profile' mismatch with the tool name adds mild ambiguity.

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 iaas_get_gcp_storage_profiles or iaas_get_storage_profile, and no mention of prerequisites such as needing an id obtained from the list endpoint. Usage must be inferred 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.

iaas_get_gcp_storage_profilesC
Read-onlyIdempotent

Get GCP storage classes Get all GCP storage classes GET /iaas/api/storage-profiles-gcp

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 elsewhere. The description adds essentially nothing beyond restating the GET endpoint: no note on scoping (e.g. per cloud account), pagination, or result size – the bare "Get all" is the only extra hint.

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 first line ("Get GCP storage classes") and second line ("Get all GCP storage classes") are near-duplicates, so one of the three lines is wasted.

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 read-only list endpoint with no output schema, the description should at least tell the agent what a returned storage profile represents and whether the list is tenant-wide or cloud-account scoped. Instead it is a raw endpoint stub, leaving the agent to infer both the return shape and the scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one optional parameter (apiVersion) exists and the schema documents it at 100% coverage, so the baseline of 3 applies. The description adds no additional meaning about the parameter or its defaults.

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 is identifiable as a list of GCP storage profiles, but the description calls them "storage classes" while the name, path, and sibling tools all use "storage profile" – an inconsistent term. It also makes no attempt to separate itself from the very close siblings iaas_get_gcp_storage_profile (singular), iaas_get_storage_profiles, or iaas_get_aws_storage_profiles.

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 the singular get or the multi-cloud iaas_get_storage_profiles. The only usage signal is the implied "get all", which is not framed as guidance or an exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_image_profileC
Read-onlyIdempotent

Get image profile Get image profile with a given id GET /iaas/api/image-profiles/{id}

NameRequiredDescriptionDefault
idYesThe ID of the image. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 elsewhere. The description adds nothing beyond restating the REST path — no note about 404 behavior for unknown IDs, permission requirements, or what an image profile 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, but the first two lines are near-duplicates of each other and of the title, and the OpenAPI path is repeated verbatim from the annotation title. It is front-loaded but partly wasteful rather than dense with 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 simple read-by-id call with rich annotations and a fully documented schema, little is required, but the description still omits what a returned image profile represents and how it relates to images/image profiles listing. An agent can invoke it, but understands almost nothing about the resource.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 (`id` and `apiVersion`) are documented in the schema. The description adds no meaning beyond that, 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?

States a clear verb+resource ("Get image profile") and the qualifier "with a given id" hints at single-resource retrieval versus the sibling iaas_get_image_profiles. However, it never explains what an image profile actually is or explicitly contrasts itself with the list sibling, so the second and third lines merely restate the first.

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 (e.g., needing a valid image profile ID obtained from iaas_get_image_profiles), and no named alternative. The only implicit cue is the required `id`, which is already in the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_image_profilesC
Read-onlyIdempotent

Get image profile Get all image profiles GET /iaas/api/image-profiles

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, and destructiveHint=false, setting a low bar. The description adds nothing beyond restating the endpoint path—no pagination behavior, no filter semantics, no return shape, which is a meaningful gap for a list endpoint in an open-world API.

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 wastes space on three redundant restatements of the same thing ('Get image profile', 'Get all image profiles', the endpoint). Efficient in volume but low information density.

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 single-parameter read-only list tool with annotations covering safety and no output schema, the essentials are present. However, it omits pagination/return behavior and the differentiation from the singular sibling, leaving gaps an agent must guess.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the single apiVersion parameter is fully documented in the schema itself. The description adds no extra semantic detail beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb+resource ('Get all image profiles') and the plural form implicitly distinguishes it from the singular sibling iaas_get_image_profile, plus the raw endpoint disambiguates. The initial line 'Get image profile' is slightly confusing/redundant against the plural form, but the intent (list all image profiles) is decipherable.

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 list tool versus the singular iaas_get_image_profile, create/update/delete siblings, or iaas_get_images. No prerequisites, exclusions, or alternative-naming is provided; the agent must infer the use case from the endpoint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_imagesA
Read-onlyIdempotent

Get images Get all images defined in ImageProfile. To get all enumerated images use Fabric Image endpoint. GET /iaas/api/images

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

A3.5/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 open-world, so safety is covered. The description usefully clarifies that results are limited to ImageProfile-defined images, but adds nothing about pagination, result size, or filtering behavior for a list endpoint that could return many records.

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 core purpose and immediately followed by the disambiguation. The trailing raw path 'GET /iaas/api/images' duplicates the annotation title and earns little.

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 a single optional parameter and no output schema, the definition covers what the agent needs: what is returned conceptually and which alternative to use. Only pagination/response-shape behavior is unstated, which is a minor gap given 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?

Only one optional parameter (apiVersion) and schema description coverage is 100%, so the schema already fully documents it. The description adds no semantics about version selection or defaults, which is the baseline expectation when 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?

States a specific verb and resource ('Get all images defined in ImageProfile') and scopes the result set to ImageProfile-defined images rather than all images. It differentiates from the Fabric Image endpoint, though it names that endpoint descriptively rather than by sibling tool name (iaas_get_fabric_images). The leading 'Get images' line is a mild 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides one explicit routing rule: use the Fabric Image endpoint for enumerated images. It says nothing about when to prefer this over iaas_get_image_profiles or iaas_get_image_profile, which are the closest siblings and the likeliest confusion point.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_integrationC
Read-onlyIdempotent

Get an integration Get an integration with a given id GET /iaas/api/integrations/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Integration (path)
selectNoSelect a subset of properties to include in the response.
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.4/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 behavioral beyond re-quoting the HTTP verb and path — no error behavior, no note on what an integration represents, no indication of response shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loaded, but two of three lines are redundant restatements of the tool name and the REST path. The endpoint line is the only piece of genuinely distinct information, and it isn't something an agent can act on.

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 GET with full annotation coverage and a fully documented schema, this is minimally adequate. It remains silent on what an integration is in this platform and on the sibling list/update tools, which are the realistic confusion points.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 `id`, `select` and `apiVersion` all documented in the schema, so the baseline is 3. The description only echoes "with a given id" and adds no meaning about `select` or the date-formatted `apiVersion`.

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 a restatement of the tool name ("Get an integration" twice) plus the raw REST path. It states the resource is fetched by id, but offers no differentiation from the sibling list tool `iaas_get_integrations`, which is the main ambiguity an agent faces 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 guidance on when to use this single-item getter versus `iaas_get_integrations` or `iaas_update_integration_async`. No prerequisites, no mention of required permissions or that an unknown id yields an error.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_integrationsC
Read-onlyIdempotent

Get integrations Get all integrations within the current organization GET /iaas/api/integrations

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
countNoFlag which when specified, regardless of the assigned value, shows the total number of records. If the collection has a filter it shows the number of records matching the filter.
filterNoFilter the results by a specified predicate expression. Operators: eq, ne, and, or.
selectNoSelect a subset of properties to include in the response.
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.9/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 organizational scope constraint, but says nothing about pagination defaults, result ordering, or the shape of the returned collection.

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 merely restates the tool name and the third line is a raw REST path that mostly duplicates the annotation title. Only the middle sentence (org scope) earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With six parameters, no output schema, and a paginated collection endpoint, the description should at least characterize what comes back (a list of integration records with paging metadata). It leaves that entirely to inference, which is a meaningful gap for an agent deciding how to consume 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 top, skip, count, filter, select and apiVersion are all documented in the schema itself. The description contributes no additional parameter meaning such as default page size or filter expression examples, which is the expected baseline when 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 states a specific verb and resource ("Get all integrations") and narrows the scope to "within the current organization." The plural "all integrations" implicitly distinguishes it from the singular sibling iaas_get_integration, but that differentiation is left to inference rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this list endpoint versus iaas_get_integration for a single record, nor any mention of prerequisites or when to filter instead of paging through everything. The only context is the implicit org scoping sentence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_internal_network_ip_rangeB
Read-onlyIdempotent

Get internal IPAM network IP range Get internal IPAM network IP range with a given id GET /iaas/api/network-ip-ranges/{id}

NameRequiredDescriptionDefault
idYesThe ID of the network IP range. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

B3.1/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. The description adds only the raw HTTP path, saying nothing about error behavior when the id is unknown, permission requirements, or the shape of what comes back.

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 two lines are near-duplicates ('Get internal IPAM network IP range' / 'Get internal IPAM network IP range with a given id'), and the third merely repeats the HTTP method and path already surfaced in the title and annotations. Short, but with visible redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-by-id with full schema coverage and explicit annotations, the description is adequate to the call. It nonetheless leaves out failure modes and any pointer to the list endpoint, so it is minimum viable rather than 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%, including the apiVersion description, so the schema carries all parameter meaning. The description only restates that an id is required, with no added format or sourcing 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?

States a specific verb and resource ('Get internal IPAM network IP range') and the second line clarifies it returns the single range for a given id, which implicitly distinguishes it from iaas_get_internal_network_ip_ranges. No explicit sibling naming, but the resource 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?

'with a given id' implies the single-item retrieval case, so usage is reasonably implied. There is no explicit when-to-use/when-not statement or reference to the plural list tool as an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_internal_network_ip_rangesC
Read-onlyIdempotent

Get internal IPAM network IP ranges Get all internal IPAM network IP ranges GET /iaas/api/network-ip-ranges

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.8/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. The description adds only the raw endpoint path, which is already present in the annotation title, and says nothing about pagination, result size, or whether the response is filtered by project/scope.

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?

Three lines where two are near-identical restatements ('Get internal IPAM network IP ranges' / 'Get all internal IPAM network IP ranges') and the third is a bare HTTP path duplicating the title. The redundancy wastes the limited description budget rather than front-loading useful scope 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, single-parameter list tool with rich annotations and 100% schema coverage, the definition is minimally sufficient to call correctly. It is incomplete in that it never clarifies the collection's scope (unfiltered? tenant-wide?) or its sibling relationship, both relevant given the many similarly named IP-range 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% and there is a single optional apiVersion parameter already documented in-schema. The description contributes nothing about the version header, so the baseline 3 for full schema coverage 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 ('Get all internal IPAM network IP ranges'), so the agent knows this is a list operation over internal IPAM ranges. However, it never distinguishes itself from close siblings such as iaas_get_internal_network_ip_range (singular, by ID) or iaas_get_fabric_network_ip_ranges, leaving the plural/singular routing purely to 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?

There is no guidance on when to call this versus the singular get, the external network IP ranges variant, or the fabric network IP ranges tools. The plural implies a collection endpoint, but that inference is left entirely to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_load_balancerC
Read-onlyIdempotent

Get load balancer Get load balancer with a given id GET /iaas/api/load-balancers/{id}

NameRequiredDescriptionDefault
idYesThe ID of the load balancer. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, destructiveHint=false and openWorldHint, so the safety profile is fully covered by structured data. The description adds nothing extra: no note on what happens if the id does not exist, no error behavior, no pagination or scoping context. It only repeats the verb already in the name.

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 not efficient: the first two sentences say the same thing ('Get load balancer' / 'Get load balancer with a given id') and the third sentence duplicates the endpoint already carried in the annotation title. Front-loading is fine, but the content is redundant rather than informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple read tool whose safety semantics are fully in annotations and whose parameters are fully in the schema, so little is required. Still, the description offers no distinguishing context from the many sibling load balancer tools (create, delete, scale, network interface, list), leaving selection ambiguous for a complex tool surface.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 id and apiVersion documented in the schema, so the baseline is 3. The description's phrase 'with a given id' merely confirms the required path parameter and adds no format, source, or discovery guidance (e.g. where to obtain a load balancer id).

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 says 'Get load balancer with a given id', which identifies a retrieve-single-resource operation, but it is essentially a restatement of the tool name plus the HTTP route. It never explicitly distinguishes itself from the sibling iaas_get_load_balancers or from iaas_get_load_balancer_network_interface; an agent must infer the plural/singular split from the names 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 guidance on when to use this versus iaas_get_load_balancers (list) or iaas_get_load_balancer_network_interface. The only hint, 'with a given id', is already implied by the required id parameter in the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_load_balancer_network_interfaceC
Read-onlyIdempotent

Get load balancer network interface Get network interface with a given id for specific load balancer GET /iaas/api/load-balancers/{id}/network-interfaces/{id1}

NameRequiredDescriptionDefault
idYesThe ID of the load balancer. (path)
id1YesThe ID of the network interface. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 elsewhere. The description adds only the raw HTTP path, which merely restates 'GET', and says nothing about not-found behavior, whether the interface must belong to the given load balancer, 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?

Two short sentences with the resource and scope front-loaded; no filler. The trailing raw route ('GET /iaas/api/load-balancers/{id}/network-interfaces/{id1}') is redundant with the annotations' title and the schema paths, slightly diluting an otherwise tight definition.

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-object fetch with a fully described 3-parameter schema and complete annotations, the description is adequate but minimal. It omits any error/not-found semantics and does not distinguish the nested-vs-top-level interface lookup, leaving the agent to infer everything from structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both path IDs (and apiVersion) are already documented, establishing a baseline of 3. The description hints that one id scopes to a load balancer and the other to the interface, but does not disambiguate the confusingly similar 'id' vs 'id1' fields 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?

States a specific verb and resource: 'Get network interface' scoped 'for specific load balancer', which cleanly separates it from siblings such as iaas_get_machine_network_interface and iaas_get_load_balancer. It does not explicitly name an alternative, but the resource 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 when-to-use / when-not-to-use guidance and names no alternative (e.g., fetching the parent load balancer via iaas_get_load_balancer to enumerate its interfaces). The only implied usage comes from the single-object GET semantics, not from the text.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_load_balancersC
Read-onlyIdempotent

Get load balancers Get all load balancers GET /iaas/api/load-balancers

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.6/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 nothing beyond that — no pagination behavior, no return shape, no note about the apiVersion parameter's effect.

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 two of the three lines restate the same fact and the third is an endpoint literal, so the text is redundant rather than dense with 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 unauthenticated-looking read of a collection with a fully documented single parameter and complete annotations, little prose is strictly required. Still, nothing is said about result volume, pagination, or when the endpoint returns an empty list, leaving the agent to infer behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single apiVersion parameter is fully documented in the schema. The description contributes no additional 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 resource and that it returns 'all' load balancers, which implies a list operation, but it does not distinguish this from siblings such as iaas_get_load_balancer (single) or iaas_scale_load_balancer. The second line simply repeats the first, and the third is a raw REST path rather than added 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?

There is no explicit when-to-use guidance, no mention of prerequisites, and no routing to alternatives like iaas_get_load_balancer for a single record. Usage is only inferable from the word 'all'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_machineC
Read-onlyIdempotent

Get machine Get machine with a given id GET /iaas/api/machines/{id}

NameRequiredDescriptionDefault
idYesThe ID of the machine. (path)
selectNoSelect a subset of properties to include in the response.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.6/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 fully covered. The description adds nothing beyond that – no behavior on unknown ids (error vs empty), no note about the openWorldHint exposure, no mention of what the 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first line ('Get machine') is pure redundancy with the second and with the tool name. The one useful piece, the id-based scoping and endpoint path, is buried behind a duplicate.

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 get with a fully documented schema and complete annotations, the essentials are present. With no output schema, however, the description gives no hint about the returned machine object, so an agent knows how to call it but not what to 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 the schema already documents id (path), select, and apiVersion. The description mentions 'given id' but adds no format, defaults, or guidance on the optional select/apiVersion parameters, 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 retrieval verb and resource plus the HTTP path, but 'Get machine with a given id' largely restates the tool name. It never distinguishes this single-machine lookup from the sibling list tool iaas_get_machines or from related getters such as iaas_get_machine_disks.

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 iaas_get_machines (list) or the machine sub-resource getters. The agent is left to 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.

iaas_get_machine_diskB
Read-onlyIdempotent

Get machine disk Get disk with a given id for specific machine GET /iaas/api/machines/{id}/disks/{diskId}

NameRequiredDescriptionDefault
idYesThe ID of the machine. (path)
diskIdYesThe ID of the disk. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 fully covered without the description. The description adds nothing behavioral beyond the route itself – no note on auth requirements, error semantics for an unknown diskId, or what happens with a mismatched machine/disk pairing.

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 lines, front-loaded with the operation and followed by the route, with zero filler. The only minor waste is that "Get machine disk" and "Get disk with a given id for specific machine" restate the same fact, but the size is appropriate for a simple read tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-id read operation with a fully documented schema and rich annotations, the essentials are present. The gaps are that it does not distinguish itself from the plural list sibling, does not indicate the shape of the returned disk object (no output schema exists), and gives no failure mode guidance for an invalid or mismatched diskId.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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%: id, diskId and apiVersion are all documented in the schema, including the yyyy-MM-dd apiVersion format and the pointer to /iaas/api/about. The description mentions the machine-scoped disk relationship implicitly but adds no format, constraint, or hint 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?

States a specific verb and resource (get a disk by id belonging to a specific machine) and reinforces it with the exact REST path with both path parameters. It is clear what the tool retrieves, but it never names the sibling iaas_get_machine_disks (the list variant) or iaas_get_block_device, so the agent must infer the distinction from the plural 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?

"Get disk with a given id for specific machine" implies the precondition that you must already hold both a machine id and a disk id, which is useful context. However there is no explicit when-to-use framing, no mention of when to prefer iaas_get_machine_disks for enumeration, and no stated behavior when the disk id does not belong to the given machine.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_machine_disksC
Read-onlyIdempotent

Get machine disks Get all machine disks GET /iaas/api/machines/{id}/disks

NameRequiredDescriptionDefault
idYesThe ID of the machine. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 open-world, so the safety profile is covered. The description adds only a REST path, which duplicates the annotation title, and says nothing about pagination, ordering, or what a listed disk 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 first two lines restate the same thing and the third line restates the annotation title, so it is repetitive rather than dense with 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 list endpoint with full schema coverage and rich annotations, the description is minimally sufficient. A note on pagination behavior or the disk fields returned would close the remaining gap for an agent with no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both id (machine ID, path) and apiVersion documented in the schema. The path '/machines/{id}/disks' reinforces that id is the machine identifier, but adds no syntax or format 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 ('Get all machine disks') and even names the endpoint, so intent is clear. It stops short of differentiating from the sibling iaas_get_machine_disk (single disk), which an agent must infer.

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 iaas_get_machine_disk, iaas_get_machines, or the block-device tools. The agent must infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_machine_network_interfaceC
Read-onlyIdempotent

Get machine network interface Get network interface with a given id for specific machine GET /iaas/api/machines/{id}/network-interfaces/{networkId}

NameRequiredDescriptionDefault
idYesThe ID of the machine. (path)
networkIdYesThe ID of the network interface. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare the safety profile: readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true. The description adds no behavioral context beyond restating the endpoint, such as authorization requirements, error behavior, or what the returned interface data includes.

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 first line repeats the tool name and the second sentence largely repeats the endpoint path. It could be tightened without losing 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 lookup by two required IDs, the description is minimally sufficient and the annotations cover the safety profile. However, without an output schema, it does not explain what fields the returned network interface object contains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains id, networkId, and apiVersion. The description confirms that the interface is tied to a specific machine and network interface ID, but it adds no syntax or format details 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?

The description names a specific verb and resource: retrieve a network interface for a given machine. It is clear what the tool returns conceptually, but it does not differentiate this tool from the many sibling read/get tools beyond 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 Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as iaas_get_machine, iaas_get_network, or iaas_get_load_balancer_network_interface. It also omits prerequisites such as whether the machine and network interface must already exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_machinesC
Read-onlyIdempotent

Get machines Get all machines GET /iaas/api/machines

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
countNoFlag which when specified, regardless of the assigned value, shows the total number of records. If the collection has a filter it shows the number of records matching the filter.
filterNoFilter the results by a specified predicate expression. Operators: eq, ne, and, or.
selectNoSelect a subset of properties to include in the response.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
skipOperationLinksNoIf set to true will not return operation links.

TDQS

C2.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, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond an endpoint path — no pagination defaults, no note on how the count/filter flags change the response, and no disclosure of result size limits for what is clearly a large collection.

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?

Three lines say the same thing twice ('Get machines' and 'Get all machines') before a redundant path echo. It is short but the content is almost entirely repetition rather than front-loaded useful 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 a seven-parameter paginated collection endpoint with no output schema, so the description should at least say what a machine record represents and how results are paged by default. Neither is covered, leaving the agent dependent entirely on 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 all seven parameters (top, skip, count, filter, select, apiVersion, skipOperationLinks) are already documented in the schema. The description adds no syntax or semantic detail beyond that, which is the baseline case for full coverage.

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 'Get machines / Get all machines' restates the tool name and adds only a plural scope hint; it does not distinguish this list operation from siblings like iaas_get_machine, iaas_get_machine_disks, or iaas_get_machine_snapshot. Only the raw endpoint path gives any hint of the resource collection being retrieved.

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 list endpoint versus the singular iaas_get_machine or the many other listing tools, and no mention of prerequisites such as authentication or required API version. The agent must infer usage purely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_machine_snapshotA
Read-onlyIdempotent

Get machine snapshot Get snapshot with a given id for specific machine GET /iaas/api/machines/{id}/snapshots/{snapshotId}

NameRequiredDescriptionDefault
idYesThe ID of the machine. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
snapshotIdYesThe ID of the snapshot. (path)

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, and destructiveHint=false, so safety is covered. The description adds the REST path and the parent-child scoping (snapshot belongs to a machine), but says nothing about return shape or behavior when the snapshot does not 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?

Three short lines, front-loaded with the verb and resource. The endpoint line is useful context for engineers; the rest is minimal with no filler, though the first and second lines are slightly redundant.

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 getter with full schema coverage and annotations declaring the safety profile, the definition is complete enough to call correctly. Minor gap: no description of the returned snapshot object, but that is expected for a straightforward GET.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (id, snapshotId, apiVersion all documented), so the schema carries parameter meaning. The description only restates that id and snapshotId are required, adding 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?

States a specific verb (Get) and resource (machine snapshot), and clarifies retrieval by snapshot id scoped to a specific machine. This implicitly distinguishes it from the list sibling iaas_get_machine_snapshots, 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?

Usage is implied: retrieve a single snapshot when you have both a machine id and snapshot id. There is no explicit when-to-use/when-not guidance and no mention of siblings like iaas_get_machine_snapshots or iaas_delete_machine_snapshot.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_machine_snapshotsC
Read-onlyIdempotent

Get machine snapshots information GET /iaas/api/machines/{id}/snapshots

NameRequiredDescriptionDefault
idYesThe ID of the machine. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false. The description adds no behavioral context beyond the endpoint path, which duplicates the annotation title, and says nothing about return format, pagination, permissions, or scope. It does not contradict 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 short and front-loaded, with the main operation stated first and the endpoint second. The endpoint line is somewhat redundant with the annotation title, but the description remains efficient and easy to scan.

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 low-complexity GET tool with full schema coverage and clear safety annotations, the description identifies the resource adequately. However, with no output schema, it does not clarify the return shape, and it does not distinguish this plural snapshot listing from the singular snapshot sibling, leaving a modest completeness 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%, with the required id parameter documented as the machine ID path parameter and apiVersion documented separately. The description adds no additional parameter semantics beyond what the schema already provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Get machine snapshots information,' reinforced by the REST endpoint. It is understandable, but it does not explicitly distinguish this plural snapshots retrieval from sibling tools such as iaas_get_machine_snapshot or iaas_get_disk_snapshots.

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 alternatives, nor any exclusions or prerequisites. It only restates the operation and endpoint path, leaving the agent to infer its place among many snapshot-related siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_networkC
Read-onlyIdempotent

Get network Get network with a given id GET /iaas/api/networks/{id}

NameRequiredDescriptionDefault
idYesThe ID of the network. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 covered elsewhere. The description adds nothing beyond the raw endpoint path — no note on behavior when the id is unknown (404), pagination, or what a 'network' object represents in this API.

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 first line 'Get network' is pure redundancy with the name and the second line restates it again. Only the endpoint path carries 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 read-by-id tool with full schema coverage and complete annotations, the definition is adequate to invoke correctly, and no output schema means return values need not be explained. However, with one of the largest sibling sets in the catalog containing several near-identical network lookups, the absence of any disambiguation 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% with only two parameters, so the schema already documents 'id' (path) and 'apiVersion' fully. The description's phrase 'with a given id' corroborates but adds no format, sourcing, or versioning detail 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 ('Get network') plus the qualifying scope ('with a given id') and the underlying endpoint GET /iaas/api/networks/{id}, which tells an agent this is a single-resource read. It does not distinguish itself from close siblings such as iaas_get_networks (list) or iaas_get_fabric_network, 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?

There is no guidance on when to use this versus iaas_get_networks, iaas_get_fabric_network, or iaas_get_vsphere_fabric_network, and no prerequisites (e.g., needing an id from a prior list call) are mentioned. The 'with a given id' phrasing only weakly implies the lookup use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_network_domainC
Read-onlyIdempotent

Get network domain Get network domain with a given id GET /iaas/api/network-domains/{id}

NameRequiredDescriptionDefault
idYesThe ID of the network domain. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.8/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 on top: no 404/not-found behavior, no permission requirements, no indication of what a network domain object contains. It repeats the HTTP verb and path already implied by the name and annotations' 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?

Three lines that say the same thing twice ('Get network domain' / 'Get network domain with a given id') plus a raw HTTP path that duplicates the annotations title. Redundancy rather than waste-free front-loading.

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 full schema coverage and complete annotations, the definition is minimally viable. But with no output schema, the description should at least characterize what a network domain is or what comes back, 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%, so both the id (path) and apiVersion parameters are already documented. The description only restates 'with a given id' and contributes no extra meaning such as id format, whether it is a URN or UUID, or how apiVersion affects the response. 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: 'Get network domain with a given id', which is clearer than the bare tool name. However, it never distinguishes itself from the sibling iaas_get_network_domains (the list variant), leaving the singular/plural routing to be inferred 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?

No when-to-use guidance, no mention of the list sibling as an alternative, and no prerequisites (e.g. that an id must first be obtained from iaas_get_network_domains). The agent must infer all routing 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.

iaas_get_network_domainsC
Read-onlyIdempotent

Get network domains Get all network domains. GET /iaas/api/network-domains

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.6/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 safety bar is low, but the description adds nothing beyond repeating the HTTP path that already appears in the annotation title. It says nothing about pagination, result limits, default scoping, or whether an empty list is possible.

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 first two lines ("Get network domains" / "Get all network domains") are redundant restatements, and the HTTP verb/path line duplicates the annotation title. Minimal length, but with zero informational payoff per 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?

For a simple read-only listing endpoint with full schema coverage but no output schema, the description is adequate to call the tool but leaves the agent guessing about return shape, pagination, and how results relate to zones/network profiles. Just enough, not more.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single optional apiVersion parameter, so the schema carries the semantics and baseline 3 applies. The description adds no hint about versioning implications or whether apiVersion changes the response shape.

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 generic verb+resource ("Get all network domains"), and "all" weakly implies a listing versus the singular sibling iaas_get_network_domain. But it is close to restating the tool name and never names the singular sibling or explains the difference 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 when-to-use guidance and no alternatives are named, despite a near-identical sibling (iaas_get_network_domain) and many network-related siblings (iaas_get_networks, iaas_get_fabric_networks). The agent must infer that this is the list-everything variant.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_network_ip_ranges_resultC
Read-onlyIdempotent

Get associated network IP ranges for a network Get associated network IP ranges for a network with a given id GET /iaas/api/networks/{id}/network-ip-ranges

NameRequiredDescriptionDefault
idYesThe ID of the network. (path)
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, and non-destructive behavior, so the description would need to add something beyond that. It adds only the HTTP route, with no information about pagination semantics for top/skip, what the response contains, or how network IP ranges relate to allocated/released addresses.

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 two sentences are the same instruction repeated, and the third is a raw route. Nearly every line is redundant, and the content is not front-loaded with any distinguishing 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 paginated read with full schema coverage and complete annotations, nothing critical is missing. However, given the dense set of similar IP-range endpoints, the description is too thin to guarantee correct tool selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 id, top, skip, and apiVersion. The description contributes nothing about how the path id is obtained or how top/skip interact, 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 specific verb+resource ('Get associated network IP ranges for a network') but repeats it verbatim and only adds the REST path. It never distinguishes this tool from the many near-identical siblings such as iaas_get_internal_network_ip_ranges, iaas_get_external_network_ip_ranges, or iaas_get_fabric_network_ip_ranges, so an agent cannot tell from the text alone which one applies.

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 prerequisites, and no mention of pagination or ID sourcing. The agent must infer usage entirely from the name and schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_network_profileC
Read-onlyIdempotent

Get network profile Get network profile with a given id GET /iaas/api/network-profiles/{id}

NameRequiredDescriptionDefault
idYesThe ID of the network profile. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.6/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, so the safety profile is fully covered without the description. The description contributes nothing beyond that — it does not mention that the call requires a valid, pre-existing profile id or what happens on a missing id (404), which would be genuinely additive 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 the first two lines say the same thing and the third line is the raw endpoint path, which duplicates the annotation title exactly. There is no wasted length, but there is wasted 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, safe, idempotent single GET with full parameter documentation and rich annotations, this is minimally sufficient to invoke correctly. Still missing: what a network profile is and that no output schema exists to describe the returned object, leaving the agent to discover the response shape by calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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%: the schema documents 'id' as the network profile path id and 'apiVersion' with a format and reference URL. The description only echoes 'given id' and the URL template, adding no semantics 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.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the verb (get) and resource (network profile) and adds the scoping detail 'with a given id', which clarifies it is a single-resource retrieval. However, it never distinguishes itself from the sibling iaas_get_network_profiles (list) or iaas_get_network_profile-less alternatives, and the third line merely restates the HTTP path. The purpose is clear but not differentiated.

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 the plural list variant or any other get-by-id sibling, and no prerequisites or exclusions are given. The agent must infer from the tool name alone that 'id' must be known in advance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_network_profilesC
Read-onlyIdempotent

Get network profiles Get all network profiles GET /iaas/api/network-profiles

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
countNoFlag which when specified, regardless of the assigned value, shows the total number of records. If the collection has a filter it shows the number of records matching the filter.
filterNoFilter the results by a specified predicate expression. Operators: eq, ne, and, or.
selectNoSelect a subset of properties to include in the response.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.4/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 without the description. The description adds only the raw GET path — no pagination defaults, no response shape, no note on whether the full collection is returned or paged by `top`/`skip`.

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?

Three lines say the same thing twice ("Get network profiles" / "Get all network profiles") plus a raw endpoint. The repetition consumes the limited space without front-loading any additional value.

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 six-parameter paginated list endpoint with no output schema, an agent still needs to know what is returned, whether results are paged by default, and how this differs from the single-profile fetch. None of that 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% across all six parameters (top, skip, count, filter, select, apiVersion), so the schema carries parameter meaning. The description adds nothing beyond that, which lands at the baseline of 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 clear verb and resource ("Get all network profiles") and even the underlying endpoint, so the basic operation is unambiguous. However, it never distinguishes this collection read from the singular sibling `iaas_get_network_profile`, and the same fact is repeated three times rather than adding scope detail.

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 `iaas_get_network_profile`, `iaas_create_network_profile`, or `iaas_update_network_profile`, despite obvious siblings in the tool list. 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.

iaas_get_networksC
Read-onlyIdempotent

Get networks Get all networks GET /iaas/api/networks

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety profile is covered. The description adds nothing beyond restating the HTTP route — no pagination behavior, no filtering/tenant scoping semantics, nothing about what 'all' spans in a multi-tenant or multi-cloud inventory.

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?

Three lines say the same thing three times ("Get networks", "Get all networks", "GET /iaas/api/networks"). It is short but redundant rather than dense; the third line is pure restatement of the 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?

With no output schema and no annotations covering return shape, the description should explain what a 'network' record contains at a minimum and how listing behaves. Instead it is an OpenAPI route stub, leaving the agent unable to distinguish this inventory from the several other network-listing 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?

There is a single optional apiVersion parameter with 100% schema description coverage, so the schema already carries the burden. The description adds no meaning, but baseline 3 applies when the schema is complete.

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 and resource are clear ("Get all networks"), and the scope is list-all rather than by-ID. However, the sibling set contains iaas_get_network, iaas_get_fabric_networks, iaas_get_vsphere_fabric_networks and iaas_get_network_profiles, and the description gives no basis for telling these apart.

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 naming of the clearly competing siblings (fabric networks vs. networks). The agent must infer selection purely from tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_nsx_t_cloud_accountB
Read-onlyIdempotent

Get an NSX Manager cloud account Get an NSX Manager cloud account with a given id GET /iaas/api/cloud-accounts-nsx-t/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Cloud Account (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, and destructiveHint=false, so the safety profile is fully covered. The description adds only the REST path and adds nothing about not-found behavior or return content, so a baseline 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded and short, but the first two lines restate the same thing ('Get an NSX Manager cloud account' appears twice), which is redundant rather than value-adding.

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 GET with complete parameter docs and full read-only annotations, this is roughly adequate. It lacks any note on missing-id behavior or expected response, and there is no output schema to 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%, so both id and apiVersion are fully documented in the schema. The description adds no format details or examples beyond the schema, which is the expected 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 (Get) and resource (NSX Manager cloud account) scoped to a given id. The singular form distinguishes it from the plural sibling iaas_get_nsx_t_cloud_accounts, though it never names that 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 Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'with a given id' implies this is a fetch-by-identifier, but there is no explicit when-to-use guidance, no mention of when to use the list variant, and no prerequisites stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_nsx_t_cloud_accountsA
Read-onlyIdempotent

Get NSX Manager cloud accounts Get all NSX Manager cloud accounts within the current organization GET /iaas/api/cloud-accounts-nsx-t

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose read-only, idempotent, open-world, and non-destructive behavior, so the description does not need to repeat those traits. It adds the organization-level scope and the underlying endpoint, but does not describe pagination behavior, ordering, or response shape. This is adequate given the annotations but not especially rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded, stating the resource and scope before the endpoint. There is minor redundancy between the first line and the second line, both of which say 'Get NSX Manager cloud accounts.' Overall 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 simple read-only list tool with full schema coverage and safety annotations, the description provides enough context to invoke it correctly. It states the resource, organization scope, and endpoint. Additional pagination or return-format details would help, but are not essential 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%, with top, skip, and apiVersion all documented in the input schema. The description does not add any parameter-specific meaning beyond the schema, such as default page size or pagination behavior. Baseline 3 is appropriate when the schema carries all parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: getting NSX Manager cloud accounts. It also narrows scope to 'all ... within the current organization.' It does not explicitly distinguish this list operation from the singular iaas_get_nsx_t_cloud_account sibling, but the purpose is still unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is the listing operation for NSX Manager cloud accounts in the current organization. However, it does not say when to use this versus iaas_get_nsx_t_cloud_account, iaas_get_cloud_accounts, or the other cloud-account list tools. No exclusions or alternative-selection guidance are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_projectB
Read-onlyIdempotent

Get project Get project with a given id GET /iaas/api/projects/{id}

NameRequiredDescriptionDefault
idYesThe ID of the project. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 only endpoint repetition and gives no response, not-found, or authorization behavior, making it adequate but with clear gaps.

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?

It is very short and front-loads the operation. However, the first two lines repeat 'Get project' and the endpoint duplicates the annotation title, so there is slight redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-by-id tool with complete schema coverage and rich annotations, the description is sufficient to call it with an id. It still omits return/error context and any routing guidance among sibling project GET tools, so it is not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both id and apiVersion are documented in the schema. The description's 'given id' aligns with the required parameter but adds no format or versioning detail 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 ('Get') and resource ('project') and references the required id and endpoint, so the basic purpose is clear. It does not distinguish this tool from sibling project GET tools such as iaas_get_projects or project_get_project, preventing 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?

It only says 'with a given id'; there is no explicit when-to-use or when-not-to-use guidance. It also does not mention alternatives like iaas_get_projects for listing, so the agent must infer the routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_project_resource_metadataC
Read-onlyIdempotent

Get project resource metadata Get project resource metadata by a given project id GET /iaas/api/projects/{id}/resource-metadata

NameRequiredDescriptionDefault
idYesThe ID of the project. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 elsewhere. The description adds nothing on top of that — no indication of what "resource metadata" actually contains, whether the call can return partial/empty data, or any auth/rate-limit context. It essentially re-states the GET semantics the annotations already encode.

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 verb+resource, but sentence one and sentence two are near-duplicates, so roughly a third of the text is redundant. The raw REST path is the only sentence carrying 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?

There is no output schema, so the description carries the burden of explaining what a "resource metadata" payload is — and it says nothing about the return shape, whether it is project-level quota/tag metadata, or how it relates to the sibling project-metadata endpoints. For a read tool with an ambiguous resource noun, this 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%, and the `id` and `apiVersion` parameters are documented in the schema itself. The description's "by a given project id" only echoes the required parameter and gives no extra detail on ID format or version-negotiation behavior, so the schema does all the work — 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 description names a verb and resource ("Get project resource metadata") and appends the REST path, which confirms the underlying endpoint. However, the second sentence merely restates the first with "by a given project id," and nothing distinguishes this from the very similar sibling `project_get_projects_by_id_resource_metadata` or from its write counterpart `iaas_update_project_resource_metadata`. Purpose is identifiable but only barely differentiated.

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, when not to, or which alternative to pick. Given the presence of both `project_get_projects_by_id_resource_metadata` and `iaas_update_project_resource_metadata` in the sibling list, the absence of any routing guidance is a real gap rather than a trivial one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_projectsC
Read-onlyIdempotent

Get projects Get all projects GET /iaas/api/projects

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
countNoFlag which when specified, regardless of the assigned value, shows the total number of records. If the collection has a filter it shows the number of records matching the filter.
filterNoFilter the results by a specified predicate expression. A set of operators and functions are defined for use: Operators: eq, ne, gt, ge, lt, le, and, or, not. Functions: bool substringof(string p0, string p1) bool endswith(string p0, string p1) bool…
orderByNoSorting criteria in the format: property (asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, destructiveHint=false and openWorldHint, so the safety profile is covered elsewhere. The description itself adds nothing about behavior — no note on whether the result is paginated, whether it returns all projects or a page by default, or what the 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but the first two lines are redundant restatements of each other and the raw HTTP path adds little for an agent choosing a tool. It is not padded, but the front-loaded content is repetitive rather than informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A six-parameter listing tool with no output schema needs at least a note on pagination defaults (is 'top' required to avoid a truncated list?) and result shape. The description says nothing about this and nothing about filtering by org/project context, so an agent has to fall back entirely on 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 top/skip/count/filter/orderBy/apiVersion are fully documented in the schema. The description adds no extra meaning, which is acceptable at the baseline but leaves nothing in the prose to connect the fields to the 'get all projects' intent.

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 the resource (projects) and implies a collection read with 'Get all projects', plus the raw path GET /iaas/api/projects. However it names no distinguishing characteristic versus the many other project-related siblings (iaas_get_project, project_get_all_projects, iaas_get_projects_by_id_zones), so an agent cannot tell from the text which one it wants.

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 alternatives. The duplication 'Get projects / Get all projects' is the only scoping hint, which the agent must infer means 'list rather than fetch one'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_projects_by_id_zonesA
Read-onlyIdempotent

Get project zone assignments Get all zones assigned to a project by pages GET /iaas/api/projects/{id}/zones

NameRequiredDescriptionDefault
idYesThe ID of the project. (path)
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
countNoFlag which when specified, regardless of the assigned value, shows the total number of records. If the collection has a filter it shows the number of records matching the filter.
filterNoFilter the results by a specified predicate expression. Operators: eq, ne, and, or.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

A3.5/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, and destructiveHint=false, so the safety profile is covered. The description adds that results are returned in pages, which is behavior beyond what annotations state, but it omits return shape and whether unpaged 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short lines with the purpose stated first, followed by the paging note and the raw endpoint. There is no filler, though the endpoint line largely duplicates the annotation 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 read-only paginated list tool with a fully documented six-parameter schema and complete annotations, the description covers purpose and paging adequately. No output schema exists, but describing the returned zone-assignment structure would have closed the 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%, so every parameter including top, skip, count, and filter is already documented in the schema. The description's only semantic contribution is the word 'pages', which loosely ties to top/skip; otherwise it adds nothing 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?

The description states a specific verb and resource: get all zones assigned to a project, and includes the underlying path GET /iaas/api/projects/{id}/zones. It is clear what the tool returns, but it does not distinguish itself from nearby siblings such as iaas_get_zones or iaas_get_project, so an agent must infer which one matches its need.

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 pages' implies the paginated nature of the retrieval and hints at using top/skip, which is useful implied guidance. However, there is no explicit statement of when to use this tool versus iaas_get_zones (all zones) or iaas_update_project_zone_assignments (mutation), and no prerequisites are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_regionC
Read-onlyIdempotent

Get Region Get Region with a given id GET /iaas/api/regions/{id}

NameRequiredDescriptionDefault
idYesThe ID of the region. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety profile is covered. The description adds nothing beyond the raw REST path — no note about what a region object contains, error behavior for an invalid id, or enumeration status. It neither contradicts nor enriches 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 first line duplicates the tool name and the second largely repeats it, so one of the three lines is wasted. Brevity here reflects under-specification rather than tight editing.

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-by-id endpoint with a fully described two-parameter schema and read-only annotations, the minimum is nearly met. However, with no output schema, the description should at least indicate that it returns a single region object and what identifies it, which 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%, including the `id` path parameter and `apiVersion`, so the schema does the heavy lifting. 'With a given id' only confirms what the schema already says; 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 a near-verbatim restatement of the tool name and title: 'Get Region' / 'Get Region with a given id'. The only value added is the singular 'with a given id', which is implied by the required `id` parameter, and nothing distinguishes it from the sibling list operation `iaas_get_regions`.

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 `iaas_get_regions` (list) or `iaas_get_region_enumeration_result`. The agent must infer the singular-vs-plural split 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.

iaas_get_region_enumeration_resultC
Read-onlyIdempotent

Get region enumeration response Get region enumeration response for a given id GET /iaas/api/cloud-accounts/region-enumeration/{id}

NameRequiredDescriptionDefault
idYesThe ID of enumeration response (path)
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds no behavioral context beyond that: it never says whether the enumeration may still be in progress, how a pending/failed result is signalled, or what the response contains — which is the key trait for a result-retrieval 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?

The first two lines say nearly the same thing, then the REST path repeats the information a third time. It is short, but a third of 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 two-parameter getter with annotations covering safety and a schema fully documenting inputs, the definition is minimally sufficient. The missing piece is the async relationship to the enumerate siblings and any hint about response shape, since there is no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: both id and apiVersion are fully documented in the schema. The phrase 'for a given id' restates the id parameter without adding format or provenance details, so the schema is doing all the work 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?

The description names a specific verb and resource: retrieve the region enumeration response for a given ID, and includes the REST path as corroboration. It is clear what the tool returns, but it doesn't distinguish itself from the many region-enumeration siblings (e.g. iaas_enumerate_regions_async) or explain that this is the retrieval half of an async 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?

There is no statement of when to use this versus the enumerate_*_regions_async siblings, and no indication of where the required id comes from. An agent must infer that this reads the result of a previously initiated enumeration request; nothing in the text guides that sequencing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_regionsC
Read-onlyIdempotent

Get regions Get all regions GET /iaas/api/regions

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 fully covered structurally. The description adds nothing beyond that - it restates the annotation title ('GET /iaas/api/regions') and gives no detail on scope, pagination behavior, or what 'all regions' means across cloud accounts.

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 'Get regions' and 'Get all regions' are redundant and the raw endpoint line repeats the annotation title. No sentence is actively harmful, but the duplication costs it a point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list endpoint with full schema coverage, annotations covering safety, and no output schema, the definition is nearly sufficient to call correctly. The remaining gap is scope ambiguity - whether 'regions' are cloud-account regions or platform regions - which an agent must infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 optional parameters (top, skip, apiVersion) are documented in the schema. The description adds no parameter 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?

States a specific verb and resource ('Get regions', 'Get all regions'), which distinguishes it from the singular iaas_get_region sibling by implying a list operation. It does not explicitly name any sibling or scoping distinction, 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?

There is no explicit when-to-use guidance, no exclusions, and no mention of alternatives such as iaas_get_region (single region) or iaas_enumerate_*_regions_async (discovery). Usage is only implied by 'Get all regions'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_request_graphC
Read-onlyIdempotent

Get Request Graph For Provisioning Request GET /iaas/api/request-graph

NameRequiredDescriptionDefault
flowIdYesFlow Id For Provisioning Request
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
deploymentIdYesDeployment Id For Provisioning Request

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 openWorldHint=true, so the GET path in the description adds nothing new. There is no disclosure of what the returned graph looks like, whether it can be large/paginated, or what happens if the flowId 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short and front-loaded, but the second line, a bare REST path, duplicates the annotation title and consumes a line without adding agent-relevant 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?

With no output schema, the description is the only place to convey what a "request graph" contains, and it says nothing about the shape, depth, or semantics of the returned graph. For a tool whose headline concept is undefined, this is a material 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% with all three parameters (flowId, deploymentId, apiVersion) documented inline, so the schema carries the parameter burden. The description contributes no additional meaning such as where flowId/deploymentId come from or how apiVersion affects the response.

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 restates the tool name ("Get Request Graph") plus a container phrase ("For Provisioning Request") and the raw REST path. It never explains what a request graph is, nor does it distinguish this from numerous nearby siblings such as iaas_get_request_tracker, iaas_get_request_trackers, or deployment_get_request. That is close to tautology.

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 call this versus the request-tracker siblings, no prerequisites, and no mention of whether a deployment or provisioning request must be in a particular state. Usage must be fully inferred by the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_request_trackerC
Read-onlyIdempotent

Get request tracker Get request tracker with a given id GET /iaas/api/request-tracker/{id}

NameRequiredDescriptionDefault
idYesThe ID of the request. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.6/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 raw endpoint path – it does not say what a request tracker record represents, whether it covers async IaaS operations, or how long records persist.

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 second verbatim and the raw HTTP path adds little for an agent. Three lines where one well-formed sentence would suffice.

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 lookup with 100% schema coverage and full annotations, this is minimally sufficient to invoke. The gaps are conceptual rather than operational: the agent still cannot tell what a request tracker is or how it differs from the plural or graph variants.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 'id' and optional 'apiVersion' are documented in the schema. The description's phrase 'with a given id' merely confirms the required parameter and adds no format or sourcing detail (e.g., where to obtain the tracker ID). 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 a specific verb and resource (get / request tracker) and adds the path form with the ID, which is clear. However, it is largely a restatement of the tool name and does not distinguish this single-item fetch from the sibling iaas_get_request_trackers or iaas_get_request_graph.

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 plural list tool or the request-graph tool, and no stated preconditions (e.g., the ID must come from a prior list call). The only hint is the path template implying a single lookup by ID.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_request_trackersC
Read-onlyIdempotent

Get request tracker Get all request trackers GET /iaas/api/request-tracker

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 repeating the path: it does not say whether results are paginated, unsorted, or potentially very large despite there being no filter parameters at all.

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 three lines say essentially the same thing twice ('Get request tracker' / 'Get all request trackers') plus the raw endpoint path. The repetition costs space without 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?

No output schema exists, so the description should hint at what a request tracker record contains or how many results to expect; it does neither. Still, the tool takes one optional parameter and the annotations cover safety, so an agent can invoke it without further detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single optional apiVersion parameter, so the schema does the explanatory work. The description adds no parameter meaning beyond that; the 3 baseline applies when the schema fully documents the inputs.

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 all request trackers'), and the HTTP path confirms it is the unfiltered collection endpoint. It does not distinguish this from the singular sibling iaas_get_request_tracker or from iaas_get_request_graph, which an agent would need in order to choose correctly.

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 iaas_get_request_tracker (fetch by ID) or iaas_get_request_graph. The only usage signal is implicit in the plural wording 'Get all', which is not enough given how many near-identical GET tools exist in this server.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_security_groupB
Read-onlyIdempotent

Get security group Get security group with a given id GET /iaas/api/security-groups/{id}

NameRequiredDescriptionDefault
idYesThe ID of the security group. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

B3.4/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, fully covering the safety profile. The description adds nothing beyond that—no error behavior, permission needs, or return shape—so it is minimum viable given rich 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 immediately clear. Line 1 and line 2 are slightly redundant (both restate 'get security group'), a minor waste but not 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 simple get-by-id operation with complete schema and rich annotations, the essentials are covered. However, with no output schema, the description does not describe the returned security-group structure at all, leaving a gap an agent might want filled.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 the required 'id' and the 'apiVersion' parameters are fully documented in the schema. The description only echoes 'a given id' and adds no format or constraint detail 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 ('Get security group with a given id') and the underlying endpoint, making clear it retrieves a single group by identifier. It implicitly contrasts with the list sibling iaas_get_security_groups via 'a given id', though it never names that 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 only implied: 'with a given id' signals this is the single-object getter versus the plural list tool. There is no explicit when-to-use/when-not or prerequisites (e.g., required permissions, unknown-id behavior).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_security_groupsC
Read-onlyIdempotent

Get security groups Get all security groups GET /iaas/api/security-groups

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description adds only the raw HTTP endpoint path (GET /iaas/api/security-groups), which is minor context, and says nothing about pagination, result size, filtering behavior, or return shape for what is an open-world collection read.

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 text is short and front-loaded, but it wastes lines: "Get security groups" and "Get all security groups" are redundant restatements, and the third line is a raw endpoint path. Two of the three lines add no 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 read-only list endpoint with no output schema, the description should convey at least the shape or scope of what is returned (list of security groups with what identity fields, whether paged). It provides none of this, so an agent cannot predict the response or decide whether a single-group fetch is needed afterward.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 single optional apiVersion parameter is fully documented in the schema with format and a reference to /iaas/api/about. The description adds nothing about the parameter, but per the high-coverage baseline a 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource ("Get all security groups") so the basic operation is unambiguous. However, it offers no differentiation from the singular sibling iaas_get_security_group or from related tools like iaas_create_on_demand_security_group, iaas_update_security_group, and iaas_reconfigure_security_group, leaving the agent to infer that this is the list variant.

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 iaas_get_security_group (single lookup) or the security-group mutation tools. No prerequisites, no mention of pagination, filtering, or scope. The agent must infer usage 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.

iaas_get_single_deploymentC
Read-onlyIdempotent

Get a single deployment Get a single deployment. GET /iaas/api/deployments/{id}

NameRequiredDescriptionDefault
idYesThe id of the deployment. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2/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. The description adds only the raw HTTP path, which the annotation title already repeats; it says nothing about errors, auth, or what the returned deployment contains.

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?

Three lines of which the first two are verbatim duplicates and the third is an endpoint path also present in the annotation title. There is no wasted length, but also no substance — the redundancy signals an auto-generated stub.

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 simple single-resource read this could be adequate, but given a crowded sibling space of deployment getters, an agent still cannot tell which one returns the IaaS deployment versus the onboarding or deployment-service variants.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 (id, apiVersion) are documented in the schema. The description adds no parameter meaning, 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 states 'Get a single deployment', which is simply a restatement of the tool name. With near-identical siblings like deployment_get_deployment_by_id, onboarding_get_deployment_by_id, and iaas_get_deployments, it gives no basis for telling them apart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No indication of when to use this versus the multiple other single-deployment and list-deployment getters. No prerequisites, no alternatives named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_storage_profileC
Read-onlyIdempotent

Get storage class Get storage class with a given id GET /iaas/api/storage-profiles/{id}

NameRequiredDescriptionDefault
idYesThe ID of storage class. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already state readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond the HTTP path: it does not say what a storage profile represents, whether unknown ids error or return empty, or whether provider-specific fields vary.

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 first two lines are near-duplicates ('Get storage class' / 'Get storage class with a given id') and the third is just the raw endpoint path. Minimal, though almost no sentence adds information the agent could not infer.

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 no output schema and fully documented parameters, this is adequate. It is thin on the one thing that matters here: differentiating a generic storage profile from the many provider-specific storage profile getters in the sibling list.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are documented, so the baseline of 3 applies. The description adds nothing beyond what the schema already says about 'id' (the path identifier) and 'apiVersion', but it does not need to.

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 storage class with a given id'), so an agent knows this retrieves a single storage profile by identifier. It does not distinguish from siblings, notably iaas_get_storage_profiles (the list form) or the provider-specific variants like iaas_get_aws_storage_profile, which is a real ambiguity in this crowded namespace.

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 about when to use this versus iaas_get_storage_profiles, iaas_get_storage_profile_associations, or the per-provider getters. The only implicit usage signal is the required 'id' parameter, and the description offers no exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_storage_profile_associationsB
Read-onlyIdempotent

Get storage profile Associations Get all storage profile Associations with a given storage profile id GET /iaas/api/storage-profiles/{id}/storage-profile-associations

NameRequiredDescriptionDefault
idYesThe ID of storage Profile. (path)
pageNoResults page you want to retrieve (0..N)
sizeNoNumber of records per page.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about2021-07-15

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 without the description. The description adds nothing behavioral beyond restating the path; it does not mention that results are paginated or what an empty association set means.

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 lines, front-loaded with the verb and resource; the middle sentence restates the first almost verbatim ('Get storage profile Associations' vs 'Get all storage profile Associations'), which is mild waste, and the raw endpoint path is appended last as useful shorthand.

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 no output schema, the definition covers what is being fetched but not the shape of the response, pagination behavior, or what happens with an unknown id. Annotations and the fully documented schema close most of the gap, leaving it adequate rather than complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with all four parameters documented, so the schema carries the parameter burden and baseline 3 applies. The description only reinforces the required id ('with a given storage profile id') and adds nothing about page/size or apiVersion 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 (get) and resource (storage profile associations) and constrains scope to a given storage profile id, so the agent can distinguish it from iaas_get_storage_profile(s). It never explicitly contrasts itself with those siblings, but the resource wording 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 only implied: you call it when you have a storage profile id and want its associations. There is no statement of when to prefer this over iaas_get_storage_profile or iaas_update_storage_profile_associations, and no prerequisites 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.

iaas_get_storage_profilesC
Read-onlyIdempotent

Get storage classes Get all storage classes GET /iaas/api/storage-profiles

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond the raw endpoint path — no pagination behavior, no scope note (all cloud accounts vs. filtered), no return shape 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 short, but two of the three lines restate each other ("Get storage classes" / "Get all storage classes") and the third is a bare endpoint path. Front-loaded but partly 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?

For a simple annotated read-only list tool with fully documented parameters and no output schema, this is minimally adequate. The gaps are scope (does "all" span every cloud account?) and pagination, which an agent would want before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 single apiVersion parameter has a full description in the schema. The description adds no meaning beyond it, 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 ("Get all storage classes"), and the word "all" implies a full collection rather than a single lookup. However, it never names the sibling iaas_get_storage_profile (singular) or the provider-scoped variants like iaas_get_aws_storage_profiles, so the boundary 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?

There is no explicit when-to-use guidance, no prerequisites, and no mention of alternatives among the many sibling storage-profile getters. Only the word "all" hints at the use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_tagsC
Read-onlyIdempotent

Get tags Get all tags GET /iaas/api/tags

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
countNoFlag which when specified, regardless of the assigned value, shows the total number of records. If the collection has a filter it shows the number of records matching the filter.
filterNoFilter the results by a specified predicate expression. Operators: eq, ne, and, or.
selectNoSelect a subset of properties to include in the response.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is fully covered upstream. The description contributes only the raw endpoint path and says nothing about pagination defaults, result size, or what the response looks like for a possibly large collection.

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?

"Get tags" and "Get all tags" appear one after the other and say the same thing, so nothing stays front-loaded. The path line is the only content that adds anything new, and the whole entry is only three short lines.

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 paginated list endpoint with no output schema and no description of the response envelope, default page size, or what happens when top/skip are omitted. For a 6-parameter collection GET, the definition leaves too much for the agent to figure out 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?

All six parameters (top, skip, count, filter, select, apiVersion) are fully documented in the schema, so the baseline of 3 applies. However, the description adds no paging or filtering guidance beyond what the schema already states.

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 says "Get tags" / "Get all tags" plus the REST path, which does identify a retrieval of the tags collection. But it is essentially a restatement of the tool name, and it draws no line between this and the close siblings iaas_get_tags_usage, iaas_create_tag, and iaas_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?

There is no indication of when to call this versus iaas_get_tags_usage, or that this returns the whole tag collection with no required filters. The one useful implication, that it is a plain list-all read, has to be inferred from the name rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_tags_usageC

Get usage of the tags Get documents of all resources that are assigned with the provided tags POST /iaas/api/tags/tags-usage

NameRequiredDescriptionDefault
bodyYesSpecification for tag usage — Tag Usage Specification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, openWorldHint=true, so the safety profile is covered. The description adds only that resources are returned, without disclosing pagination behavior, result size, or the fact that the POST body is being used as a query filter. It does not contradict 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?

Three short lines, front-loaded with the core purpose and followed by a clarifying sentence and the endpoint. Slight redundancy between 'Get usage of the tags' and the second line, but no wasted padding.

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 nested-body query tool with no output schema, the description gives the essential intent but omits return shape, pagination, and result limits. Adequate to call correctly, but thin given 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?

Schema description coverage is 100%, so tagIds and apiVersion are fully documented in the schema. The description's phrase 'provided tags' maps to tagIds but adds no syntax, format, or matching semantics 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: 'Get usage of the tags' and clarifies it returns documents of all resources assigned the provided tags. An agent can tell this is a tag-to-resource lookup rather than a tag CRUD operation. It does not explicitly contrast with the sibling iaas_get_tags, 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?

There is no explicit guidance on when to use this versus iaas_get_tags or other resource-listing tools, and no prerequisites or exclusions are stated. The usage is only implied by 'resources that are assigned with the provided tags'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_vcf_cloud_accountC
Read-onlyIdempotent

Get an VCF cloud account Get an VCF cloud account with a given id GET /iaas/api/cloud-accounts-vcf/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Cloud Account (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.8/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, and the description adds nothing on top of that — the 'GET /iaas/api/...' line merely restates readOnly. It says nothing about behavior when the id is unknown (error shape) or any pagination/auth considerations, which is the kind of context that would earn a higher score here.

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 two lines are near-verbatim duplicates ('Get an VCF cloud account' / 'Get an VCF cloud account with a given id'), so one sentence does not earn its place. The raw HTTP path is included but conveys nothing an agent can act on beyond what the annotations already say.

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-by-id tool with full schema coverage and rich annotations, minimal description is close to sufficient. However, with no output schema the description could at least hint at what a VCF cloud account record contains, 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%, so both the required 'id' path parameter and the optional 'apiVersion' are already documented in the schema. The description's 'with a given id' adds no format, encoding, or sourcing detail beyond that, 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 a VCF cloud account) and adds 'with a given id', which separates it from the list-style sibling iaas_get_vcf_cloud_accounts. It does not, however, distinguish itself from other single-resource getters such as iaas_get_cloud_account or iaas_get_vsphere_cloud_account beyond the VCF qualifier.

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 statement of when to use this versus iaas_get_vcf_cloud_accounts (list) or iaas_get_cloud_account (generic). The only hint is the implicit 'given id' phrasing, and no preconditions 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.

iaas_get_vcf_cloud_accountsB
Read-onlyIdempotent

Get VCF cloud accounts Get all VCF cloud accounts within the current organization GET /iaas/api/cloud-accounts-vcf

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, so the safety profile is fully covered. The description adds the organization scope, which is useful, but says nothing about pagination or how many records come back despite top/skip 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?

Three short lines, front-loaded with the action and scope. The first line largely restates the tool name and the REST path is developer-facing boilerplate, 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?

No output schema exists, so the description should clarify the return shape or paging semantics. It conveys the resource and scope but leaves an agent unsure how results are paginated or what fields a VCF cloud account record exposes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 top, skip, and apiVersion are already documented. The description contributes no extra meaning about paging behavior or defaults, 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 and resource ('Get all VCF cloud accounts') and adds the scoping constraint ('within the current organization'), which separates it from the singular iaas_get_vcf_cloud_account. It does not explicitly name siblings like iaas_get_cloud_accounts, so an agent must infer which listing endpoint it wants.

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 the org-scoping phrase; there is no statement of when to choose this over the generic iaas_get_cloud_accounts or the singular iaas_get_vcf_cloud_account, and 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.

iaas_get_vmc_cloud_accountC
Read-onlyIdempotent

Get an VMC cloud account Get an VMC cloud account with a given id GET /iaas/api/cloud-accounts-vmc/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Cloud Account (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 elsewhere. The description adds only the raw REST endpoint path and says nothing about error behavior (e.g. 404 on unknown id), auth requirements, or what the 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first two lines restate each other verbatim ('Get an VMC cloud account' / 'Get an VMC cloud account with a given id'), wasting the front-loaded position on redundancy rather than routing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-resource read with full schema coverage, complete annotations, and no output schema, the definition is minimally sufficient. It still leaves the agent without guidance on the plural/sibling distinction, which is the main ambiguity in this dense namespace.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 id and apiVersion documented inline, so the baseline of 3 applies. The description's phrase 'with a given id' merely echoes the required parameter without adding format or 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 ('Get an VMC cloud account') and clarifies the scope as single-item retrieval by id, which is unambiguous. It does not, however, distinguish this from the closely named sibling iaas_get_vmc_cloud_accounts (the list endpoint) or from the generic iaas_get_cloud_account.

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 the plural variant or the generic cloud-account getter, nor any prerequisite or exclusion guidance. The only implicit signal is the required id path parameter, which the agent must infer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_vmc_cloud_accountsB
Read-onlyIdempotent

Get VMC cloud accounts Get all VMC cloud accounts within the current organization GET /iaas/api/cloud-accounts-vmc

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 only the organizational scoping constraint; it says nothing about pagination behavior despite exposing top/skip, nor about what a returned account record 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?

Three short lines, front-loaded with the operation and scope. The first line duplicates the second and the raw GET path adds little for an agent, but there is no padding or filler 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 simple read-only list endpoint with complete annotations and full schema coverage, the description is minimally sufficient. It stops short of describing result ordering or pagination semantics, which is the main remaining gap given there is no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for all three parameters (top, skip, apiVersion), so the schema carries the semantics. The description contributes no additional meaning about paging defaults, maximum page size, or the API-version format, leaving it at the baseline for a fully documented 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 all VMC cloud accounts) plus the scope ('within the current organization'), which implicitly separates it from the singular iaas_get_vmc_cloud_account and from generic iaas_get_cloud_accounts. It never names a sibling explicitly, so the differentiation is inferred 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 phrase 'Get all ... within the current organization' implies a list-everything use case, but there is no explicit when-to-use, no exclusion, and no pointer to alternatives such as iaas_get_vmc_cloud_account for a single account or iaas_get_cloud_accounts for all provider types. Usage must be inferred from naming conventions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_vsphere_cloud_accountC
Read-onlyIdempotent

Get an vSphere cloud account Get an vSphere cloud account with a given id GET /iaas/api/cloud-accounts-vsphere/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Cloud Account (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 elsewhere. The description adds nothing beyond that (no return-shape hints, no behavior on missing ID, no error semantics), and it does not contradict 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three lines say the same thing: the first repeats the tool name, the second repeats it with 'with a given id', and the third is the raw path. That is duplication rather than front-loaded value, and the 'an vSphere' slip suggests unedited generated 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?

For a simple read-by-ID tool with 100% schema coverage and complete annotations, the definition is adequate to call correctly. It is not complete as documentation, though – nothing tells the agent what the response contains or when this tool beats its plural sibling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 'id' and 'apiVersion' are already documented in the schema. The description's 'with a given id' only echoes the schema and adds no format or sourcing guidance for the required identifier, 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 description states the verb and resource ('Get an vSphere cloud account') and adds 'with a given id', but all three lines restate the same fact plus the raw HTTP path. It never distinguishes this singular fetch from the sibling iaas_get_vsphere_cloud_accounts (plural) or the generic iaas_get_cloud_account, so an agent must infer 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 when-to-use guidance, no prerequisite or permission note, and no mention of any alternative tool. Given the sibling list contains both 'iaas_get_vsphere_cloud_accounts' and 'iaas_get_cloud_account', the absence of routing information is a real gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_vsphere_cloud_accountsB
Read-onlyIdempotent

Get vSphere cloud accounts Get all vSphere cloud accounts within the current organization GET /iaas/api/cloud-accounts-vsphere

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 by structured data. The description adds the useful org-scoping constraint, but says nothing about pagination defaults (top/skip) or the shape/size of the returned collection.

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 first two lines restate the same fact ('Get vSphere cloud accounts' / 'Get all vSphere cloud accounts within the current organization') and the raw endpoint repeats the annotation title. One sentence plus scope would have earned the same information with less redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, read-only list endpoint with full schema coverage and complete annotations, the definition supplies enough to call it correctly: which provider accounts, and that scoping is per organization. Only pagination expectations and returned fields are unstated, which is a minor gap for this complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so top, skip, and apiVersion are already documented in the schema. The description adds no paging or versioning semantics beyond that, which is the baseline expectation 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?

The description states a specific verb and resource ('Get all vSphere cloud accounts') and scopes it to the current organization, which distinguishes it from the singular sibling iaas_get_vsphere_cloud_account and from the create/update/delete vSphere siblings. However, it never names those siblings explicitly, so the 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 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 list call versus iaas_get_vsphere_cloud_account (single fetch) or the other per-provider list tools, and no mention of pagination behavior or prerequisites. The only usage signal is the org-scope phrase 'within the current organization,' which is incidental rather than instructional.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_vsphere_fabric_networkC
Read-onlyIdempotent

Get vSphere fabric network Get vSphere fabric network with a given id GET /iaas/api/fabric-networks-vsphere/{id}

NameRequiredDescriptionDefault
idYesThe ID of the fabric network. (path)
selectNoSelect a subset of properties to include in the response.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.8/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 by structured data. The description adds nothing beyond that — no return shape, no error behavior for an unknown id, no cross-tenant/openWorld caveat — so it does not earn credit on top of annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three lines state the same thing twice — 'Get vSphere fabric network' is immediately restated as 'Get vSphere fabric network with a given id' — and the third line's HTTP path duplicates the annotation title. Front-loaded purpose is fine, but 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?

For a read-only single-resource fetch with a fully documented 3-parameter schema, the essentials are technically present. However, with no output schema, the description should hint at the returned fabric-network object, and it gives no hint about the neighboring endpoints an agent could confuse this with.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 three parameters (id, select, apiVersion), so the schema carries parameter documentation. The phrase 'with a given id' weakly echoes the required path parameter and adds no new semantics for select or apiVersion; 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: retrieves a single vSphere fabric network by id. It is clear what the tool returns, but it never distinguishes itself from near-identical siblings such as iaas_get_fabric_network, iaas_get_vsphere_fabric_networks (plural list), or iaas_updatevsphere_fabric_network, which an agent must disambiguate 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 guidance on when to use this tool versus the plural list endpoint or the generic fabric-network endpoint. 'with a given id' implies you need an id, but nothing states where to obtain one or when the collection variant is the better call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_vsphere_fabric_networksC
Read-onlyIdempotent

Get vSphere fabric networks Get all vSphere fabric networks. GET /iaas/api/fabric-networks-vsphere

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
countNoFlag which when specified, regardless of the assigned value, shows the total number of records. If the collection has a filter it shows the number of records matching the filter.
filterNoFilter the results by a specified predicate expression. Operators: eq, ne, and, or.
selectNoSelect a subset of properties to include in the response.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.8/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 openWorldHint, so the safety profile is fully covered. The description adds nothing beyond that — no note on pagination defaults, result volume, or permission requirements for reading fabric networks.

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 two sentences say exactly the same thing ('Get vSphere fabric networks' / 'Get all vSphere fabric networks'), which is pure redundancy. Only the endpoint path carries marginal extra 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 paged list tool with complete schema coverage and full annotations, the description is minimally sufficient. It omits any hint about what a fabric network record contains or how large the collection typically is, but there is no output schema requiring explanation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 query parameters (top, skip, count, filter, select, apiVersion) are already documented in the schema. The description adds no interpretation of them, which is acceptable given the full coverage — 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 verb ('Get') and resource ('vSphere fabric networks') are specific and unambiguous, and the REST endpoint path confirms it is a collection GET. It does not, however, distinguish this from sibling iaas_get_fabric_networks (all fabrics) or iaas_get_vsphere_fabric_network (single item).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this versus iaas_get_fabric_networks or iaas_get_vsphere_fabric_network, despite those siblings being easy to confuse with this one. The only guidance is the implicit 'all' in the second sentence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_vsphere_storage_profileB
Read-onlyIdempotent

Get vSphere storage class Get vSphere storage class with a given id GET /iaas/api/storage-profiles-vsphere/{id}

NameRequiredDescriptionDefault
idYesThe ID of storage class. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 safety is covered. The description adds only the underlying REST path, and says nothing about what is returned, whether the id must reference a vSphere-specific profile, or behavior when the id does not exist.

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 text is short and front-loaded, but the first line is a truncated duplicate of the second, and the raw endpoint path largely repeats the URL already present in the annotation title. Every element is not earning its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only get-by-id tool with full schema coverage and complete annotations, this is close to sufficient — the agent knows it retrieves a single vSphere storage profile by identifier. The missing piece is explicit differentiation from sibling storage-profile getters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 'id' and 'apiVersion' parameters are already documented in the schema, establishing the baseline of 3. The description's 'with a given id' only restates the required path parameter without adding format, source, or retrieval hints for obtaining 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 and resource ('Get vSphere storage class with a given id') and the singular-by-id scope distinguishes it implicitly from the plural list sibling iaas_get_vsphere_storage_profiles. It does not explicitly name that sibling or the generic iaas_get_storage_profile, leaving the agent to infer the difference from naming.

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?

'With a given id' implies a single-entity lookup, so usage is inferable, and the raw endpoint path reinforces that this is the GET-by-id route. However, there is no explicit statement of when to prefer this over iaas_get_storage_profiles or iaas_get_storage_profile, 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.

iaas_get_vsphere_storage_profilesC
Read-onlyIdempotent

Get vSphere storage classes Get all vSphere storage classes GET /iaas/api/storage-profiles-vsphere

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.8/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 description's job is to add context such as pagination, filtering, or what an empty result means. It adds none of that, only restating the purpose and the raw GET path.

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?

Three lines say the same thing twice ('Get vSphere storage classes' / 'Get all vSphere storage classes') and then repeat the raw endpoint path. The repetition crowds out the space where usage or behavioral detail could have gone.

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 read-only list endpoint with one optional version parameter and no output schema, the description is minimally sufficient to call it. It still leaves return shape, pagination, and any filtering behavior unspecified, so it is adequate rather than 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?

There is a single optional apiVersion parameter with 100% schema description coverage, so the schema already carries the semantics. The description contributes nothing additional about the version parameter or its default, which meets the baseline-3 expectation but no more.

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 plus resource ('Get all vSphere storage classes') and the vSphere scope implicitly separates it from the AWS/Azure/GCP storage-profile siblings. It does not explicitly distinguish the singular iaas_get_vsphere_storage_profile or the generic iaas_get_storage_profiles, so routing still requires 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?

There is no statement of when to use this versus the single-profile getter, the generic storage-profile list, or the fabric vSphere storage policies. The only implicit cue is the 'all' versus singular naming, which is left for the agent to notice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_zoneC
Read-onlyIdempotent

Get zone Get zone with given id GET /iaas/api/zones/{id}

NameRequiredDescriptionDefault
idYesThe ID of the zone. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.6/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 safety is covered. The description adds nothing beyond the raw REST path — no note on what a zone object contains, what happens on an unknown id (404?), or any auth/versioning caveat.

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 lines say the same thing three times (name restated, restated again, then the raw endpoint). Trimming to one informative sentence would lose 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 two-parameter read with full schema coverage and complete annotations, this is minimally sufficient to call the tool correctly. It still leaves the agent without any sense of the returned zone shape or how the id is obtained, which is the one gap worth filling 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 both `id` and `apiVersion` are already documented in the schema. The description's "with given id" merely echoes the schema; 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+resource pair ("Get zone with given id") is identifiable, but the three lines are near-duplicates of each other and of the tool name, and nothing distinguishes this from iaas_get_zones (list) or iaas_update_zone / iaas_delete_zone in the sibling set.

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 iaas_get_zones, iaas_get_projects_by_id_zones, or the update/delete zone tools. The only implied guidance is the path template, which the agent must infer from.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_get_zonesC
Read-onlyIdempotent

Get zones Get all zones GET /iaas/api/zones

NameRequiredDescriptionDefault
topNoNumber of records you want to get.
skipNoNumber of records you want to skip.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 fully covered elsewhere. The description adds nothing about pagination defaults, result size, or whether zones are scoped to the current org/project — the only remaining behavioral questions for this 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?

Very short and front-loaded, but the first two lines are redundant restatements of the same idea and the raw path adds little. It is compact without being informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list endpoint the bar is low, yet the description never says what a zone represents, whether results are tenant-scoped, or how paging behaves. It is sufficient only to guess that this lists zones.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 top, skip and apiVersion each documented in the schema, so the baseline is 3. The description adds no meaning about paging semantics or the date-format requirement, but none is needed given full coverage.

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 only restates the name: 'Get zones / Get all zones / GET /iaas/api/zones'. It signals a list operation but never distinguishes it from the sibling iaas_get_zone (singular) or iaas_get_projects_by_id_zones, so an agent gets no discriminating detail beyond the plural.

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?

'Get all zones' weakly implies listing, but there is no statement of when to use this versus iaas_get_zone or the project-scoped zone endpoint. No prerequisites, no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_import_packageB

Import package Import IPAM package on chunks of specified size. This API implements the TUS RFC: https://github.com/tus/tus-resumable-upload-protocol/blob/main/protocol.md PATCH /iaas/api/integrations-ipam/package-import/{id}

NameRequiredDescriptionDefault
idYesIPAM package id (path)
bodyNoRequest body
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
Tus-ResumableYesTus version (header)
Upload-OffsetYesUpload offset (header)

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the mutation and open-world profile, so the description does not need to restate those. It adds useful behavioral context by citing TUS resumable upload and chunked import, but it omits details about authentication, sequencing, side effects on existing packages, and 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?

The description is short and front-loads the main action, with the TUS reference and endpoint following. The leading 'Import package' is somewhat redundant with the tool name and next sentence, but overall it is compact and 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?

This is a non-idempotent mutation with no output schema and several required headers, so the description should ideally explain sequencing, prerequisites, and response expectations. Citing TUS provides helpful protocol context, but an agent would still need to consult the schema and external RFC for correct invocation details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all five parameters and required headers. The description mentions chunk size and the TUS protocol, which gives some conceptual context, but it does not add semantics beyond the schema for id, body, apiVersion, Tus-Resumable, or Upload-Offset.

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: importing an IPAM package in chunks, and identifies the endpoint. It is much clearer than a tautology, but it does not explicitly distinguish this tool from related siblings such as iaas_import_package_http_method_override or iaas_reserve_package.

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 that this performs chunked IPAM package import using TUS, but it gives no explicit when-to-use guidance, prerequisites, or alternatives. An agent must infer usage from the name and endpoint rather than being routed to or away from this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_import_package_http_method_overrideB

Import package Import IPAM package on chunks of specified size with additional http method override. This API implements the TUS RFC: https://github.com/tus/tus-resumable-upload-protocol/blob/main/protocol.md#x-http-method-override POST /iaas/api/integrations-ipam/package-import/{id}

NameRequiredDescriptionDefault
idYesIPAM package id (path)
bodyNoRequest body
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
Tus-ResumableYesTus version (header)
Upload-OffsetYesUpload offset (header)
X-HTTP-Method-OverrideYesThe http method to be used on the server instead of the actual method of the request. This header usage is part of the specfication for resumable uploads - https://tus.io/protocols/resumable-upload (header)

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, openWorldHint=true, idempotentHint=false, and destructiveHint=false, covering the safety profile. The description adds useful context that this implements TUS resumable uploads, but it does not explain offset sequencing, chunk completion behavior, or auth requirements beyond linking to the RFC.

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 operation stated first and protocol context second. There is minor redundancy in the leading 'Import package' and raw endpoint text, but it is not 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?

For a complex resumable upload, the description gives the TUS RFC link and the chunking/method-override direction, while the schema fully documents parameters. Still, it omits practical workflow details such as how offsets advance and how completion is signaled, 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.

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, including the TUS headers, is already documented in the schema. The description adds only general context about chunking and method override; it does not add syntax or usage meaning beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

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: importing an IPAM package, with the added mechanism of chunked upload and HTTP method override. It references the TUS RFC and the endpoint, so the operation is clear. However, it does not explicitly distinguish this from the sibling iaas_import_package tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The mention of chunked import and X-HTTP-Method-Override implies this is for resumable chunked uploads using TUS. But there is no explicit when-to-use guidance, no exclusions, and no direct comparison to iaas_import_package or other import-related siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_patch_configuration_propertyB

Update or create configuration property. PATCH /iaas/api/configuration-properties

NameRequiredDescriptionDefault
bodyYesA representation of a configuration property. — Property Specification
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

B3.2/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-destructive, open-world, non-idempotent operation. The description adds useful upsert semantics, but does not explain permissions, failure behavior, or what precisely happens when the key 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 short and front-loads the purpose in the first sentence. The second sentence mostly repeats the endpoint already present in the title/annotations, but the overall text 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?

For a simple two-parameter upsert with full schema coverage and meaningful annotations, the core invocation information is available. However, the description is thin on usage context and response behavior, which leaves some gaps for an agent deciding how to call 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%, so the parameters are fully documented in the schema. The description does not add any parameter-level meaning beyond what the schema already provides, which is the baseline for high 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: update or create a configuration property. It is clearly distinguishable from get/delete configuration-property siblings by the mutation semantics, though it does not explicitly name 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?

The description gives no explicit when-to-use guidance, prerequisites, or alternatives. An agent can infer this is the mutation tool for configuration properties, but it is not told when to prefer this over get/delete or what conditions make the upsert appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_patch_machine_network_interfaceA

Patch machine network interface Patch network interface with a given id for specific machine. Only name, description, IPv4 address and custom property updates are supported. The change to name and IPv4 address will not propagate to cloud endpoint for provisioned machines. PATCH /iaas/api/machines/{id}/network-interfaces/{networkId}

NameRequiredDescriptionDefault
idYesThe ID of the machine. (path)
bodyYesNetworkInterface Specification
networkIdYesThe ID of the network interface. (path)
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare that this is not read-only, not idempotent, not destructive, and open-world. The description adds important behavioral context beyond annotations: changes to name and IPv4 address will not propagate to the cloud endpoint for provisioned machines, and only certain fields are supported. It does not cover response behavior or permission requirements, but with annotations present the disclosure is strong.

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 main action and constraints. The opening line repeats the tool title, and the endpoint line restates the path, so there is minor redundancy, but overall it is efficient and easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete enough for a mutation tool whose annotations declare safety characteristics and whose schema fully documents all four parameters. It adds the important non-propagation caveat and supported-field constraint, though it does not describe the response body, which is not required because 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 description coverage is 100%, so path parameters and nested body fields are already documented in detail. The description lists the supported update fields, which aligns with the schema but does not add syntax, format, or other meaning beyond what the schema provides. A baseline 3 is appropriate 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.

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: patch a machine network interface identified by machine id and network interface id. It also names the exact fields that can be updated, so an agent can distinguish this from get_machine_network_interface and update_machine without opening other schemas.

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 the tool by saying it patches a network interface for a specific machine and constrains updates to name, description, IPv4 address, and custom properties. However, it does not explicitly say when to choose this tool over alternatives such as iaas_get_machine_network_interface or iaas_update_machine, nor does it state prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_power_off_machineC

Power-off operation for machine Second day power-off operation for machine POST /iaas/api/machines/{id}/operations/power-off

NameRequiredDescriptionDefault
idYesThe id of the Machine. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 and destructiveHint=false, and the description adds no behavioral context beyond restating the endpoint: it does not say whether the power-off is forced/immediate, what state the machine must be in, whether the operation is asynchronous and returns a request tracker, or what happens to in-flight workloads. It does not contradict the annotations, but for a mutation on running compute this leaves the meaningful behavior undisclosed.

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?

Three short lines with no wasted prose, but the second line is redundant with the first and semantically empty, and the endpoint line repeats information already carried by the tool's annotation title ("POST /iaas/api/machines/{id}/operations/power-off"). Nothing is front-loaded as actionable guidance.

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 explain the outcome, and it does not — whether a task/request is returned or the machine goes down synchronously is unknown. Given the dense cluster of power-state siblings and the mutation, the definition is under-specified for an agent to call this 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%, with `id` documented as "The id of the Machine. (path)" and `apiVersion` explained in the schema. The description's endpoint line merely echoes the `{id}` path parameter already documented, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ("Power-off operation for machine") plus the underlying REST endpoint, so the action is unambiguous. However, it does nothing to separate this tool from the many power-state siblings (iaas_shutdown_machine, iaas_suspend_machine, iaas_power_on_machine, iaas_reset_machine), and the fragment "Second day power-off operation for machine" is meaningless jargon that neither clarifies nor distinguishes.

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 the alternatives. With shutdown, suspend, reset, reboot and restart all present as siblings, the agent gets no criteria for choosing a hard power-off over a graceful shutdown. "Second day power-off operation" reads like an internal ticket phrase rather than guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_power_on_machineC

Power-on operation for machine Second day power-on operation for machine POST /iaas/api/machines/{id}/operations/power-on

NameRequiredDescriptionDefault
idYesThe id of the Machine. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, openWorldHint=true, and destructiveHint=false, so the safety profile is partially covered. The description adds only the HTTP endpoint, but does not explain what happens if the machine is already powered on, whether it is queued/async, or what the 'second day' distinction means.

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 wastes a line on the redundant and unclear 'Second day power-on operation for machine' phrasing, which restates the first line rather than front-loading new information. The endpoint path is useful but the core intent is repeated.

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-id mutation with full schema coverage and annotation coverage, the essentials are present. However, it omits the operation semantics an agent would need (async behavior, effect on already-running machines), leaving a gap beyond the bare endpoint disclosure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 two parameters (id required, apiVersion optional), both documented in the schema itself. The description adds no parameter-level meaning beyond what the schema already provides, 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 first line states a clear verb and resource ('Power-on operation for machine'), but the second line ('Second day power-on operation for machine') is confusing boilerplate that adds no clarity, and the definition never distinguishes this from the many sibling power-state tools like iaas_power_off_machine, iaas_reboot_machine, or iaas_reset_machine.

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 iaas_restart_machine, iaas_reboot_machine, iaas_reset_machine, or iaas_power_off_machine, all of which are present as siblings. The 'second day' phrasing hints at a scenario but never explains it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_promote_diskC

Promote operation on disk Second day promote operation on disk. Applicable for vSphere Block Devices only POST /iaas/api/block-devices/{id}/operations/promote

NameRequiredDescriptionDefault
idYesThe id of the Disk. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, and destructiveHint=false, so the safety baseline is covered. Beyond that the description adds only the vSphere scope and the REST path; it does not say what changes on the disk, whether the operation can be re-run after failure, or whether it disrupts the attached VM — the very things an agent needs for a non-idempotent mutation. 'Second day promote' is unexplained jargon that adds no clarity.

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 middle sentence ('Second day promote operation on disk') is garbled and conveys nothing, and the trailing POST path duplicates the annotation title verbatim, so a third of the text is wasted or redundant.

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 no output schema, the definition leaves the core question — what promoting a block device does and what state it leaves the resource in — entirely unanswered. Only the platform restriction and endpoint are given, which is not enough for an agent to invoke this 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 coverage is 100%, so both the id and apiVersion parameters are fully documented in the schema; the description adds nothing about the id format or apiVersion choice. With the schema doing all the work, the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

It names a verb ('promote') and resource ('disk') plus an endpoint path, but never explains what 'promote' actually means for a disk, so the agent cannot tell the effect from the text alone. The clause 'Applicable for vSphere Block Devices only' does help separate it from generic disk tools like iaas_resize_block_device or iaas_revert_disk_snapshot, which keeps this above tautology.

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 vSphere Block Devices constraint functions as an applicability precondition, which is genuine usage guidance. However there is no statement of when an agent should promote versus resize, snapshot, or revert a disk, and no prerequisites (power state, licensing, tiering support) are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_reboot_machineC

Reboot operation for machine Second day reboot operation for machine POST /iaas/api/machines/{id}/operations/reboot

NameRequiredDescriptionDefault
idYesThe id of the Machine. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare that this is not read-only, is open-world, is not idempotent, and is not destructive. The description adds essentially no operational context beyond the endpoint, such as disruption caused, preconditions, or expected effect on running workloads.

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 it repeats the same 'reboot operation for machine' concept twice without adding information. The unexplained 'Second day reboot operation' sentence is confusing rather than useful.

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 reboot operation surrounded by many power-state siblings, the definition lacks the distinction and operational context an agent needs to choose it correctly. Annotations and schema cover safety and parameters, but the description does not complete the selection picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters. The endpoint path reinforces that id is the machine identifier, but the description does not add further meaning for apiVersion or the id 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 states a specific verb and resource: reboot a machine, and includes the concrete operation endpoint. However, it does not distinguish this from siblings like iaas_restart_machine, iaas_reset_machine, or iaas_power_off_machine.

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 reboot versus restart, reset, power off, or shutdown. It also omits prerequisites such as whether the machine must be powered on. The phrase 'Second day reboot operation' is too unclear to function as usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_reconfigure_natC

Reconfigure operation for nat Day-2 reconfigure operation for nat POST /iaas/api/compute-nats/{id}/operations/reconfigure

NameRequiredDescriptionDefault
idYesThe ID of the Compute Nat (path)
bodyYesSpecification for a Compute Nat Reconfigure operation for NAT rules — Reconfigure compute nat specification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 and destructiveHint=false, so the safety bar is lower, but the description adds nothing: it does not say whether the supplied natRules replace the entire existing rule set (a destructive-looking overwrite for an operation flagged non-destructive), whether the call is synchronous, or what permissions are needed. For a mutation with a nested rule-list body this leaves the key behavioral question unanswered.

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 three lines are largely self-duplicating — the first two lines both say "reconfigure ... nat" and the third repeats the annotation title verbatim. Nothing is front-loaded that helps an agent decide or invoke, so the brevity reflects thin content rather than efficient phrasing.

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 nested-body mutation with no output schema, and the description says nothing about the replace-vs-merge semantics of natRules, response behavior, or required state of the target Compute Nat. Given the complexity of the body and the write operation, the description is well short of what an agent needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 natRule properties are richly documented with defaults (kind, protocol, sourceIPs, ports, targetLink), so the schema carries parameter meaning. The description contributes no additional parameter context, making the baseline 3 correct.

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?

"Reconfigure operation for nat" largely restates the tool name, and "Day-2 reconfigure operation for nat" only adds the vague lifecycle term without saying what is actually reconfigured (the NAT rule list). The POST path duplicates the annotation title instead of clarifying the effect, and nothing distinguishes it from siblings like iaas_create_compute_nat or iaas_delete_compute_nat.

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 creating/deleting a Compute Nat, no prerequisites (e.g., needing an existing Compute Nat ID), and no mention of when reconfigure is appropriate. The agent must infer everything from the HTTP path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_reconfigure_security_groupA

Reconfigure operation for security group Day-2 reconfigure operation for new security groups provisioned by VMware Aria Automation. This is not supported for 'existing' security groups POST /iaas/api/security-groups/{id}/operations/reconfigure

NameRequiredDescriptionDefault
idYesThe ID of the security group. (path)
bodyYesSpecification for a cloud security group — Security group Specification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is covered structurally. The description adds the useful eligibility constraint, but says nothing about what a reconfigure actually does to the group's rules, whether traffic is disrupted, or what the call returns — extra context that would matter for a non-idempotent 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?

Short and front-loaded, with the important eligibility constraint in the second line. The first line ('Reconfigure operation for security group') and the trailing POST path largely restate the title/endpoint annotation, so a little space is spent on redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a non-idempotent mutation with a nested body object, no output schema and rich annotations, the description covers eligibility but not effect: what a reconfigure replaces, whether rules are merged or overwritten, or any preconditions. It is adequate to select the tool but thin for invoking 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 every nested field (name, tags, rules, projectId, customProperties) is documented inline, so the schema carries the semantics. The description contributes nothing about the body's reconfigure semantics or required vs optional handling beyond what the schema already states; 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 gives a specific verb+resource ('Reconfigure operation for security group') and narrows the scope to Day-2 reconfigure of security groups provisioned by VMware Aria Automation. The 'not supported for existing security groups' clause meaningfully separates it from siblings like iaas_update_security_group, though it does not name that 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a positive usage context (new groups provisioned by Aria Automation) and an explicit exclusion (existing security groups are not supported), which is the key routing signal. It stops short of naming the alternative tool an agent should reach for when the group is 'existing'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_release_network_ips_by_userC

release network IPs by user. release network IPs by user POST /iaas/api/network-ip-ranges/{id}/ip-addresses/release

NameRequiredDescriptionDefault
idYesThe ID of the network IP range. (path)
bodyYesSpecification for releasing ip addresses managed by the user — Release IP Address Specification
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since the annotations explicitly define this as a write operation (readOnlyHint: false), the description should provide context beyond just the action verb. It fails to disclose crucial behavioral details associated with state mutation.

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 redundant, repeating 'release network IPs by user' twice, once with a comma and once immediately following it, before appending the raw API path. This repetitive structure wastes word count.

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?

As a mutation tool that modifies network state, the description is critically underspecified. It provides the action but offers no useful context regarding prerequisites or potential side effects for a responsible AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the description does not need to add semantic meaning. It merely reiterates the resource (IPs) and the container (id/body), matching the baseline score for high 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 clearly states the intent: 'release network IPs by user.' It is specific about the resource action, distinguishing it from other allocation or retrieval tools in the sibling 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 does not provide guidance on *when* to use this tool. It offers no context regarding the state of the IP range or whether the user should be using this over a similar API such as iaas_allocate_network_ips_by_user.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_release_unregistered_network_ipsC

release unregistered network IPs POST /iaas/api/network-ip-ranges/{id}/unregistered-ip-addresses/release

NameRequiredDescriptionDefault
idYesThe ID of the network IP range. (path)
bodyYesSpecification for releasing ip addresses managed by the user — Release IP Address Specification
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, openWorldHint=true, idempotentHint=false, and destructiveHint=false, so the safety profile is covered. However, the description adds only the REST endpoint and does not explain what releasing does, whether it is reversible, what permissions are needed, or how the IPs return to the pool.

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 very short and front-loads the action and resource, with no filler. The endpoint line is mostly implementation detail for an agent, but overall the structure is tight and readable.

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 operation with a nested body object, no output schema, and related sibling tools, yet the description does not cover usage context, side effects, permissions, or return behavior. The schema and annotations cover some ground, but the description is too sparse for the operation's 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%, and the required id and body parameters are already documented in the schema. The description adds little beyond the path containing {id}, so the baseline score of 3 is appropriate when the schema carries the parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: "release unregistered network IPs", and the endpoint path reinforces the target network IP range. It does not distinguish this tool from the related sibling iaas_release_network_ips_by_user, so it falls short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as iaas_release_network_ips_by_user, iaas_allocate_network_ips_by_user, or the allocated/released IP lookup tools. The endpoint alone does not tell an agent which situation should select this operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_replace_storage_profileC
Idempotent

Replace storage profile Replace storage profile with a given id PUT /iaas/api/storage-profiles/{id}

NameRequiredDescriptionDefault
idYesThe ID of the storage profile. (path)
bodyYesRepresents a specification of generic storage class. — StorageProfileSpecification
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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=true, destructiveHint=false and openWorldHint=true, so the safety profile is known. The description adds nothing behavioral: for a PUT-style replacement it never states that omitted fields in the body may be reset/removed, what permissions are needed, or what the effect on in-flight deployments is. With annotations covering the basics, a low score reflects zero added context for a full-replacement 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?

It is very short, but the second sentence duplicates the first almost verbatim and the third is just the HTTP path, so a third of the content is redundant rather than informative. The verb is front-loaded, which is the only structural 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?

The tool takes a large nested specification object and performs a full replacement, yet the description never explains replace-vs-patch semantics, required vs optional body fields, or consequences for omitted fields. With no output schema and no annotations covering mutation effects, the description leaves the agent guessing on the most consequential aspect 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% and every field (id, body and its nested StorageProfileSpecification properties, apiVersion) is documented in the schema, so the baseline of 3 applies. The description does not explain the replacement semantics of the required body — which matters given that name, regionId and defaultItem are mandatory — nor does it explain the apiVersion 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 a verb ("Replace") and resource ("storage profile") and gives the REST endpoint PUT /iaas/api/storage-profiles/{id}, so the basic operation is identifiable. However, the second line only restates the first with the word "id" added, and it does nothing to distinguish this generic replacement from the many sibling storage-profile tools (iaas_update_aws_storage_profile, iaas_update_vsphere_storage_profile, iaas_update_storage_profile_associations, iaas_create_storage_profile).

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 at all — no indication of when an agent should replace a generic storage profile rather than one of the provider-specific update tools or iaas_update_storage_profile_associations. Only the HTTP path is given, which is not usable selection guidance for an agent picking among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_reserve_packageA

Reserve package This operation has two purposes: 1. Make initial request for importing package. Location of the new package is returned as a response header if body is not provided. 2. Finalize the import when all batches are sent to the server if bundleIdis provided or make the complete import if compressedBundle is provided This API implements the TUS RFC: https://github.com/tus/tus-resumable-upload-protocol/blob/main/protocol.md POST /iaas/api/integrations-ipam/package-import

NameRequiredDescriptionDefault
bodyNoPackage import request specification
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
Tus-ResumableYesTus version (header)
Upload-LengthYesLength of file in bytes (header)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, destructive=false, idempotent=false, so the safety bar is covered; the description adds valuable behavior beyond that—the TUS resumable protocol, the location returned as a response header on the bodyless initial call, and non-idempotent multiphase semantics. It does not disclose auth requirements or the consequence of the OVERWRITE option, which is a gap.

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 reasonably short but structurally messy: a weak 'Reserve package' opener, run-on sentences without punctuation, a typo ('bundleIdis'), and a proofreading inconsistency ('bundleIdis') that can impede parsing. The valuable conditional logic is buried mid-paragraph 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 mutation tool with no output schema, it covers the essential pieces: multiphase flow, response-header location, protocol reference, and per-branch parameter meaning. It lacks error/failure behavior, permission prerequisites, and the overwrite consequences of the body option, so it is strong but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (baseline 3), but the description earns above baseline by explaining how body absence, bundleId, and compressedBundle each change the operation's meaning—context the schema's terse 'Package import request specification' does not provide.

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 two-phase purpose (initial import request returning a location header, and finalizing/completing the import) and ties it to the TUS resumable upload protocol. It is clear, though the name 'reserve package' and title don't obviously map to 'package import', and it never distinguishes itself from the nearby iaas_import_package sibling.

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 explicit mode-selection logic: no body for the initial request, bundleId when all batches are sent, compressedBundle for a complete single-shot import. That is real when-to-use guidance, but it never says when to prefer this over iaas_import_package or iaas_import_package_http_method_override.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_reset_machineC

Reset operation for machine Second day reset operation for machine POST /iaas/api/machines/{id}/operations/reset

NameRequiredDescriptionDefault
idYesThe id of the Machine. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare non-readonly, non-idempotent, non-destructive and open-world, so the description's only added context is the cryptic line 'Second day reset operation for machine'. It never says what a reset actually does to the guest (hard reset vs graceful, data-loss risk, whether it waits for completion), which matters for a mutation tool with non-idempotent semantics and 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?

Very short, but the two lines say essentially the same thing, and the raw 'POST /iaas/api/machines/{id}/operations/reset' duplicates what the annotation title already contains. Several words could be spent instead on the reset-vs-reboot distinction.

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 tool in a dense family of machine power-operation siblings, with no output schema, the description omits state requirements, effect on the guest OS, and differentiation from neighbours. An agent could call it, but has no basis to know whether it should.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 machine id and the optional apiVersion are already documented in the schema. The description only restates the path template ending in {id}, adding no format, constraint, or versioning guidance beyond the schema text.

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 (reset) and resource (machine), so the basic action is identifiable. But the sibling set contains iaas_reboot_machine, iaas_restart_machine, iaas_power_off_machine and iaas_shutdown_machine, and nothing here says how a reset differs from a reboot or restart, leaving the agent unable to pick correctly among near-identical operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not-to-use, or prerequisite information is given. There is no mention of the obvious alternatives (reboot/restart/power cycle) or of any required machine state before a reset can be issued.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_resize_block_deviceC

Resize BlockDevice Resize operation on block device. POST /iaas/api/block-devices/{id}

NameRequiredDescriptionDefault
idYesThe ID of the block device. (path)
useSdrsNoOnly applicable for vSphere block-devices deployed on SDRS cluster. If set to true, SDRS Recommendation will be used for resize operation.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
capacityInGBYesResize Capacity in GB

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, openWorldHint=true, so the agent knows this is a non-idempotent mutation. The description adds nothing beyond that: it does not say whether capacity can be shrunk, whether the device or attached machine must be in a particular state, or what happens on failure. 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loaded, but two of the three lines are redundant: the second restates the first and the third repeats the endpoint already given in the annotations title. Nothing is long-winded, but little of the text earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema and no operational detail, the description is too thin. An agent cannot tell from it what a successful resize returns, whether quota/SDRS constraints apply (only hinted at in the schema), or how long the operation takes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and all four parameters (id, capacityInGB, useSdrs, apiVersion) carry clear descriptions, so the schema does the work. The description contributes no additional parameter meaning, which matches the baseline of 3 when structured fields are already complete.

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 says "Resize BlockDevice" and "Resize operation on block device," which only restates the tool name and title without adding scope or detail. It never explains what resizing means here (capacity change, provider constraints) or how it differs from siblings such as iaas_resize_machine or iaas_create_block_device.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives in a list containing iaas_resize_machine and iaas_delete_block_device. The only extra content is the REST path, which does not help an agent decide when to select this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_resize_machineC

Resize operation for machine Second day resize operation for machine POST /iaas/api/machines/{id}/operations/resize

NameRequiredDescriptionDefault
idYesThe id of the Machine. (path)
cpuCountNoThe desired number of CPUs to resize the
coreCountNoThe desired number of cores per socket to resize the Machine
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
flavorNameNoThe desired flavor to resize the Machine.
memoryInMBNoThe desired memory in MBs to resize the Machine
rebootMachineNoOnly applicable for vSphere VMs with the CPU Hot Add or Memory Hot Plug options enabled. If set to false, VM is resized without reboot.

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, destructive=false, idempotent=false, openWorld=true, so the safety profile is partly covered. But the description adds nothing beyond that: it doesn't mention whether the operation is asynchronous, whether the machine must be powered off, or what happens on failure — all critical for a non-idempotent 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 middle line 'Second day resize operation for machine' is redundant and unclear rather than informative, and the endpoint line is metadata rather than guidance. Front-loaded purpose is fine but one of three lines doesn't 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 mutation tool with no output schema and no description of async behavior, power-state prerequisites, or return/error semantics, the description is too thin. It relies entirely on annotations and schema to convey everything an agent needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 including rebootMachine's vSphere hot-add caveat is documented in the schema itself. 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 ('resize operation for machine'), so an agent knows it changes machine compute characteristics. However, 'Second day resize operation' is confusing/unclear filler and the description doesn't distinguish it from siblings like iaas_update_machine or iaas_resize_block_device.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus iaas_update_machine, iaas_resize_block_device, or the power operations. No prerequisites such as machine power state requirements or that resize may require a reboot are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_restart_machineC

Restart operation for machine Second day restart operation for machine POST /iaas/api/machines/{id}/operations/restart

NameRequiredDescriptionDefault
idYesThe id of the Machine. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose readOnly=false, idempotent=false, openWorld=true, and destructive=false. The description adds little beyond restating that this is a restart operation and showing the POST endpoint. It does not mention downtime, asynchronous behavior, required permissions, or what the operation 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 description is short and front-loaded, but the phrase 'Second day restart operation for machine' is redundant and unclear. The endpoint line is useful but the middle line 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?

This is a mutation operation with no output schema and no explanation of whether restart is asynchronous or returns a task/operation. It also fails to differentiate the operation from sibling tools like reboot and reset. Given the potential impact of restarting a machine, more operational context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented in the schema. The description adds no additional meaning about the machine id or apiVersion beyond the endpoint template.

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: restart a machine. The endpoint path reinforces the resource. However, it does not distinguish this operation from closely related siblings such as iaas_reboot_machine or iaas_reset_machine.

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 restart versus reboot, reset, power off, or shutdown. It only identifies the operation and endpoint, leaving selection entirely to the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_retrieve_auth_tokenA

Retrieve AuthToken for local csp users Retrieve AuthToken for local csp users. When accessing other endpoints the Bearer authentication scheme and the received token must be provided in the Authorization request header field as follows: Authorization: Bearer {token} POST /iaas/api/login

NameRequiredDescriptionDefault
bodyYesSpecification for token retrieval request. — CspLoginSpecification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, idempotentHint=false, and openWorldHint=true, consistent with a POST login endpoint. The description adds genuinely useful context beyond annotations: the returned token must be sent as `Authorization: Bearer {token}` on subsequent calls. It does not cover token lifetime or failure behavior, but it is not contradictory.

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 duplicated verbatim, wasting space in an otherwise short description. The header-format detail is useful and front-loaded after that, but the redundancy costs it.

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 a nested required body, a required refreshToken, and no output schema, the description should say more about the returned token (expiry/lifetime, what the response contains). It covers how to use the token but leaves the acquisition prerequisites (where a UI refresh token comes from) and token validity unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 refreshToken ("obtained from the UI") and apiVersion are already documented in the schema. The description adds no parameter-level detail such as where the UI-supplied refresh token comes from in practice or whether apiVersion affects the response. Baseline 3 applies when the schema carries this 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?

States a specific verb and resource ("Retrieve AuthToken") plus a scope qualifier ("for local csp users"). It is clear what the tool does, but it does not differentiate itself from closely related siblings such as identity_get_access_token_with_refresh_token, identity_post_login, or provider_get_token.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: it is for local CSP users, and the second sentence explains what to do with the token afterward. There is no explicit statement of when to prefer this over the identity_* or provider_get_token alternatives, and no prerequisites (e.g., that a refresh token from the UI must already exist).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_revert_disk_snapshotC

Revert snapshot operation for Block device Second day revert snapshot operation for Block device POST /iaas/api/block-devices/{diskId}/operations/revert

NameRequiredDescriptionDefault
idYesSnapshot id to revert.
diskIdYesThe id of the Disk. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.7/5.0
Behavior2/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), so the bar is lower, but the description adds nothing beyond them. It does not disclose that a revert typically overwrites current disk contents, whether the operation is asynchronous, or what happens to data written after the snapshot.

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 a full line on a duplicated, malformed sentence ('Second day revert snapshot operation for Block device') that conveys nothing. The useful content is a fragment plus an endpoint path, with no structure around behavior.

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 mutating operation with no output schema and no annotation depth about side effects, yet the description says nothing about the result, async behavior, or required state of the disk. For a destructive-in-effect revert, that leaves an agent under-informed before invoking it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with 'id' documented as the snapshot id and 'diskId' as the disk path parameter, so the schema carries the semantics. The description adds no extra meaning about the relationship between snapshot and disk, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource ('Revert snapshot operation for Block device') and the POST path identifies the exact endpoint, distinguishing it from the sibling iaas_revert_machine_snapshot. The second line ('Second day revert snapshot operation for Block device') is a garbled near-duplicate that adds no clarity, keeping 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 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 alternatives such as iaas_revert_machine_snapshot or iaas_delete_block_device_snapshot, and no prerequisites (e.g., disk must be powered off) are stated. The agent must infer usage entirely 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.

iaas_revert_machine_snapshotC

Revert snapshot operation for machine Second day revert snapshot operation for machine POST /iaas/api/machines/{id}/operations/revert/{snapshotId}

NameRequiredDescriptionDefault
idYesThe id of the Machine. (path)
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
snapshotIdYesSnapshot id to revert. (path)

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, which is the only behavioral signal available. The description adds nothing about what state the machine is left in after reverting, whether the operation is asynchronous, or whether it discards current disk state — all critical for a revert operation the agent is told is non-destructive.

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?

Three lines, one of which is a near-duplicate of the first with the nonsensical prefix 'Second day' — wasted tokens in the most prominent position. The actual endpoint, the only useful non-redundant content, is relegated to the last 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?

With 100% schema coverage, 3 required params, no output schema, and annotations carrying the safety profile, the definition is functionally callable. But it omits everything an agent needs to reason about consequences of a revert, which is a meaningful gap for a state-changing machine 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 id, snapshotId, and apiVersion are each documented in the schema. The description adds no syntax, format, or constraint detail beyond restating the resource name and path — 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?

States the verb+resource ('Revert snapshot ... for machine') and includes the REST path, so the intent is discernible. However, the second sentence 'Second day revert snapshot operation for machine' is meaningless filler that adds no information, and nothing distinguishes it from siblings like iaas_revert_disk_snapshot or iaas_create_machine_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?

No guidance on when to use this versus iaas_revert_disk_snapshot, iaas_create_machine_snapshot, or the power/reset machine operations. No prerequisites (machine must be powered off? snapshot must be current?) and no exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_run_endpoint_health_checkC

Starts cloud account health check Starts cloud account health check identified by its endpoint state POST /iaas/api/cloud-accounts/{id}/health-check

NameRequiredDescriptionDefault
idYesThe ID of the Cloud account (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
periodicHealthCheckIdNoIf query param is provided then the endpoint health check is not started manually from the UI, but after a scheduled process.

TDQS

C2.8/5.0
Behavior2/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 write. The description adds only that it starts a check, without disclosing whether the operation is asynchronous, returns a request tracker, or what state the account must be in. Beyond the annotations, almost nothing is added.

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 the action is front-loaded, but the first and second lines are near-duplicates that restate the same action, wasting half the text. The raw HTTP route at the end is of limited value to an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description does not say what the call returns (request tracker, task ID, status) or how long the check takes. For an async-triggering operation, this leaves significant gaps an agent needs to interpret 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?

With 100% schema description coverage, the schema already documents id, apiVersion, and periodicHealthCheckId. The description only vaguely gestures at the id ('identified by its endpoint state') and says nothing about the manual versus scheduled semantics of periodicHealthCheckId, so it does not add meaning over 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 first line states a specific verb and resource: starting a cloud account health check. It is distinguishable from the many sibling get_/delete_ cloud account tools since none of them trigger a health check. However, the second line's phrasing 'identified by its endpoint state' is awkward and obscures what the id actually identifies.

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 never says when to use this tool versus alternatives, nor mentions prerequisites such as a valid existing cloud account or the distinction between manually triggered and scheduled health checks. The periodicHealthCheckId parameter implies a scheduled-vs-manual distinction that the description does not explain.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_scale_load_balancerC

Scale operation for load balancer Second day scale operation for load balancer POST /iaas/api/load-balancers/{id}/operations/scale

NameRequiredDescriptionDefault
idYesThe ID of the load balancer. (path)
bodyYesLoad balancer configuration. — LoadBalancer Specification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, so the safety profile is partly covered. The description adds nothing beyond restating the endpoint: it does not say this is a mutation that reconfigures an existing LB, does not mention that it is a long-running/asynchronous operation (the /operations/ path implies that), nor what happens to existing NICs/routes not included in the body.

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, which is good, but the first two lines are near-duplicates ('Scale operation for load balancer' / 'Second day scale operation for load balancer') and the endpoint line is redundant with the annotation title. Roughly half of the text carries no 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?

This is a mutation with a large nested body schema, three required nested objects, no output schema, and no annotation-level indication of async/long-running behavior. For that complexity the description is far too thin: an agent gets no signal about what a successful call returns (a request tracker?), how to check completion, or what the scaling effect on existing resources will be.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 and nested field is already documented in the schema and baseline 3 applies. The description contributes no additional parameter guidance — it never clarifies that the body appears to require a full load balancer specification (name, nics, projectId, routes) rather than just the fields being changed.

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 verb (scale) and a resource (load balancer) plus the underlying endpoint, so the general intent is inferable. However, 'Scale operation for load balancer' / 'Second day scale operation' is vague about what scaling actually means here (adding NICs? changing routes? changing type?), and it does not distinguish this tool from the sibling load balancer tools (iaas_create_load_balancer, iaas_delete_load_balancer, iaas_delete_load_balancer_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?

There is no explicit when-to-use, when-not-to-use, or prerequisite information. The agent has to infer from the name alone that this is the day-2 mutation for resizing/reconfiguring an existing load balancer, and nothing tells it whether a scaled operation must be followed by polling a request tracker or how it differs from a plain update.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_shutdown_machineC

Shut down operation for machine Second day shut down operation machine POST /iaas/api/machines/{id}/operations/shutdown

NameRequiredDescriptionDefault
idYesThe id of the Machine. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, idempotentHint=false and openWorldHint=true, so the safety profile is partly covered. The description adds nothing beyond that: it does not say whether the shutdown is graceful or forced, whether it is asynchronous and returns a request tracker, or what happens to the guest OS state. The stray "Second day shut down" line is noise rather than 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?

The text is very short, but the middle line is incoherent filler and the raw HTTP path duplicates what the annotations title already conveys. Front-loading the intent is fine; the extra line 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?

This is a state-changing machine operation with no output schema and no description of the result (task/request id), timeout, or permission requirements. Given the complexity of a power-state mutation and the crowded sibling set, the definition is too thin for an agent to invoke 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?

With schema description coverage at 100%, the schema already documents both the required machine id and the optional apiVersion. The description only echoes the {id} path parameter embedded in the POST route and adds no format or constraint detail beyond it, so the baseline of 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 line, "Shut down operation for machine," states a recognizable verb and resource, but the second line ("Second day shut down operation machine") is garbled and adds no meaning. With siblings like iaas_power_off_machine, iaas_suspend_machine, iaas_reset_machine and iaas_reboot_machine in the same family, the description never distinguishes this shutdown operation from those closely related ones.

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 rather than iaas_power_off_machine or iaas_suspend_machine, and no prerequisites are given (e.g. the machine must be powered on). The agent must infer all usage conditions 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.

iaas_suspend_machineC

Suspend operation for machine Second day suspend operation for machine POST /iaas/api/machines/{id}/operations/suspend

NameRequiredDescriptionDefault
idYesThe id of the Machine. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, destructiveHint=false, openWorldHint=true, so the safety profile is known. The description adds only the raw POST endpoint and does not explain what "suspend" does to guest state (paused vs powered off, memory retained?), how it is reversed, or whether in-flight workloads are affected — the exact context an agent needs for a non-idempotent mutation.

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 dominated by a duplicated, near-verbatim line ("Suspend operation for machine" / "Second day suspend operation for machine") and a bare endpoint URL. It is short but wasted, and the useful information — what suspending means — is absent.

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 non-idempotent, non-destructive state-changing operation with no output schema and a crowded set of power-state siblings. The definition omits reversibility, resulting machine state, permission needs, and error behavior, leaving the agent unable to predict consequences or verify success.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both the machine id and apiVersion are already documented in the schema. The description only restates the id via the '{id}' path template and adds nothing about id format or version-negotiation behavior, 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 line names a verb and resource ("Suspend operation for machine"), so the basic intent is recoverable, but it gives no clue how suspend differs from the many adjacent siblings such as iaas_shutdown_machine, iaas_power_off_machine, and iaas_reset_machine. The second line ("Second day suspend operation for machine") is garbled and adds confusion rather than discrimination.

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 shutdown/power-off/restart, no prerequisites, and no exclusion of the already-suspended case. The agent has to infer everything about tool selection 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.

iaas_unregisterC

Unregister a vSphere provisioned machine POST /iaas/api/machines/{id}/operations/unregister

NameRequiredDescriptionDefault
idYesThe id of the vSphere machine. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (readOnly=false, destructive=false, idempotent=false, openWorld=true), so the description only needs to add context — but it adds nothing beyond restating the REST path. It does not explain the key behavioral question for this operation: whether the underlying VM is destroyed or merely detached from inventory, or what happens to associated network IPs (cf. sibling iaas_release_unregistered_network_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 lines with the action front-loaded. The second line duplicates the annotation title verbatim, so it is redundant rather than wasteful, but the whole thing is appropriately sized.

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 operation with no output schema, the description should clarify the effect of unregistering and whether it is recoverable. Neither is present, leaving the agent unable to predict outcomes or side effects before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 (id, apiVersion) are documented in the schema, so the baseline of 3 applies. The description adds no additional meaning about the id's semantics or versioning behavior beyond what the schema already states.

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 specific verb ('Unregister') and resource ('vSphere provisioned machine'), so the basic action is inferable. However, 'unregister' is an ambiguous term in this API surface and the description never distinguishes it from close siblings like iaas_delete_machine or iaas_suspend_machine, nor does it say what unregistering leaves behind.

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 delete/suspend/power-off siblings, no prerequisites, and no exclusions. The agent must infer the choice purely from the tool name and must guess at consequences.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_avi_lb_cloud_account_asyncB

Update AVI Load Balancer cloud account asynchronously PATCH /iaas/api/cloud-accounts-avilb/{id}

NameRequiredDescriptionDefault
idYesCloud account id (path)
bodyYesSpecification for an AVI Load Balancer cloud account.A cloud account identifies a cloud account type and an account-specific deployment.Updating the hostname to use a different endpoint is not recommended and should be avoided. — AVI Load Balancer cloud account details to be updated
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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's one real addition is 'asynchronously', which signals the caller must poll a request tracker rather than expect an immediate result — useful, but it stops there: no mention of what the operation replaces, why it is not idempotent, or how to follow up on the async request.

Agents need to know what a tool does to the world before 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 terse lines, front-loaded with the verb and resource, with the raw endpoint as supporting detail. Nothing is repeated and nothing is padding.

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?

Mutation with no output schema; annotations and a fully documented 3-parameter schema cover most of what an agent needs. The gap is the async follow-up: the description says the operation is asynchronous but never points at the request-tracker tool or says what a caller gets back, which is the one thing an agent cannot derive from structured fields 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 three top-level parameters (id, apiVersion, body) and the nested body fields are fully documented in the schema. The description adds no parameter-level meaning beyond that, which is the correct baseline-3 case 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 (update), a specific resource (AVI Load Balancer cloud account) and the HTTP verb/path, which tells the agent exactly which mutation this is. It is distinguishable from the sibling create/delete/get AVI LB tools 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?

No guidance on when to use this tool versus iaas_create_avi_lb_cloud_account_async, iaas_delete_avi_lb_account_async, or the generic iaas_update_cloud_account_async. Nothing about prerequisites, required permissions, or which fields can safely be changed; the agent must infer everything from the name and schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_aws_cloud_account_asyncC

Update AWS cloud account PATCH /iaas/api/cloud-accounts-aws/{id}

NameRequiredDescriptionDefault
idYesCloud account id (path)
bodyYesAWS cloud account details to be updated
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare non-read-only, open-world, non-idempotent, and non-destructive behavior. The description adds only the PATCH endpoint, which is also present in the annotation title, and does not explain async behavior, side effects, authorization needs, or what the update changes.

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. The PATCH path line is redundant with the annotation title and schema path, but there is no unnecessary 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?

For an asynchronous AWS cloud-account mutation, the description does not explain that the operation is async, what response or tracking identifier to expect, or how updates affect the account. The rich schema covers parameters and annotations cover safety, but the async execution model remains undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, including nested body fields such as regions, tags, and IAM role details. The description adds no parameter-level meaning beyond that, 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: 'Update AWS cloud account.' It distinguishes the AWS-specific update from create/delete/get tools and from generic cloud-account updates, but it does not explain the 'async' aspect or when to choose it over the generic update sibling.

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 only the operation and the PATCH endpoint. It gives no guidance on when to use this tool versus iaas_update_cloud_account_async, create, delete, or get tools, and it does not mention prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_aws_storage_profileC

Update AWS storage class PATCH /iaas/api/storage-profiles-aws/{id}

NameRequiredDescriptionDefault
idYesThe ID of the storage class. (path)
bodyYesRepresents a specification of AWS storage class. — StorageProfileAwsSpecification
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, destructiveHint=false, and openWorldHint=true. The description adds only that this is a PATCH update to an AWS storage class, without explaining update semantics, required prerequisites, or what aspects of the profile are modified.

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 resource, followed by the endpoint. It contains no filler, though it is arguably too terse to be maximally helpful.

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 body and no output schema, yet the description does not clarify PATCH semantics, required body fields, or what happens to unspecified fields. The rich input schema helps, but the description leaves meaningful operational context unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 the id, body, and all nested storage-profile fields. The description adds no parameter-level meaning 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: 'Update AWS storage class', with the endpoint path reinforcing the AWS storage profile scope. It is clear enough to distinguish from create/delete/get AWS storage profile siblings, though it does not explicitly call out those alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as iaas_replace_storage_profile or the create/delete AWS storage profile tools. The description supplies only the HTTP method and path, leaving usage decisions to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_azure_cloud_account_asyncC

Update Azure cloud account PATCH /iaas/api/cloud-accounts-azure/{id}

NameRequiredDescriptionDefault
idYesCloud account id (path)
bodyYesAzure cloud account details to be updated
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare non-read-only, open-world, non-idempotent, non-destructive behavior. The description adds little beyond the endpoint path: it does not explain the asynchronous nature of the operation, how to track the request, or the sensitivity of the credential fields. It does not contradict 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 short and front-loaded with the action, with no wasted prose. The PATCH endpoint line is somewhat redundant with the annotation title, but the entry remains 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?

Given that this is an asynchronous mutation tool with sensitive nested credential parameters and no output schema, the description is under-informative. It omits that the operation is async, what the caller should expect to receive, and how to track completion.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents all parameters in detail. The description adds no parameter-specific semantics beyond the endpoint path, 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?

The description states a specific verb and resource: 'Update Azure cloud account', and adds the PATCH endpoint path. It is clear what the tool does, but it does not explicitly distinguish itself from sibling update tools such as iaas_update_cloud_account_async or the AWS/GCP equivalents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, when not to use it, or what prerequisites are required. It only implies that it updates an existing Azure cloud account.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_azure_storage_profileC

Update Azure storage class PATCH /iaas/api/storage-profiles-azure/{id}

NameRequiredDescriptionDefault
idYesThe ID of the storage class. (path)
bodyYesRepresents a specification of Azure storage class. — StorageProfileAzureSpecification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond the endpoint path (which is duplicated in the annotation title) – notably silent on whether this is a merge/PATCH-partial or a full-spec replacement, even though the body schema requires name and regionId.

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 resource, no filler. Only deduction is the 'storage class' vs 'storage profile' wording, which is imprecision rather than verbosity.

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-object body, the schema plus annotations carry most of the load, so the definition is minimally sufficient. However, it omits replacement semantics, whether unspecified fields are cleared, and any hint about the required name/regionId pair – details that matter for calling a PATCH 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 the nested body fields (diskType, osDiskCaching, storageAccountId, etc.) and the path id are fully documented in the schema. The description contributes nothing beyond that, so the baseline of 3 is appropriate rather than higher.

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 Azure storage class') plus the underlying endpoint, and the 'Azure' qualifier distinguishes it from the AWS/vSphere/GCP update siblings. Minor friction: it says 'storage class' where the tool name and schema say 'storage profile', a terminology mismatch an agent must reconcile.

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 prerequisites (e.g., fetch the existing profile first, or that id comes from iaas_get_azure_storage_profiles), and no mention of alternatives such as iaas_replace_storage_profile or the related Azure create/delete tools. The agent must infer all routing from sibling names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_cloud_account_asyncC

Update CloudAccount Update a single CloudAccount PATCH /iaas/api/cloud-accounts/{id}

NameRequiredDescriptionDefault
idYesThe ID of the cloudAccount (path)
bodyYesSpecification for a generic cloud account.A cloud account identifies a cloud account type and an account-specific deployment region or data center where the associated cloud account resources are hosted.Updating the hostname to use a different endpoint is not recommended and should be avoided. — Cloud account details to be updated
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, destructiveHint=false and openWorldHint=true, so the safety profile is covered elsewhere. The description adds nothing beyond restating the operation: it does not explain what is replaced versus patched, that the 'async' suffix implies a request tracker must be polled, or that omitting optional body fields may have 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loaded, but the first two lines are near-duplicates ('Update CloudAccount' / 'Update a single CloudAccount') and the third is just the HTTP route. Little of the text earns its place, though nothing is bloated.

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 on a complex nested body with no output schema, and the description says nothing about return shape, async operation tracking, reversibility, or error modes. Given the tool's complexity, the definition is substantially under-specified even accounting for the rich 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 the nested body properties (regions, privateKey, certificateInfo, associatedMobilityCloudAccountIds) are all documented in the schema. The description introduces no additional meaning about the id path parameter or the version requirement, 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 and resource ('Update a single CloudAccount'), so an agent knows this is a mutation of a cloud account record. It does not, however, differentiate itself from provider-specific siblings such as iaas_update_aws_cloud_account_async or iaas_update_vsphere_cloud_account_async, which is the key ambiguity 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 guidance on when to use this generic update versus the many provider-specific update siblings, nor on prerequisites such as the account type or required permissions. The only usage signal is the raw PATCH path, which is structural rather than advisory.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_custom_nameC
Idempotent

Update custom name PUT /iaas/api/naming

NameRequiredDescriptionDefault
bodyYesCustom Name specification
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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=true, destructiveHint=false and openWorldHint=true, so safety is covered. The description adds nothing beyond repeating the endpoint already present in the annotation title; it does not disclose PUT full-replacement semantics (e.g., whether omitted templates are removed), permission requirements, or side effects. 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short lines with the action front-loaded and no filler, which is structurally sound. The brevity, however, comes from under-specification rather than from information density.

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 with a deeply nested body object and no output schema, and the description leaves key questions unanswered: what a custom-name record governs, whether PUT replaces the whole spec, and what happens to projects/templates not included. For a tool of this complexity the description 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 reported as 100% at the top level, so the baseline is 3. The description adds no meaning about the nested body contents (id, name, projects, templates, description) or the apiVersion format, but the schema constrains those fields, so this is adequate rather than deficient.

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 specific verb and resource ('Update custom name') and gives the backing endpoint, so the basic operation is identifiable. However, it never explains what a 'custom name' object is (naming patterns/templates for resources) and does nothing to distinguish it from siblings like iaas_create_custom_name, iaas_get_custom_name, or iaas_delete_customname.

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 the create/get/delete custom-name siblings, no prerequisites, and no note on whether the target id must already exist. The agent must infer usage 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.

iaas_update_external_network_ip_rangeC

Update external IPAM network IP range. Assign the external IPAM network IP range to a different network and/or change the tags of the external IPAM network IP range. PATCH /iaas/api/external-network-ip-ranges/{id}

NameRequiredDescriptionDefault
idYesThe ID of the external IPAM network IP range. (path)
bodyYesSpecification for updating an ExternalNetworkIPRange — External IPAM network IP range specification
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.9/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, open-world, non-idempotent, non-destructive mutation. The description adds useful context about assigning the range to a different network and/or changing tags, but it does not explain side effects, permission requirements, or what happens to existing associations. It also mentions tag changes that the schema does not expose.

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: it states the update operation first, then specifies the intended effects, then gives the underlying PATCH endpoint. There is little wasted text, though the unsupported tag claim reduces reliability.

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 body and no output schema, the description should make the observable change clear. The annotations cover the safety profile, but the description omits permissions and side effects, and it incorrectly suggests tag changes are supported when the body only accepts fabricNetworkIds.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents id, body, fabricNetworkIds, and apiVersion. The description does not name or clarify those parameters, and its reference to changing tags is misleading because the body schema contains no tags field. This earns below the high-coverage baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: update an external IPAM network IP range. It also distinguishes the operation from read-only and delete siblings by saying it assigns the range to another network and/or changes tags. However, the mention of changing tags is not supported by the input schema, which slightly muddies the stated 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?

The description implies this is the tool for updating an external network IP range, but it gives no explicit when-to-use guidance. It does not compare it with alternatives such as iaas_update_internal_network_ip_range, nor does it mention prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_fabric_computeA

Update fabric compute. Update fabric compute. Only tag updates are supported. PATCH /iaas/api/fabric-computes/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Fabric Compute. (path)
bodyYesSpecification for updating a FabricCompute — Fabric Compute Specification
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

A3.6/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 PATCH, so the safety profile is covered. The description adds genuinely new behavioral context by declaring that only tag updates take effect, which matters because the schema also exposes CPU/memory allocation fields that will not be honored. It does not explain what happens if unsupported fields are supplied or what the 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three lines with the first two saying the same thing ('Update fabric compute.' twice), which wastes the most prominent position. The useful constraint sits in the middle rather than being front-loaded, and the endpoint line is redundant with the annotation title.

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 nested-body mutation with no output schema, the description covers the key risk (only tags are applied) but leaves gaps: it does not say whether non-tag fields are rejected or silently ignored, nor what the PATCH returns. Given 100% schema coverage and annotations carrying the safety profile, this is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description goes beyond the schema by narrowing the effective parameter surface to the tags array, implicitly warning that maximumAllowedCpuAllocationPercent and maximumAllowedMemoryAllocationPercent in the body are not supported for update. That is a real semantic addition the schema alone does not convey.

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 (fabric compute), and the endpoint line anchors it to PATCH /iaas/api/fabric-computes/{id}. It is clear what the tool does, but it does not differentiate itself from nearby siblings such as iaas_get_fabric_compute or iaas_update_fabric_network, and the purpose sentence is repeated verbatim.

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 tag updates are supported' gives an implied usage boundary: use this when you need to change tags on a fabric compute. However, there is no explicit when-to-use vs when-not, no mention of the read sibling iaas_get_fabric_compute for inspection, and no preconditions such as required permissions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_fabric_networkA

Update fabric network. Update fabric network. Only tag updates are supported. PATCH /iaas/api/fabric-networks/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Fabric Network. (path)
bodyYesSpecification for updating a FabricNetwork — Fabric Network Specification
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the mutation is not read-only, not destructive, not idempotent, and open-world. The description adds useful behavioral scope by stating that only tag updates are supported, preventing an agent from assuming it can update other fabric network fields.

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 first sentence 'Update fabric network.' is repeated verbatim, which wastes space without 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?

The mutation scope is clear and annotations cover the safety profile. Still, for an open-world PATCH operation with a nested body and no output schema, it does not explain whether unspecified fields are ignored, what success returns, or any permission requirements.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the inputs and nested tag body are already documented. The description reinforces that only tags are mutable but does not add syntax or semantics 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 — updating a fabric network — and narrows the operation to tag updates with the PATCH endpoint. It does not differentiate from the sibling `iaas_updatevsphere_fabric_network`, so an agent must infer which fabric network type applies.

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 'Only tag updates are supported' implies this is for metadata/tag changes and not broader network reconfiguration. However, it does not name alternatives or state when to use this instead of the vSphere-specific update sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_fabric_vsphere_datastoreB

Update Fabric vSphere Datastore. Update Fabric vSphere Datastore. Only tag updates are supported. PATCH /iaas/api/fabric-vsphere-datastores/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Fabric Datastore. (path)
bodyYesSpecification for updating a FabricVsphereDatastore — Fabric vSphere Datastore Specification
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 genuinely valuable scope note that only tags are mutated, but it does not address permissions, whether unlisted existing tags are replaced or merged, or what the PATCH 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 constraint is front-loaded, but the first sentence is duplicated verbatim ("Update Fabric vSphere Datastore." twice), wasting space in an otherwise four-line description. The endpoint path is useful context, not 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?

This is a mutation tool with a nested body object and no output schema, so the description carries extra burden. It covers the mutation scope but leaves the important open question — whether the other body properties are ignored or rejected — unresolved, which is exactly what an agent needs before calling 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 coverage is 100%, so all three parameters are documented in structured data. However "Only tag updates are supported" is meaningful beyond the schema because the body schema exposes allocatedNonDiskStorageSpaceBytes and maximumAllowedStorageAllocationPercent as if they were writable, and the description implicitly contradicts that — a clarification that is left ambiguous rather than spelled out.

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 Fabric vSphere Datastore") and adds the scope-limiting constraint "Only tag updates are supported." It does not, however, distinguish this tool from close siblings such as iaas_get_fabric_vsphere_datastore, iaas_update_fabric_network, or iaas_update_fabric_compute, 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?

"Only tag updates are supported" implies the intended use case (tagging) and implicitly excludes other update scenarios, which is useful. But there is no explicit when-to-use/when-not guidance, no pointer to the read sibling for inspecting a datastore first, and no note on whether the other body fields will be ignored.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_flavor_profileC

Update flavor profile PATCH /iaas/api/flavor-profiles/{id}

NameRequiredDescriptionDefault
idYesThe ID of the flavor. (path)
bodyYesFlavorProfile instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
includeCoresNoIf set to true will include cores in response.

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, idempotentHint=false, and openWorldHint=true, so the safety profile is covered by structured data. The description adds nothing further — no note on which fields get overwritten, whether omitted fields are cleared, or what permissions are needed — and its PATCH line merely duplicates the annotation title.

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 only two lines and front-loads the verb, so there is no padding. However, the second line is redundant with the title annotation and the overall text is too thin for a nested-body PATCH operation.

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 required nested object body, 4 parameters, and no output schema; the description provides no guidance on body semantics, partial-vs-full update behavior, or response shape. Given the schema richness, the description would need to explain update semantics to be complete, 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%, so the nested body (name, description, flavorMapping with cpuCount/coreCount/memoryInMB) is fully documented in the schema. The description adds no extra meaning about the path id or the apiVersion/includeCores query parameters, 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 line gives a clear verb+resource ('Update flavor profile'), but the second line is only the raw HTTP method/path, which restates the title annotation rather than adding scope. It never distinguishes this from siblings like iaas_create_flavor_profile, iaas_get_flavor_profile, or iaas_delete_flavor_profile, so an agent must infer the difference from names 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 use this tool versus the create/get/delete flavor-profile siblings, and no preconditions (e.g., that the profile must already exist, or that a full replacement body is required). Usage is implied only by the word 'Update'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_gcp_cloud_account_asyncC

Update GCP cloud account PATCH /iaas/api/cloud-accounts-gcp/{id}

NameRequiredDescriptionDefault
idYesCloud account id (path)
bodyYesGCP cloud account details to be updated
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.9/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 mutation (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true), and the description adds only a restatement of the PATCH path. It does not explain async operation behavior despite the _async suffix, whether the update is partial or full replacement, how required body fields like privateKey are handled, or what the caller should do after invoking 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 extremely short and front-loads the action and resource. The second line mainly restates the HTTP method and path already present in the annotation title, so it is not wasteful but also not highly informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a mutation tool with a nested required body, no output schema, and only basic annotations. The description does not cover async behavior, polling expectations, update semantics, or required credentials beyond naming the resource. For this complexity level, the definition is materially incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including nested objects for tags and regions, so the structured schema already carries parameter meaning. The description adds no additional semantics about the id, apiVersion, or body fields. Baseline 3 is appropriate 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?

The description states a specific verb and resource: 'Update GCP cloud account', and the PATCH path reinforces that this mutates an existing GCP cloud account identified by {id}. It distinguishes itself from non-GCP update tools by naming GCP, but does not explicitly differentiate itself from nearby siblings such as iaas_update_gcp_storage_profile or iaas_update_cloud_account_async.

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. The description does not mention prerequisites, when a create vs. update is appropriate, or how this differs from the generic iaas_update_cloud_account_async or other cloud-account update tools. The endpoint path implies usage but does not guide selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_gcp_storage_profileC

Update GCP storage profile PATCH /iaas/api/storage-profiles-gcp/{id}

NameRequiredDescriptionDefault
idYesThe ID of the storage profile. (path)
bodyYesRepresents a specification of GCP storage class. — StorageProfileGcpSpecification
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, destructive=false, idempotent=false, and openWorld=true, so the safety profile is covered. The description adds essentially nothing beyond the operation name and endpoint, and does not disclose partial-update behavior, side effects, or required 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?

The description is compact and front-loads the operation. However, the second line mainly repeats the HTTP method and path already present in the annotation title, so it is concise but under-informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with a nested required body and no output schema, the description is too thin. It does not clarify whether the PATCH replaces or merges fields, what the update affects, 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%, so the schema already documents the id, body, and nested body fields in detail. The description adds no parameter meaning beyond what the schema provides, which matches the baseline for full 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 states a specific verb and resource: 'Update GCP storage profile'. It distinguishes the GCP variant from AWS, Azure, and vSphere update siblings by name, though it does not clarify how it differs from broader replace or association-update 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 gives no when-to-use guidance beyond the PATCH endpoint. It does not explain when to choose this update operation over create, replace, delete, or storage-profile-association tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_image_profileA

Update image profile Update image profile. All existing image mapping definitions for the specified region will be replaced with the payload provided and if you want to keep the existing definitions, they should be added to the payload. PATCH /iaas/api/image-profiles/{id}

NameRequiredDescriptionDefault
idYesThe ID of the image. (path)
bodyYesImageProfile instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The replace-all semantics for imageMapping in the specified region is the single most important behavioral trait and the description states it explicitly — information the annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false) do not convey. There is mild tension with destructiveHint=false since prior mappings are overwritten, and nothing is said about auth requirements or the response.

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 line "Update image profile" duplicates the opening of the second sentence and earns nothing. The second sentence is a run-on that buries the critical replacement warning mid-string, though the PATCH path at the end is a useful anchor.

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 mutating, nested-body tool with no output schema, the description covers the essential risk (wholesale mapping replacement). Missing are return behavior, whether the response echoes the new profile, and the fact that the region key lives inside imageMapping rather than as a parameter.

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 the schema cannot: the imageMapping object is a full replacement keyed by region, and omitted entries are dropped. That clarifies why the nested structure is required and how the 'region' key in the map should be interpreted.

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 image profile"), but the first line is a bare restatement of the tool name. It does not differentiate itself from nearby siblings such as iaas_create_image_profile, iaas_get_image_profile, or iaas_delete_image_profile, though the name plus verb 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?

It implies correct usage through the strong warning that existing mappings are replaced and must be re-sent to be preserved — that is meaningful 'how to use it correctly' guidance. However, it never states when to prefer this over iaas_create_image_profile or what preconditions exist (e.g., profile must already exist, permissions), and no alternatives are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_integration_asyncC

Update an integration Update a single integration asynchronously PATCH /iaas/api/integrations/{id}

NameRequiredDescriptionDefault
idYesThe ID of the integration (path)
bodyYesIntegration details to be updated
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so safety is covered structurally. The description adds genuinely new information by disclosing the operation is asynchronous, but it omits the consequence of that (job/tracker handle returned, eventual consistency, partial-update vs replace semantics for PATCH).

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?

Three short lines with nothing wasted, but the first two lines are near-duplicates of each other and the third simply restates the annotation title (PATCH /iaas/api/integrations/{id}), so roughly a third of the text is redundant filler.

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, no output schema, and non-idempotent async behavior, the description should explain the async contract and what the caller receives. It provides no return/next-step information, leaving an agent unable to complete the workflow correctly from the description 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 id, apiVersion and the nested body fields are fully documented in the schema itself. The description adds nothing about parameters, which is acceptable at this coverage level but not better than 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 (update) plus resource (a single integration) and notes the asynchronous nature, which no sibling name conveys on its own. It doesn't explicitly contrast with iaas_create_integration_async, iaas_delete_integration, or iaas_get_integration, but the verb makes the distinction 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 choose this over the synchronous alternative or over create/delete siblings, and no prerequisites are stated. The word 'asynchronously' implies a follow-up step but the description never says what an agent must do after calling (poll a request tracker, etc.).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_internal_network_ip_rangeC

Update internal network IP range. PATCH /iaas/api/network-ip-ranges/{id}

NameRequiredDescriptionDefault
idYesThe ID of the network IP range. (path)
bodyYesSpecification for creating or updating a NetworkIPRange — Network IP range Specification
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, destructive=false, idempotent=false, and openWorld=true, and the description adds nothing beyond restating the HTTP method/path that is already the annotation title. It never explains PATCH semantics here — notably that the body schema requires name, startIPAddress, and endIPAddress, so this behaves more like a full replacement of the range than a partial patch — nor what permissions are needed or what happens to omitted fields like tags or fabricNetworkIds.

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 lines with the purpose front-loaded, which is efficient. However, the second line ('PATCH /iaas/api/network-ip-ranges/{id}') duplicates the annotation title verbatim and does not earn its place as 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?

For a mutation tool with a nested body object and no output schema, the description should cover what is replaced versus preserved, whether the call is synchronous, and what the response contains. None of that is present, and the schema alone cannot convey replacement 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%, so the id, body fields, and apiVersion are fully documented in the schema and the baseline of 3 applies. The description adds no meaning about the path id, the required body fields, or the apiVersion 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?

States a specific verb and resource ('Update internal network IP range'), so the agent knows this mutates an existing IP range. It does not distinguish itself from the near-identical siblings iaas_update_external_network_ip_range, iaas_create_internal_network_ip_range, or iaas_get_internal_network_ip_range, leaving the internal/external and create/update/get split 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?

No guidance on when to use this versus the external-network variant, the create variant, or the get variant, and no preconditions such as needing an existing range ID. The only usage signal is the implicit 'update means the resource already exists'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_machineA

Update machine. Update machine. Only description, tag, custom property and bootConfig updates are supported. Please note that all existing tags, assigned to this machine, that are not implicitly added in the Patch body, will be unassigned from this machine!All other properties in the MachineSpecification body are ignored. PATCH /iaas/api/machines/{id}

NameRequiredDescriptionDefault
idYesThe ID of the Machine. (path)
bodyYesMachine Specification
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it warns that any existing tag not included in the patch body is silently unassigned, and that unsupported MachineSpecification fields are silently ignored. This is precisely the non-obvious side effect an agent needs before calling a mutation. It still says nothing about permissions or how the change is observed afterward.

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?

Opening line is duplicated verbatim ('Update machine. Update machine.'), which wastes the most prominent position. The rest is dense and useful, and the critical tag-loss warning is placed mid-sentence with a run-on '!All' artifact that hurts readability.

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 carries the burden of consequence disclosure; it does that well for the tag replacement behavior and the ignored-fields behavior. Missing only auth/permission requirements and whether the response is synchronous, but for a PATCH with rich schema coverage this is close to complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents id, body, tags, bootConfig, description and customProperties. The description confirms which body fields are actually honoured, which adds a little meaning, but no format, merge-semantics or default details 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+resource (update a machine) and immediately narrows scope to description, tags, customProperties and bootConfig. That scope restriction distinguishes it from siblings like iaas_resize_machine, iaas_power_on_machine or iaas_patch_machine_network_interface, though none are 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 description tells the agent what is in-scope for this PATCH and that other fields are ignored, which implies other tools exist for those changes. But it never names an alternative (e.g. resize/power tools) or states prerequisites, so routing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_network_profileC

Update network profile PATCH /iaas/api/network-profiles/{id}

NameRequiredDescriptionDefault
idYesThe ID of the network profile. (path)
bodyYesNetworkProfile specification
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, openWorldHint=true, idempotentHint=false, and destructiveHint=false. The description adds only the HTTP PATCH method, which hints at partial update semantics, but it does not explain what can be changed, whether omitted fields are cleared, or any auth/scope 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 and front-loads the action, but it is essentially a name-plus-endpoint stub. It is not bloated, but it also lacks substantive structure beyond restating the operation and HTTP path.

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 body, many optional fields, and no output schema, the description does not explain PATCH partial-update behavior, required fields like name and regionId, or what happens to unspecified fields. The rich schema helps, but the description remains insufficient for 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%, so the schema documents all parameters and the nested body fields thoroughly. The description adds no parameter meaning beyond the endpoint, but baseline 3 is appropriate when the schema carries the parameter documentation.

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 only restates the tool name ('Update network profile') and its HTTP title ('PATCH /iaas/api/network-profiles/{id}'). It gives the verb and resource but adds no distinguishing detail versus siblings such as iaas_create_network_profile, iaas_delete_network_profile, or iaas_get_network_profile.

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, get, or delete network profile operations. No prerequisites, alternatives, or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_nsx_t_cloud_account_asyncC

Update NSX Manager cloud account PATCH /iaas/api/cloud-accounts-nsx-t/{id}

NameRequiredDescriptionDefault
idYesCloud account id (path)
bodyYesSpecification for an NSX Manager cloud account.A cloud account identifies a cloud account type and an account-specific deployment region or data center where the associated cloud account resources are hosted.Updating the hostname to use a different endpoint is not recommended and should be avoided. — NSX Manager cloud account details to be updated
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description contributes only the HTTP verb and path, and the path is verbatim identical to the annotation title, so nothing new is disclosed — notably the 'async' behavior (that the call returns a request tracker to poll) is never explained.

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 very tight lines with the purpose front-loaded; nothing is padded. The second line is redundant with the annotation title, which is the only wasted space.

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 whose name advertises asynchronous behavior and whose schema includes credential and certificate fields, yet the description never mentions async/polling semantics, auth requirements, or the caution about changing hostName (that note lives only in a schema description). The rich schema compensates for parameters, but the operational picture is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with three required parameters, so the schema already documents id, apiVersion, and every nested body field including dcid, hostName, and certificate handling. The description adds no parameter meaning at all, which matches the baseline 3 for a fully documented 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 NSX Manager cloud account'), which distinguishes it from siblings such as iaas_create_nsx_t_cloud_account_async, iaas_get_nsx_t_cloud_account, iaas_delete_cloud_account_nsx_t, and the other iaas_update_*_cloud_account_async tools. It does not enumerate what is updatable, but the verb+resource pairing 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 statement of when to use this over alternatives, no prerequisite or permission guidance, and no exclusion (e.g., don't use for hostname changes, which the schema hints at). The name implies the usage, but the description adds none of the routing context an agent needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_projectC

Update project PATCH /iaas/api/projects/{id}

NameRequiredDescriptionDefault
idYesThe ID of the project. (path)
bodyYesRepresents a specification for a project. — Project specification
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about
validatePrincipalsNoIf true, a limit of 20 principals is enforced. Additionally each principal is validated in the Identity provider and important rules for group email formats are enforced.

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, idempotentHint=false, and openWorldHint=true, and the description only echoes the endpoint from the annotation title. It omits meaningful behavior for a PATCH-style update: whether omitted fields are preserved or cleared, whether member/viewer arrays are additive or replacing, and whether project configuration requires administrator privileges.

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 lines with no wasted prose, and the action is front-loaded. But the endpoint line largely duplicates the annotation title ("PATCH /iaas/api/projects/{id}"), so part of the already-tiny description earns nothing new.

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 complex mutation with a deeply nested 15+ field body, no output schema, and several sibling update tools that could be confused with it. For that complexity level, the description should explain patch semantics, required permissions, and how it differs from the other project update endpoints — none of which 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% and every body field (members, constraints, placementPolicy, zoneAssignmentConfigurations, etc.) is documented inline, so the schema carries the full burden. The description adds no extra semantics beyond the schema, which meets 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?

States a verb and resource ("Update project") plus the underlying PATCH endpoint, so the basic action is clear. However, it does nothing to distinguish this from close siblings such as iaas_update_project_resource_metadata, iaas_update_project_zone_assignments, project_modify_project, or project_modify_project_principals — an agent cannot tell which project-update surface this covers.

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 the other project-mutation siblings, no prerequisites (e.g. admin role needed to change administrators), and no exclusions. The description is purely a restatement of the operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_project_resource_metadataC

Update project resource metadata Update project resource metadata by a given project id PATCH /iaas/api/projects/{id}/resource-metadata

NameRequiredDescriptionDefault
idYesThe ID of the project. (path)
bodyYesSpecification for resource metadata associated with a project — Project specification
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, idempotentHint=false and openWorldHint=true, so the safety profile is carried structurally. The description adds nothing beyond the endpoint path — notably it does not say whether PATCH-ing tags replaces or merges the existing metadata, which is the single most consequential behavioral question for the caller.

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 the endpoint path is front-loaded, but the first two lines are the same sentence written twice, which is wasted space given how little information is actually conveyed.

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 mutating PATCH with a nested body object, no output schema, and no description of the response or of merge semantics. For a mutation tool with nested parameters, the description leaves a caller unable to predict the effect on existing tags or the returned payload.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 documents id, body.tags (key/value) and apiVersion thoroughly, so the baseline of 3 applies. The description adds no parameter-level meaning, such as whether omitting tags clears them or whether apiVersion is optional in practice.

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 almost verbatim ("Update project resource metadata ... by a given project id") and adds only the HTTP path. It conveys the verb and resource, but never explains what 'resource metadata' actually is (the tag set shown in the schema), and it does not distinguish itself from near-identical siblings such as project_patch_projects_by_id_resource_metadata or iaas_get_project_resource_metadata.

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 use this tool, what preconditions exist (project must exist, project id required), or which sibling to prefer. In a catalog containing both iaas_update_project_resource_metadata and project_patch_projects_by_id_resource_metadata, the absence of routing guidance is a real gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_project_zone_assignmentsB
Idempotent

Update all zone assignments to a project Update all zone assignments to a project asynchronously PUT /iaas/api/projects/{id}/zones

NameRequiredDescriptionDefault
idYesThe ID of the project. (path)
bodyYesZone assignments configuration — List of zones and their respective configurations assigned to a project.
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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=true, destructive=false and openWorld=true, so the safety profile is covered. The description's one genuine addition is 'asynchronously', which tells the agent the call returns before the change is applied — valuable context not in the annotations. However, it does not say how to follow the async operation (e.g. a request tracker) nor what happens to existing assignments that are omitted from the new list.

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 first sentence is repeated verbatim with only 'asynchronously' appended, which is wasted space. The raw PUT path is a useful anchor, but the duplication keeps it from being tight.

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 the schema fully documented, the core is adequate. The remaining gap is operational: for an async, full-replacement mutation on a project's zone assignments, the agent is not told how to confirm completion or that omitting a previously assigned zone effectively removes 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 the nested body schema documents every field (zoneId, cpuLimit, priority, memoryLimitMB, storageLimitGB, maxNumberInstances) with defaults and caveats. The description adds nothing beyond restating the resource, 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 and resource ('Update all zone assignments to a project') and the underlying PUT path, so the agent knows exactly what is being mutated. The word 'all' signals full-set replacement rather than an incremental patch. It does not explicitly distinguish itself from nearby siblings such as iaas_update_zone or iaas_update_project, 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 alternatives, no prerequisites (e.g. project must exist, zones must be registered), and no warning that the call replaces the entire assignment set. The only implicit guidance is the word 'all' and the PUT verb, which the agent must interpret on its own.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_security_groupB

Update security group. Update security group. Only tag updates are supported. PATCH /iaas/api/security-groups/{id}

NameRequiredDescriptionDefault
idYesThe ID of the security group. (path)
bodyYesUpdate Security Group Specification
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

B3.4/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-destructive mutation with idempotentHint=false. The description adds the useful behavioral limitation that only tags can be updated, but it does not clarify whether tag updates replace existing tags, what permissions are required, or what happens to other security group settings.

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 operation, but the first sentence 'Update security group' is immediately repeated, wasting space. The endpoint is useful but the duplication makes it less efficient than it could be.

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 fully described parameters and annotations covering safety traits, the description is largely complete: it identifies the resource, the tag-only scope, and the HTTP endpoint. It could be stronger by explaining tag replacement semantics, but no output schema exists and the core call requirements are clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the id, body, tags, and apiVersion fields are already documented in the schema. The description adds no parameter-specific syntax or meaning beyond the schema and only reiterates that updates are tag-only.

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 security group) and adds the important scope constraint that only tag updates are supported. It does not explicitly name or distinguish itself from similar siblings such as iaas_reconfigure_security_group or iaas_change_security_groups, 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 sentence 'Only tag updates are supported' gives implicit guidance that this tool should not be used for rule or membership changes. However, it does not explicitly say when to use this versus related tools like iaas_reconfigure_security_group, nor does it state prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_storage_profile_associationsC

Update storage profile associations PATCH /iaas/api/storage-profiles/{id}/storage-profile-associations

NameRequiredDescriptionDefault
idYesThe ID of the storage profile. (path)
bodyYesSpecification for updating storage class associations. — UpdateStorageProfileAssociationsSpecification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about2021-07-15

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 and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond the HTTP path: it does not explain that the body's requestType values (CREATE/UPDATE/DELETE) drive per-association mutation, nor what happens to associations not mentioned in the payload.

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 lines with no filler, and the operation statement is front-loaded. However, the first line essentially restates the tool name, and the second is just the REST route, so the payload is thin for the space it takes.

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 body and no output schema, yet the description says nothing about the required request body shape semantics, idempotency behavior, or what the response contains. For a nested-object write operation, that is a significant completeness gap even with full schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the id, regionId, storageProfileAssociations and apiVersion parameters are already well documented in the schema. The description adds no syntax, format, or defaulting detail (e.g. that apiVersion defaults to 2021-07-15), 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: 'Update storage profile associations', including the exact REST endpoint. It is clear enough to act on, but it does not distinguish itself from siblings such as iaas_get_storage_profile_associations or the provider-specific storage profile updaters (iaas_update_aws_storage_profile, etc.).

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 prerequisites, and no mention of when an agent should choose this over iaas_get_storage_profile_associations or the storage-profile update tools. The caller is left to infer usage 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.

iaas_update_vcf_cloud_account_asyncC

Update VCF cloud account PATCH /iaas/api/cloud-accounts-vcf/{id}

NameRequiredDescriptionDefault
idYesCloud account id (path)
bodyYesVCF cloud account details to be updated
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, so safety is partly covered. However, the description never discloses the async nature implied by the tool name (that it returns a request tracker rather than the updated account), nor that the 'PATCH' body actually requires a large set of mandatory fields, which contradicts a typical partial-update assumption.

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 extremely short lines with no filler and the resource is front-loaded, which is good. But the size is driven by under-specification rather than discipline; the endpoint string occupies a third of the available text without adding agent-facing value beyond the 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?

This is a mutating operation with a deeply nested required body and no output schema, yet the description says nothing about return behavior (async request), the effect of omitted fields, or credential/certificate requirements. With annotations covering only generic safety hints, the description is too thin for the tool's 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% and all three parameters (id, apiVersion, body) are documented in the schema, including every nested body property. The description adds no additional meaning about the body's required-field semantics or the apiVersion 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?

The description gives a specific verb and resource ('Update VCF cloud account') plus the underlying endpoint, so the agent knows exactly which resource family is touched. It does not differentiate from near-identical siblings such as iaas_update_vsphere_cloud_account_async or iaas_update_vmc_cloud_account_async beyond the provider token in the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus the create/delete VCF account tools or the other cloud-account update variants. The only implicit cue is the PATCH endpoint, leaving prerequisites (existing account, enumerated regions, valid vCenter/NSX credentials) entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_vmc_cloud_account_asyncC

Update VMC cloud account PATCH /iaas/api/cloud-accounts-vmc/{id}

NameRequiredDescriptionDefault
idYesCloud account id (path)
bodyYesSpecification for a VMC cloud account.A cloud account identifies a cloud account type and an account-specific deployment region or data center where the associated cloud account resources are hosted.Updating the hostname to use a different endpoint is not recommended and should be avoided. — VMC cloud account details to be updated
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare non-read-only, non-idempotent, open-world semantics, so the description owes additional context — and delivers none. Despite "async" in the name and the PATCH being a mutation on a live cloud account, it never explains the async/request-tracker behavior, that a full credential set (apiKey, password, sddcId, hostName, regions) is required and may overwrite stored values, or any auth requirements; the only meaningful safety note (avoid changing hostName) lives in the schema, not 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?

Two short lines with zero filler, but that brevity is under-specification rather than economy: one restates the name and one is a raw HTTP template that duplicates the annotations title. There is no front-loaded explanation of effect or prerequisites.

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 an asynchronous mutation with a 3-param signature wrapping a 17-property nested required body and no output schema, the description leaves critical gaps: what async means for the caller (tracker/request id), that the body schema is effectively a full credential spec with most fields required, and the caution against changing hostName. The complexity demands far more than a path echo.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 every body field is documented inline, so the schema carries parameter semantics fully. The description only implies that {id} is a path parameter via the raw path string and adds no meaning beyond the schema — 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 description states a specific verb+resource ("Update VMC cloud account") which does distinguish it from iaas_update_vsphere_cloud_account_async and iaas_update_aws_cloud_account_async by name alone. However, it adds nothing beyond the tool name and the annotations title (which is literally the HTTP path), so there is no real elaboration of purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance at all. Nothing says how this differs from iaas_update_cloud_account_async, iaas_create_vmc_cloud_account_async, or when to update vs. delete/recreate a VMC account (iaas_delete_vmc_cloud_account, iaas_get_vmc_cloud_account).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_vsphere_cloud_account_asyncC

Update vSphere cloud account PATCH /iaas/api/cloud-accounts-vsphere/{id}

NameRequiredDescriptionDefault
idYesCloud account id (path)
bodyYesSpecification for a vSphere cloud account.A cloud account identifies a cloud account type and an account-specific deployment region or data center where the associated cloud account resources are hosted.Updating the hostname to use a different endpoint is not recommended and should be avoided. — vSphere cloud account details to be updated
apiVersionYesThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, destructiveHint=false, openWorldHint=true, idempotentHint=false, so the safety profile is partly covered. However, the description adds nothing else: the '_async' nature (return of a request tracker, eventual consistency) is never mentioned, nor credential/certificate implications, even though the suffix is the main behavioral trait of 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?

Two short lines, front-loaded, no filler. The endpoint line is largely redundant with the annotation title, which is the only real waste, but nothing bloats the definition.

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 endpoint with a deep nested body, no output schema, and an async contract, the description leaves out everything an agent would need beyond the schema: the meaning of the async response, the schema's own warning that changing hostName is discouraged, and any side effects on regions/zones. The rich schema covers inputs, but behaviorally the definition is 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 description coverage is 100%, so the two path/version params and the heavy nested body (hostName, regions, dcid, certificateInfo, associations) are fully documented in the schema. The description contributes no parameter meaning of its own, so it sits at the baseline of 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 the verb and resource ('Update vSphere cloud account') and adds the raw endpoint, but it is essentially a restatement of the tool name and annotation title. It does not distinguish it from the many sibling update tools (update_aws/azure/gcp/vmc/vcf cloud account, update_vsphere_storage_profile) beyond the resource noun already present in the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the delete/get/create vSphere siblings, no prerequisites (e.g., needing the account id from iaas_get_vsphere_cloud_accounts), and no note about when this async PATCH should be preferred. 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.

iaas_updatevsphere_fabric_networkC

Update vSphere fabric network. PATCH /iaas/api/fabric-networks-vsphere/{id}

NameRequiredDescriptionDefault
idYesThe ID of the vSphere Fabric Network. (path)
bodyYesSpecification for updating a Vsphere FabricNetwork — Vsphere Fabric Network Specification
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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 safety profile is known. The description adds only the raw PATCH path, contributing no context about what is mutated, whether the body is a partial or full replacement, or any required permissions.

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 line restates the HTTP verb and path already present in the annotation title, so it does not fully earn its place. Little is left, but little is given.

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 a nested 10-property body object and no output schema, the description is thin: it does not say whether the body replaces or patches network configuration, nor what the response contains. The fully-documented schema keeps this at a minimum-viable level rather than inadequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the nested body enumerates cidr, tags, gateways, DNS settings and more, so the schema carries the semantics. The description adds nothing about the id path parameter or which body fields are meaningful/optional beyond what is already documented.

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 vSphere fabric network'), which is enough to identify the operation. It does not distinguish this from close siblings such as iaas_update_fabric_network (generic) or iaas_update_fabric_vsphere_datastore, so an agent must infer the vSphere-network specificity 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 use this tool versus alternatives, no prerequisites, and no mention of when not to use it. The agent gets no routing guidance despite several near-identical update_* siblings in the list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_vsphere_storage_profileC

Update vSphere storage profile PATCH /iaas/api/storage-profiles-vsphere/{id}

NameRequiredDescriptionDefault
idYesThe ID of the storage profile. (path)
bodyYesRepresents a specification of vSphere storage class. — StorageProfileVsphereSpecification instance
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the description's only added content is the PATCH path, which merely restates the partial-update nature. It adds nothing about whether omitted fields are reset, whether datastore associations are rebuilt, or what the response contains, which matters for a non-idempotent 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?

Two short lines with no filler and the resource is front-loaded, but the second line is API plumbing (PATCH path) that yields little for tool selection, so brevity here comes at the cost of substance rather than earning 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?

Annotations cover the safety profile and the schema fully documents all three parameters including the nested body, so the essentials are present elsewhere. What is missing is operational context specific to a vSphere storage-profile PATCH: whether the body is a full replacement of the profile specification and whether changes take effect immediately on existing disks.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 deeply nested body specification documents fields such as diskType, storageFilterType and the deprecated datastoreId inline. The description adds no semantics beyond the schema, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a verb (Update) and a provider-qualified resource (vSphere storage profile), which does separate it from the AWS/Azure/GCP storage-profile variants in the sibling list. However, it is essentially a restatement of the tool name plus the HTTP path, and it does not distinguish this operation from close siblings such as iaas_replace_storage_profile or iaas_update_storage_profile_associations, nor say what parts of the profile are actually updatable.

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 replace-vs-patch alternative, and no stated prerequisites (e.g. that the profile must already exist or that the caller needs an authenticated IaaS session). The agent is left to infer usage purely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

iaas_update_zoneC

Update zone PATCH /iaas/api/zones/{id}

NameRequiredDescriptionDefault
idYesThe ID of the zone. (path)
bodyYesSpecification for a zone. — Zone specification
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /iaas/api/about

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, idempotentHint=false, and openWorldHint=true, so an agent knows this is a non-idempotent remote mutation. The description adds nothing beyond restating the endpoint, for example not clarifying whether omitted fields are cleared or preserved (important given PATCH semantics) or whether the update 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short and front-loaded, but that brevity reflects under-specification rather than efficiency. The endpoint path duplicates what the title and annotations already show, so the small amount of text carries little informational value.

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 large nested body schema, no output schema, and no detail on partial-update semantics or what the response contains. The description leaves key questions an agent must answer before invoking it, such as whether required fields must be resent on every PATCH, unaddressed, though the rich schema and annotations do offset some of the burden.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 and nested field (name, regionId, tags, computeIds, placementPolicy, etc.) is already documented in the input schema. The description adds no syntax, format, or field-selection guidance beyond that, so the baseline of 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 is essentially the verb 'Update' plus the resource 'zone', followed by the raw PATCH path. An agent can tell it mutates a zone, but nothing about scope, such as whether it replaces or patches the zone spec, is added beyond the name and 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?

There is no guidance about when to use this over ialas_get_zones, iaas_create_zone, or iaas_update_project_zone_assignments, nor about prerequisites such as zone ownership or project context. The only hint is the HTTP verb PATCH embedded in the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_check_id_tokenA
Read-onlyIdempotent

[DEPRECATED] Check ID Token This API has no analogue in Tenant Manager Display the content of the given ID token with expanded claims if the token is valid.If the token is invalid or expired, an error will be returned.This endpoint should be used to expand the overflow claims in the ID token, if any (like the 'group_names' and 'group_ids' claim).Even though this endpoint can also be used to validate an ID token, it is expected that the client validates an ID token locally instead. ### Access Policy | Role | Access | | ----- | ----- | | Anonymous | ✔️ | GET /oauth/check_id_token

NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/ idempotent/ non-destructive/ openWorld, so the safety profile is covered. The description adds genuine value beyond that: error behavior on invalid or expired tokens, the overflow-claim expansion behavior, and an Anonymous access policy. However, it leaves the most operationally important detail unexplained — how the ID token is presented to a tool with no parameters (presumably an auth header, but that is never stated).

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?

Deprecation and purpose are correctly front-loaded, but the text has a real defect: the sentence 'This API has no analogue in Tenant Manager Display the content...' is missing punctuation and merges two unrelated statements. The markdown access-policy table and the repeated 'GET /oauth/check_id_token' also duplicate what the title annotation already provides.

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 parameters and no output schema, the description carries most of the burden, and it does describe the return content (claims, expanded group_names/group_ids) and failure mode. But the input mechanism for the token is absent entirely, which is a material omission for an agent trying to actually invoke this endpoint.

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?

There are zero parameters and 100% schema coverage, so the baseline is 4. Nothing in the description is needed to explain inputs, though a sentence clarifying that the token is implicit (from the session/auth context) would have resolved the obvious confusion.

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: display the content of the given ID token with expanded claims, erroring if invalid or expired. It also distinguishes itself from the validation use case and notes deprecation with no Tenant Manager analogue. The one gap is that it never explains how the token is supplied to a tool that declares zero parameters.

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 explicit when-to-use ('should be used to expand the overflow claims ... like group_names and group_ids') and when-not-to-use ('client validates an ID token locally instead'), plus a DEPRECATED marker. It stops short of naming any specific sibling as the alternative, because it claims none exists.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_access_token_infoA
Read-onlyIdempotent

[DEPRECATED] Display detailed user information compiled from the user access token and the associated ID token.

GET /csp/gateway/am/api/userinfo

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld, and the description adds meaningful context beyond them: the access policy shows Anonymous has access, and it documents behavioral divergences from the CSP API ('email_verified' not returned, 'sub' contains only the user ID without a ':' separator). It doesn't cover rate limits or caching, but for a read-only GET the disclosure is solid.

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 deprecation warning and alternative are correctly front-loaded, but the body mixes markdown headings, a role/access table rendered with escaped HTML entities, and a divergent-fields paragraph, plus a trailing raw route. Useful content, but the structure is noisy and the access table is marginal for an agent selecting a tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of describing the return value and does so: 'all user related fields (also part of the associated user ID token)' plus group ids and names. Combined with the deprecation status and access policy, an agent has enough to decide and call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing to disambiguate; the baseline of 4 applies. The description instead spends its words on the response shape, which is the relevant semantics for a no-argument call.

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: 'Display detailed user information compiled from the user access token and the associated ID token,' and spells out which fields are included (user fields, group ids and names). It does not explicitly differentiate itself from near-siblings such as identity_get_logged_in_user or identity_get_logged_in_user_details, which leaves some ambiguity.

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?

Opens with an explicit '[DEPRECATED]' marker and a 'Use this API instead: /scim/v2/Users' directive, which is a clear when-not-to-use signal. However, the recommended alternative is an HTTP endpoint rather than a callable sibling tool in this toolset, so the agent gets no routing guidance among the identity_* tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_access_token_pkce_flowB

[DEPRECATED] Exchanges one of the following grants: authorization_code or refresh_token for access token.

Use this API instead: * /oidc/oauth2/token This end-point exchanges one of the following grants: authorization_code, refresh_token, client_credentials for an access token. 1. Include the parameters using application/x-www-form-urlencoded format in the HTTP request body. 2. Include Basic Base64_Encode(client_id:client_secret) value in the HTTP authorization header. Organization ID parameter notes: when organization id is missing from the request the default organization will be used. 3. Upon password grant type, user default organization will be set if available. 4. Upon client_credentials…

POST /csp/gateway/am/api/auth/token

NameRequiredDescriptionDefault
bodyNoThe application/x-www-form-urlencoded form data type. — Content-Type: application/x-www-form-urlencoded

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (readOnlyHint=false, idempotentHint=false, openWorldHint=true), so the bar is lower, yet the description adds substantial operational context: Basic Base64(client_id:client_secret) in the auth header, application/x-www-form-urlencoded body required, and default-organization behavior when org id is omitted. The main flaw is that it is truncated mid-sentence ('Upon client_credentials…'), leaving the client_credentials and client_delegate behaviors unexplained.

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 deprecation notice is usefully front-loaded, but the text then repeats the same sentence (grant types listed twice), restates the endpoint, and ends abruptly with an ellipsis. The duplication and truncation waste space without 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?

Given a nested body schema with full coverage and no output schema, the description supplies the key missing pieces (auth header, content type, org defaults, deprecation). But the truncation means grant types present in the schema (client_delegate/subject_token) go unaddressed in the description, so the picture is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents each body field and the baseline is 3. The description reinforces grant-type-specific org behavior but adds little that is not already in the per-field schema descriptions.

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 states a specific action (exchanging an authorization_code or refresh_token grant for an access token) and names the endpoint, so the core purpose is discernible. However, the tool name says 'pkce_flow' while the description describes only two grant types and a deprecation, and it does not distinguish itself from close siblings like identity_get_access_token_with_refresh_token or identity_get_access_token_with_authorization_request. That leaves an agent unsure which token-exchange 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 '[DEPRECATED]' marker and the explicit pointer to /oidc/oauth2/token give a real when-not-to-use signal, which is valuable. But the recommended alternative is a raw URL endpoint rather than a sibling tool, and there is no guidance on when to prefer this over the several identity_get_access_token_* siblings in the list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_access_token_with_authorization_requestA

[DEPRECATED] Get an access token.

Use this API instead: * /oidc/oauth2/token Exchange authorization code, refresh token or client_credentials to user access token. ### Access Policy | Role | Access | | ----- | ----- | | Anonymous | ✔️ |

POST /csp/gateway/am/api/auth/authorize

NameRequiredDescriptionDefault
bodyNoRequest body

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, openWorldHint=true, idempotentHint=false, and destructiveHint=false, so the safety profile is partly covered. The description adds useful context by noting deprecation and anonymous access policy. It does not discuss token lifetime, security sensitivity, or what the caller receives beyond the token.

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 deprecation and replacement guidance are front-loaded, which is the most important information. The access policy table and repeated endpoint are somewhat noisy, but the description remains reasonably concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a deprecated token-issuing tool with a fully documented nested body, the description provides the critical missing context: deprecation, replacement endpoint, supported grant flows, and access policy. It does not explain return values, but there is no output schema, so that gap is modest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 and their meanings are already documented. The description adds some semantic grouping by mentioning authorization_code, refresh_token, and client_credentials flows, but it does not add operational 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: get an access token via authorization request. It also explains the supported grant flows (authorization code, refresh token, client_credentials). However, it does not differentiate this tool from closely related siblings like identity_get_access_token_with_refresh_token or identity_get_access_token_pkce_flow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly marks the tool as deprecated and points to a replacement API endpoint, which is strong when-not-to-use guidance. It does not name the corresponding MCP sibling tool to use instead, so the agent has to infer the mapping from the endpoint description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_access_token_with_refresh_tokenA

[DEPRECATED] Exchange organization scoped API-token for user access token.

Use this API instead: * /oidc/oauth2/token **To obtain the access token please follow the steps described in the official product documentation. Using the token generated by the Identity Service API alone will not work due to a missing internal state.**DEPRECATED: Passing the refresh_token param name, need to use api_token. ### Access Policy | Role | Access | | ----- | ----- | | Anonymous | ✔️ |

POST /csp/gateway/am/api/auth/api-tokens/authorize

NameRequiredDescriptionDefault
bodyNoThe application/x-www-form-urlencoded form data type.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is partly covered. The description adds non-obvious context beyond that: the deprecation status, the internal-state warning that makes standalone use fail, and an access-policy table showing Anonymous access. It does not describe the response shape, but that is a modest gap 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The deprecation warning is correctly front-loaded, but the text is visibly malformed — markdown headers and bold markers are concatenated without whitespace, and the deprecation is stated three separate times ('[DEPRECATED]', '###DEPRECATED:', and the 'Use this API instead' block). The access-policy table also consumes space disproportionate to a deprecated one-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a deprecated, single-parameter token-exchange tool with no output schema, the description covers what it does, that it should not be used, what to use instead, and the auth policy. The remaining gap — what the returned token payload looks like — matters little for a tool the description tells the agent to avoid.

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 single body.api_token property is already documented in the schema, so the baseline would be 3. The description earns an extra point by clarifying that the historical 'refresh_token' parameter name must now be sent as 'api_token' — a naming trap the tool name itself perpetuates and that the schema alone does not resolve.

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 opening sentence states a specific verb and resource: 'Exchange organization scoped API-token for user access token.' That is enough for an agent to distinguish it from token-verification siblings like identity_check_id_token or identity_get_access_token_info. However, the rest of the text is dominated by deprecation meta-commentary, and it never names a concrete sibling tool as the replacement, only an HTTP path.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says '[DEPRECATED]' and 'Use this API instead: /oidc/oauth2/token', which is a clear when-not-to-use signal plus a named alternative. The caveat that 'Using the token generated by the Identity Service API alone will not work due to a missing internal state' adds a real precondition. It falls short of 5 because the recommended alternative is a raw endpoint rather than a callable sibling tool, so the agent cannot directly route to it from this toolset.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_all_by_org_service_definitionsB
Read-onlyIdempotent

[DEPRECATED] Get all service definitions the organization has access to. This API has no analogue in Tenant Manager ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ✔️ | | Service Account (Whitelisted Client) | ❌ | GET /csp/gateway/slc/api/v2/orgs/{orgId}/services

NameRequiredDescriptionDefault
orgIdYes(path)
localeNo
pageLimitNo
pageStartNo

TDQS

B3.2/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 genuinely non-redundant context: deprecation status and a role-to-access matrix (Platform operator, Org Owner, Org Member allowed; Service Account denied), which is exactly the auth information an agent cannot get from 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?

The purpose and deprecation notice are correctly front-loaded, but the body is cluttered with a markdown table full of escaped HTML entities and a raw REST path, which consumes space without helping the agent decide or invoke.

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 paginated list endpoint with no output schema and 75% of parameters undocumented, the description should at minimum explain pageLimit/pageStart behavior and what a service definition record contains. Neither is addressed, so an agent must guess at pagination and result shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25% – orgId has a bare "(path)" note and locale, pageLimit and pageStart have no descriptions at all. The description does not compensate: it names no parameter and never explains pagination semantics or defaults, so three of four params remain uninterpretable from text.

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 gives a specific verb and resource ("Get all service definitions") scoped to the organization's access, and the tool name reinforces the org scoping. It does not explicitly contrast with the close sibling identity_get_all_service_definitions or identity_get_paged_service_definition_orgs, leaving the agent to infer 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The "[DEPRECATED]" marker functions as an implicit when-not-to-use signal, and the access policy table clarifies eligibility. However, it never names what to use instead of this deprecated endpoint or under what circumstances the org-scoped variant is preferred over the non-org sibling, so the 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.

identity_get_all_service_definitionsB
Read-onlyIdempotent

[DEPRECATED] Get all service definitions. This API has no analogue in Tenant Manager ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ✔️ | | Service Account (Whitelisted Client) | ✔️ | GET /csp/gateway/slc/api/definitions

NameRequiredDescriptionDefault
expandNo
orgLinkNo

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/openWorld, so the value-add here is the access policy table (which roles can call) and the endpoint path. It stops short of describing pagination or return shape for an "get all" tool, which is the notable gap.

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 deprecation warning is front-loaded, which is good, but the raw markdown access-policy table is dumped verbatim and the "no analogue" sentence is boilerplate clutter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An agent learns the operation, its deprecated status, and access roles, but with no output schema and undocumented parameters, it cannot confidently construct the expand/orgLink query.

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?

Two parameters (expand, orgLink) exist at 0% schema description coverage, and the description says nothing about either. The description fails to compensate for the schema's silence on their meaning and format.

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 all service definitions") plus the raw endpoint. It does not distinguish itself from near-identical siblings like identity_get_all_by_org_service_definitions or identity_get_paged_service_definition_orgs, so sibling differentiation is missing.

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 [DEPRECATED] tag is a real when-not signal — it tells the agent to prefer another tool — but it never names a replacement and the cryptic "no analogue in Tenant Manager" note gives no actionable alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_group_roles_on_organizationA
Read-onlyIdempotent

[DEPRECATED] Get Group Roles On Organization

Use this API instead: * /cloudapi/1.0.0/groups/{{groupUrn}} Get roles of a group within organization. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ❌ | | Service Account (Whitelisted Client) | ❌ |

GET /csp/gateway/am/api/orgs/{orgId}/groups/{groupId}/roles

NameRequiredDescriptionDefault
orgIdYesUnique identifier (GUID) of the organization. (path)
groupIdYesUnique identifier of the group. (path)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld, and non-destructive behavior. The description adds valuable access policy details (platform operator and organization owner allowed, member and service account denied) and deprecation status, which go beyond the annotations. It does not explain return format, but read-only status is covered.

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 deprecation notice is front-loaded correctly, but the description includes a redundant title line and endpoint restatement that add little beyond the annotations. The access policy table is useful but makes the overall text somewhat cluttered for a simple two-parameter GET tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only GET with full schema coverage and rich annotations, the description provides deprecation guidance and access policy. It does not describe return values, but no output schema exists and the core behavior is sufficiently explained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 orgId and groupId are already documented as GUIDs and unique identifiers. The description adds no additional meaning beyond what the schema 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves group roles within an organization and names the HTTP endpoint and deprecated status. It does not explicitly distinguish itself from the many sibling identity tools, but the purpose is clear from the verb+resource pairing.

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 opens with [DEPRECATED] and explicitly tells callers to use /cloudapi/1.0.0/groups/{{groupUrn}} instead, which is strong guidance for avoiding this tool. It does not name a specific MCP sibling replacement, but the deprecation and alternative endpoint are clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_keysA
Read-onlyIdempotent

[DEPRECATED] Defines the public keys used to verify the authenticity of the JWT token.

Use this API instead: * /oidc/oauth2/jwks Defines the public keys used to verify the authenticity of the JWT token. ### Access Policy | Role | Access | | ----- | ----- | | Anonymous | ✔️ |

GET /csp/gateway/am/api/auth/keys

NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so safety is covered. The description adds real context beyond that: the endpoint is deprecated and accessible anonymously. It still says nothing about response format or key rotation/caching 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?

The deprecation warning is correctly front-loaded, but the core sentence 'Defines the public keys used to verify the authenticity of the JWT token' appears twice verbatim, and the raw HTML access-policy table plus trailing URL are low-value clutter that dilute the call to action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 0-parameter deprecated GET, the essential facts (deprecated, replacement path, anonymous access) are present. With no output schema, the description should sketch what is returned — a JWKS key set — but it only alludes to 'public keys', leaving the response shape implicit.

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?

Zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. No parameter text is needed here.

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 resource — the public keys used to verify JWT authenticity — and flags the tool as deprecated up front. It doesn't distinguish itself from identity_get_openid_configuration or identity_check_id_token, and the 'alternative' it names is an HTTP path rather than a sibling tool name, so routing is only partly resolved.

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?

'[DEPRECATED]' plus 'Use this API instead: /oidc/oauth2/jwks' is explicit when-not guidance, which is rare and valuable. It stops short of a 5 because the replacement is given as a raw endpoint path, leaving the agent to infer whether any listed sibling tool corresponds to it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_logged_in_userA
Read-onlyIdempotent

[DEPRECATED] Get the currently logged in user.

Use this API instead: * /oidc/userinfo ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ✔️ | | Service Account (Whitelisted Client) | ✔️ |

GET /csp/gateway/am/api/loggedin/user

NameRequiredDescriptionDefault
expandNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds important context beyond annotations: the tool is deprecated, names the replacement endpoint, and lists role-based access. It does not describe response format or the effect of the expand parameter.

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 deprecation warning and replacement API are front-loaded, which is good. However, the large markdown access-policy table and repeated endpoint path consume significant space without helping an agent invoke the tool correctly.

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 deprecated read-only tool with annotations and no output schema, the description covers the key operational fact: do not use it, use /oidc/userinfo instead. It still leaves the only parameter, expand, unexplained and does not name an MCP sibling as the replacement, which limits completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one optional boolean parameter, expand, with 0% description coverage. The description does not explain what expand does, when to set it, or what additional data it returns, so it fails to compensate for the schema gap. The parameter name gives only a weak hint.

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 the currently logged in user. It also clearly marks the tool as deprecated and names the replacement API, so an agent knows what it does. It does not explicitly distinguish this from the similar sibling identity_get_logged_in_user_details.

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 deprecation notice gives explicit guidance to use /oidc/userinfo instead, which is strong when-to-use information. The access policy table also clarifies which roles can call it. It lacks guidance on whether there is ever a valid reason to call this deprecated endpoint instead of the replacement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_logged_in_user_detailsA
Read-onlyIdempotent

[DEPRECATED] Get the currently logged in user's detailed information.

Use this API instead: * /oidc/userinfo ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ✔️ | | Service Account (Whitelisted Client) | ✔️ |

GET /csp/gateway/am/api/loggedin/user/details

NameRequiredDescriptionDefault

No parameters

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/non-destructive, so the safety profile is covered; the description adds genuinely new context: the deprecation status and the role-based access policy (platform operator, org owner/member, whitelisted service account). It still doesn't say what fields 'detailed information' 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 deprecation warning is correctly front-loaded, but the body is bloated with a markdown access-policy table rendered as HTML entities (&#x2714;&#xFE0F;) and a raw GET path. That formatting is noisy and consumes space that could describe the returned payload.

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 and no parameters, the description should describe the shape of the returned user details; it only says 'detailed information'. Deprecation, replacement endpoint and access rules are covered, so it is adequate but incomplete for a tool with zero other documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the schema carries the full burden and there is nothing for the description to disambiguate. Baseline 4 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: fetch the currently logged-in user's detailed information, plus a clear deprecation banner. It does not name the sibling tool (e.g. identity_get_logged_in_user or identity_get_principal_user_profile) that presumably serves the same need, so differentiation from siblings is left implicit.

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 [DEPRECATED] marker and 'Use this API instead: /oidc/userinfo' tell the agent not to rely on this, and the role/access table indicates who may call it. However, the recommended replacement is a raw HTTP path rather than a sibling tool name, so the routing guidance is not directly actionable inside the tool catalog.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_logged_in_user_groups_on_orgA
Read-onlyIdempotent

[DEPRECATED] Get Principal User Groups Information Within the Specified Organization

Use this API instead: * /scim/v2/Users ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ✔️ | | Service Account (Whitelisted Client) | ✔️ |

GET /csp/gateway/am/api/loggedin/user/orgs/{orgId}/groups

NameRequiredDescriptionDefault
orgIdYes(path)

TDQS

A3.8/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 genuinely new behavioral context the annotations lack: deprecation status and a per-role access policy table stating which principals are authorized.

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 deprecation notice and migration pointer are correctly front-loaded, but the markdown access-policy table is verbose and the trailing raw endpoint line duplicates the annotation title and tool name. Part of the text is spent restating structured data rather than 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 one-parameter, read-only, no-output-schema call whose annotations already cover idempotency and safety, the description covers purpose, authorization, and lifecycle status. The only real gap is that it never indicates what the returned groups look like, which matters slightly more given there is no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single required parameter (orgId) and schema description coverage is 100%, so the schema already carries the documentation burden. The description adds nothing about orgId formatting or scope beyond the endpoint path template, which is the baseline expectation under full 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 first line states a specific verb and resource: return the principal user's groups within a given organization, and it leads with [DEPRECATED]. An agent can tell what it does without opening the schema, though it doesn't explicitly separate itself from near-siblings such as identity_get_organization_groups or approvals_get_logged_in_user_groups.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to migrate to /scim/v2/Users, which is a strong 'use something else' signal, and the access matrix clarifies who may call it. It falls short of 5 because the replacement is a raw HTTP path, not a sibling tool, so the agent still has to map it to an available MCP tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_openid_configurationA
Read-onlyIdempotent

[DEPRECATED] OpenID Connect discovery endpoint

Use this API instead: * /oidc/.well-known/openid-configuration Get discovery endpoint meta data as described in https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata. OpenID Connect 1.0 is a simple identity layer on top of the OAuth 2.0 protocol. It enables Clients to verify the identity of the End-User based on the authentication performed by an Authorization Server, as well as to obtain basic profile information about the End-User in an interoperable and REST-like manner. ### Access Policy | Role | Access | | ----- | ----- | | Anonymous | ✔️ |

GET /.well-known/openid-configuration

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only, idempotent, non-destructive, open-world profile, so the description only needs to add context — and it does: it discloses the deprecation/removal risk and an explicit access policy table showing Anonymous access, i.e. no auth required. It does not cover rate limits or response caching, so it is not exhaustive, but the two highest-value behavioral facts are stated.

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 deprecation warning and replacement are correctly front-loaded, but the middle is filler: a generic explanatory paragraph about what OpenID Connect and OAuth 2.0 are contributes nothing to invocation. The markdown '###' headers and the repeated 'GET /.well-known/openid-configuration' line (already in the title/annotations) add structural noise for no decision value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only GET with full annotation coverage and no output schema, the description supplies the essentials: what it returns, the governing spec for the shape, auth policy, and deprecation status. The only gap is that the recommended replacement is not mapped to a callable tool, leaving the migration path slightly open-ended.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters and the schema is an empty closed object, so there is no parameter meaning to convey; baseline of 4 applies. The description correctly implies no input is needed by documenting only an HTTP GET against a fixed well-known path.

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 discovery endpoint meta data') and names the spec that defines the payload, so an agent knows exactly what is returned. It also flags the tool as legacy and names the successor path, which further pins down its identity. It stops short of 5 because it never relates the tool to any sibling in this otherwise huge identity_* namespace.

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 '[DEPRECATED]' prefix plus 'Use this API instead: /oidc/.well-known/openid-configuration' is an explicit when-not-to-use signal with a named alternative. What it lacks is a fully actionable route: the replacement is given as a raw URL path rather than as a tool the agent can actually call, so the agent is told to avoid this tool but not clearly what to invoke instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_organization_groupsA
Read-onlyIdempotent

[DEPRECATED] Get Organization Groups

Use this API instead: * /cloudapi/1.0.0/groups Get groups of a specific organization. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ❌ | | Service Account (Whitelisted Client) | ❌ |

GET /csp/gateway/am/api/orgs/{orgId}/groups

NameRequiredDescriptionDefault
orgIdYes(path)
groupIdNoUnique identifier of the group.
pageLimitNoSpecifies the maximum results per page for every call.
pageStartNoSpecifies the index that the set of results will begin with.

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, so those traits add no value here. The description contributes beyond them with a role access matrix (platform operator, org owner allowed; org member and non-whitelisted service accounts denied), which materially affects whether a call will succeed, and with the deprecation status. It stops short of stating pagination or default page size behaviour.

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 deprecation warning is correctly front-loaded, which is good. But the markdown table arrives as escaped HTML entities, the endpoint string is repeated at the start and end, and the access-policy block is verbose for a read-only deprecated lookup.

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 100% schema coverage, read-only annotations, and no output schema, the definition covers safety and authorization adequately. The gaps are pagination semantics and an explicit pointer to the sibling tool or a removal timeline, which matter because the tool is deprecated and paged.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 (orgId, groupId, pageLimit, pageStart) are already documented in the schema. The description adds no param-level detail such as whether groupId narrows results or how pageStart interacts with pageLimit; 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 opens with a retained verb+resource label ('Get Organization Groups') and clarifies scope as groups of a specific organization, backing it with the underlying endpoint GET /csp/gateway/am/api/orgs/{orgId}/groups. It does not name the closest sibling (identity_search_org_groups), so differentiation from alternatives relies on the agent inferring 'list all' versus 'search'.

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 explicit deprecation notice plus a replacement path is genuinely useful 'use something else' guidance, which is rare. However, the replacement is a raw REST endpoint rather than a sibling tool name, so an agent cannot map it to identity_search_org_groups or provider_query_groups directly, and there is no guidance on when this tool remains the correct choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_org_rolesA
Read-onlyIdempotent

[DEPRECATED] Get Organization Roles

Use this API instead: * /cloudapi/1.0.0/roles Get list of organization roles. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ❌ | | Service Account (Whitelisted Client) | ✔️ |

GET /csp/gateway/am/api/orgs/{orgId}/roles

NameRequiredDescriptionDefault
nameNoRole name (or comma separated list of role names
orgIdYesUnique identifier (GUID) of the organization. (path)
expandNoIndicates if response should be expanded, value is ignored - only existence of parameter is checked

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the lower bar applies; the description still adds real value with the deprecation status and the per-role access policy table (Platform operator, Org Owner, Service Account allowed; Org Member denied). It omits pagination and response shape, but the access matrix and deprecation are meaningful additions 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?

The deprecation notice and replacement path are correctly front-loaded, but the body is dominated by a bulky HTML-escaped markdown access table and a duplicated raw endpoint string that together take more space than the actual functional guidance. It is not padded for its own sake, but the formatting overhead is heavy relative to the information delivered.

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 deprecated three-parameter read tool with no output schema, the description covers authorization and replacement adequately but never names the sibling tool that supersedes it, leaving the agent without an actionable redirect. No return-value or pagination context is needed, so the remaining gap is the tool-level replacement mapping.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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, orgId, and expand, including the unusual note that expand's value is ignored. The description adds nothing about any parameter, 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 ("Get Organization Roles") and flags the tool as deprecated up front, which immediately distinguishes its standing among siblings. It does not name a sibling tool as the replacement, only a REST path, so an agent still has to infer which tool in the list corresponds to /cloudapi/1.0.0/roles.

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 says to use a different API instead, which is genuine when-not-to-use guidance, but the alternative is expressed as a raw REST endpoint rather than a sibling tool name the agent can actually invoke. The access-policy table gives the authorization precondition but there is no guidance on when this tool remains appropriate versus identity_get_group_roles_on_organization or provider_query_tenant_roles.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_orgs_by_org_idA
Read-onlyIdempotent

[DEPRECATED] Read an organization.

Use this API instead: * /cloudapi/1.0.0/orgs ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ✔️ | | Service Account (Whitelisted Client) | ✔️ |

GET /csp/gateway/am/api/orgs/{orgId}

NameRequiredDescriptionDefault
orgIdYes(path)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/openWorld/non-destructive, so the safety profile is covered. The description adds genuinely new context: deprecation status and a role-based access table listing exactly which principals (platform operator, org owner/member, whitelisted service account) may call it.

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 deprecation notice is correctly front-loaded, but the middle is a pasted markdown access-policy table that consumes most of the text and spreads the useful signal (endpoint, deprecation) across the payload.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read with an existing annotation set and no output schema, the definition covers deprecation, access control, and the canonical path. What an organization object actually contains is left implicit, a minor gap given the low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the single orgId is documented structurally, and the description's trailing GET path corroborates that orgId is a path segment. Beyond that it adds nothing about format, source, or whether orgId is a URN versus numeric ID — 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 lead sentence 'Read an organization' gives a specific verb and resource, and the deprecation banner plus canonical GET path make the operation identifiable. It does not, however, distinguish this from closely related siblings such as provider_get_org, identity_get_user_orgs, or identity_get_orgs_by_org_id_users.

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 marks the tool deprecated and names the replacement endpoint (/cloudapi/1.0.0/orgs), which is a strong when-not-to-use signal. It stops short of routing to a specific sibling tool in this server, so an agent still has to infer which callable replaces it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_orgs_by_org_id_usersA
Read-onlyIdempotent

[DEPRECATED] Paginates search for user.

Use these APIs instead: * /cloudapi/1.0.0/users * /cloudapi/1.0.0/users/{{userUrn}}/preferences * /scim/v2/Groups Get response encapsulating organization users. Fetched page is according to the page start and page limit passed as optional parameters. Defaults to page size of 20 and start from the first page. Note that pageStart is 1-based index. We are currently not supporting the optional serviceDefinitionId which is to filter users having access to a service in CSP. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | &amp;#x2…

GET /csp/gateway/am/api/orgs/{orgId}/users

NameRequiredDescriptionDefault
orgIdYesUnique identifier (GUID) of the organization. (path)
pageLimitNoSpecifies the maximum results per page for every call.
pageStartNoSpecifies the index that the set of results will begin with.
expandProfileNoIndicates if the response should be expanded with the user profile, the value is ignored, only the existence of parameter is checked.
serviceDefinitionIdNoService definition id used to filter users having access to the service.
includeGroupIdsInRolesNoIndicates if the inherited roles in the response should indicate group information, the value is ignored, only the existence of parameter is checked.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, the description discloses pagination semantics (1-based pageStart, default page size, default first page) and an access-policy role table, plus a note that serviceDefinitionId filtering is unsupported. One wrinkle: it claims a default page size of 20 while the schema declares default 128, which is a mild internal inconsistency rather than an annotation 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?

The deprecation notice and alternatives are correctly front-loaded, but the body mixes a truncated HTML-entity access-policy table with pagination notes, making it noisier than needed. Every sentence is relevant, yet the formatting and truncation hurt readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a read-only list tool with full schema coverage and no output schema, the description covers pagination, access requirements, deprecation status, and a known parameter limitation. An agent has everything needed to call it correctly or decide to avoid 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 already 100%, so baseline is 3; the description earns a bump by explaining the 1-based indexing of pageStart and warning that serviceDefinitionId is not currently honored for CSP filtering. The conflicting page-size default is the only blemish.

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 response encapsulating organization users', paginated by pageStart/pageLimit) and even names the HTTP route. It is clearly distinguishable from sibling identity tools, though the name itself (identity_get_orgs_by_org_id_users) is awkward and only clarified by the body text.

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 is explicitly marked deprecated and points to three replacement endpoints (/cloudapi/1.0.0/users, /users/{{userUrn}}/preferences, /scim/v2/Groups), which is strong when-not-to-use guidance. It does not, however, route to any sibling tool in this catalog by name, so the agent must map API paths to tools itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_org_sub_orgsA
Read-onlyIdempotent

[DEPRECATED] Get all organization's sub-orgs.

Use this API instead: * /cloudapi/1.0.0/orgs Returns all sub organizations for the passed Org ID. The user needs to be either organization owner or a platform operator in order to get a result. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ❌ | | Service Account (Whitelisted Client) | ❌ |

GET /csp/gateway/am/api/orgs/{orgId}/sub-orgs

NameRequiredDescriptionDefault
orgIdYes(path)

TDQS

A4/5.0
Behavior4/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 genuinely new behavior: the tool is deprecated, requires org-owner or platform-operator role via an access policy table, and returns sub-orgs for a passed Org ID. It does not describe pagination or return shape, keeping it below 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 deprecation notice is correctly front-loaded, but the embedded markdown access-policy table is rendered as raw HTML entities (&#x2714;&#xFE0F;, &#x0274c;) that add noise rather than clarity. The REST path restated at the end duplicates the annotation 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?

No output schema exists, but for a simple read-only list endpoint the description covers purpose, deprecation, replacement, and authorization requirements. The only shortfall is that the replacement is an API path rather than an MCP tool reference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter (orgId) with 100% schema coverage, and the schema already documents it as a path param. The description adds that the passed Org ID scopes the sub-org listing, which is minimal beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first line states a specific verb and resource ('Get all organization's sub-orgs') and immediately marks the tool as deprecated with a named replacement. An agent can distinguish this from sibling identity_* list tools 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?

It explicitly says when NOT to use it ('[DEPRECATED]') and points to an alternative (the /cloudapi/1.0.0/orgs API), plus states the prerequisite roles (org owner or platform operator). The gap is that the alternative is a raw REST path rather than a callable sibling tool name, so the agent isn't told which MCP tool to switch to.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_paged_service_definition_orgsA
Read-onlyIdempotent

[DEPRECATED] Get organizations with access to specified service. This API has no analogue in Tenant Manager Currently all organizations have access to all of the service definitions. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ❌ | | Organization Member | ❌ | | Service Account (Whitelisted Client) | ✔️ | GET /csp/gateway/slc/api/v2/definitions/{serviceDefinitionId}/orgs

NameRequiredDescriptionDefault
pageLimitNo
pageStartNo
serviceDefinitionIdYes(path)

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the safety profile is covered. The description adds real value beyond that: deprecation status, the semantic caveat that all orgs have access, and a role-by-role authorization table. It omits pagination behavior and return shape, 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads DEPRECATED and the purpose, which is good, but then spends a four-row markdown table plus a raw endpoint line on a simple deprecated GET. Some of that content earns its place (the deprecation and access caveat), while the table and URL restate what annotations/schema already convey.

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 deprecated paged read with no output schema, the description should at least sketch what a page contains and how paging terminates. It covers authorization and deprecation well but leaves pagination and response shape unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%: pageLimit and pageStart have no descriptions anywhere, and the description never explains pagination (defaults 128/0, ordering, next-page behavior). Only serviceDefinitionId is implied via the path template, so the description fails to compensate for the coverage gap.

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 organizations with access to specified service,' plus the deprecation flag and the raw endpoint path. It does not explicitly distinguish itself from near-siblings like identity_get_all_by_org_service_definitions (the inverse direction), so the reader must infer 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The DEPRECATED tag plus 'This API has no analogue in Tenant Manager. Currently all organizations have access to all of the service definitions' tells the agent the result is effectively uninformative and the tool should be avoided. The embedded Access Policy table makes the required caller role explicit. It names no direct alternative tool, keeping it from a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_paginated_group_usersA
Read-onlyIdempotent

[DEPRECATED] Get users in group within organization.

Use this API instead: * /scim/v2/Users Get users in group within organization. Optionally filtered by given firstName, lastName or email with 'contains' match. Optionally filter the users by using onlyDirectUsers with true to return only direct users and not return the users from nested groups. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ❌ | | Service Account (Whitelisted Client) | ✔️ |

GET /csp/gateway/am/api/orgs/{orgId}/groups/{groupId}/users

NameRequiredDescriptionDefault
emailNo
orgIdYes(path)
groupIdYes(path)
lastNameNo
firstNameNo
pageLimitNoSpecifies the maximum results per page for every call.
pageStartNoSpecifies the index that the set of results will begin with.
onlyDirectUsersNo

TDQS

A3.5/5.0
Behavior4/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 genuinely non-structured context: the access policy table showing which roles can call it and the filter semantics (contains match on name/email, onlyDirectUsers excluding nested-group members). It does not explain pagination behavior or result ordering, which keeps it from 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 purpose sentence is front-loaded after the deprecation banner, which is correct. But 'Get users in group within organization' appears twice verbatim, and the raw markdown access-policy table plus the raw endpoint line add structural noise. The content is useful but not tightly edited.

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 read tool with no output schema, the description covers purpose, auth/role gates, and filter semantics reasonably well. It omits any indication of the response shape (user record fields) and pagination/total-count behavior, which an agent would need to page correctly 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 description coverage is 50%, and the description meaningfully covers the undocumented half: it explains that firstName, lastName, and email use 'contains' matching and what onlyDirectUsers=true does. It says nothing about pageStart/pageLimit beyond what their schema descriptions already state, so this is the expected 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: get users in a group within an organization, scoped by orgId and groupId. It also flags deprecation and names the successor API path. It does not differentiate itself from the many sibling identity user-listing tools, which is why 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 '[DEPRECATED]' marker plus 'Use this API instead: /scim/v2/Users' is a real when-not signal, which is more than most tools offer. However, it points to a raw HTTP endpoint rather than naming a sibling MCP tool, so an agent has no concrete substitute to route to, and there is no guidance on when this tool would still be legitimate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_paginated_org_users_infoA
Read-onlyIdempotent

[DEPRECATED] Paginates search for user.

Use these APIs instead: * /cloudapi/1.0.0/users * /cloudapi/1.0.0/users/{{userUrn}}/preferences * /scim/v2/Groups Get response encapsulating organization users. Fetched page is according to the page start and page limit passed as optional parameters. Defaults to page size of 20 and start from the first page. Note that pageStart is 1-based index. We are currently not supporting the optional serviceDefinitionId which is to filter users having access to a service in CSP. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | &amp;#x2…

GET /csp/gateway/am/api/v2/orgs/{orgId}/users

NameRequiredDescriptionDefault
orgIdYesUnique identifier (GUID) of the organization. (path)
pageLimitNoSpecifies the maximum results per page for every call.
pageStartNoSpecifies the index that the set of results will begin with.
expandProfileNoIndicates if the response should be expanded with the user profile, the value is ignored, only the existence of parameter is checked.
serviceDefinitionIdNoService definition id used to filter users having access to the service.
includeGroupIdsInRolesNoIndicates if the inherited roles in the response should indicate group information, the value is ignored, only the existence of parameter is checked.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the bar is lower, and the description adds real value: pageStart is 1-based, and serviceDefinitionId is accepted in the schema but explicitly NOT supported as a filter. Notably it claims a default page size of 20 while the schema declares pageLimit default 128, an internal inconsistency the agent must resolve.

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?

Deprecation and replacements are correctly front-loaded, but the body carries noise: markdown headers (###), a replacement-API bullet list, and a truncated access-policy table that ends mid-row. The pagination details are buried after the migration content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a deprecated read-only paginated list with no output schema, the description covers paging behavior and deprecation but never describes the shape of the returned user records (beyond 'encapsulating organization users'), and the access-policy table is cut off, so the permission model is left incomplete. Adequate, but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description earns an upgrade by explaining that pageStart is a 1-based index and that serviceDefinitionId is currently non-functional, neither of which the schema says. The added 'defaults to page size of 20' conflicts with the schema's pageLimit default of 128, weakening otherwise useful parameter 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?

States a concrete verb+resource: paginated listing of organization users via GET /csp/gateway/am/api/v2/orgs/{orgId}/users, with pagination semantics described. It is specific about what is returned ("response encapsulating organization users") but does not differentiate itself from close siblings such as identity_get_orgs_by_org_id_users, identity_search_users, or identity_get_paginated_group_users.

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?

Leads with [DEPRECATED] and names three concrete replacement endpoints (/cloudapi/1.0.0/users, .../users/{{userUrn}}/preferences, /scim/v2/Groups), which is strong use/avoid guidance. It stops short of saying when this tool is still the right choice versus the near-identical sibling listing tools, so the routing is only partially resolved.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_principal_user_profileA
Read-onlyIdempotent

[DEPRECATED] Get the currently logged in user's profile.

Use this API instead: * /cloudapi/vcf/preferences ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ✔️ | | Service Account (Whitelisted Client) | ✔️ |

GET /csp/gateway/am/api/loggedin/user/profile

NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare this as a read-only, idempotent, non-destructive operation. The description adds useful authorization context via the access policy table, indicating which roles can call it, though it does not describe response shape or other runtime 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 deprecation notice and purpose are front-loaded, and the access policy table is useful for authorization. Some space is consumed by formatting artifacts and an endpoint string that repeats the annotation title, but the description remains reasonably compact.

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 deprecated, zero-parameter, read-only tool with annotations covering safety and an empty schema, the description supplies the key missing context: deprecation status, alternative endpoint, and access requirements. It is complete enough for an agent to avoid selecting it except when intentionally handling legacy 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?

The tool takes zero parameters, so there are no parameter semantics to explain. The schema is empty and fully covered, making the baseline for this dimension a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get the currently logged in user's profile.' It also clearly marks the tool as deprecated, but it does not explicitly distinguish this tool from closely related sibling tools such as identity_get_logged_in_user or identity_get_logged_in_user_details.

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 '[DEPRECATED]' marker and 'Use this API instead: /cloudapi/vcf/preferences' give explicit when-not-to-use guidance and an alternative. The alternative is an API path rather than a sibling MCP tool name, so the routing guidance is clear but not perfectly integrated with tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_role_by_org_id_and_role_idA
Read-onlyIdempotent

[DEPRECATED] Read a role.

Use this API instead: * /cloudapi/1.0.0/roles ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ✔️ | | Service Account (Whitelisted Client) | ❌ |

GET /csp/gateway/am/api/orgs/{orgId}/roles/{roleId}

NameRequiredDescriptionDefault
orgIdYes(path)
roleIdYes(path)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive behavior. The description adds meaningful context beyond annotations: deprecation status, the replacement endpoint, and a role-based access policy showing which principals are allowed.

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 deprecation warning is front-loaded and the replacement is immediately after it. The access-policy table adds bulk but is relevant; overall it is structured and free of filler 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 deprecated two-parameter read endpoint with no output schema, the description covers deprecation, replacement, access requirements, and the HTTP route. It lacks return-object detail and identifier semantics, but those are secondary for correctly routing away from this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the schema only labels both parameters as '(path)'. The description adds the endpoint path with orgId/roleId placeholders, but gives no identifier formats, constraints, or examples, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence gives a specific verb and resource ('Read a role'), and the GET path clarifies that it reads one role under an org. It does not explicitly distinguish this deprecated endpoint from related role-reading siblings beyond the replacement URL.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly marks the tool as deprecated and points to a replacement API, which is a strong when-not-to-use signal. However, it does not map that replacement to a specific sibling MCP tool or explain any remaining use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_user_default_orgA
Read-onlyIdempotent

[DEPRECATED] Get the currently logged in user's organizations.

Use this API instead: * /oidc/userinfo Currently one user can belong to exactly one organization. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ✔️ | | Service Account (Whitelisted Client) | ✔️ |

GET /csp/gateway/am/api/loggedin/user/default-org

NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/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 covered. The description adds real value on top: deprecated status, the migration target, the one-org-per-user cardinality constraint, and a per-role access matrix. It stops short of describing the payload shape.

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 two most important facts, DEPRECATED and the replacement endpoint, are front-loaded in the first two lines. The role/access markdown table is boilerplate and renders as escaped HTML entities (&#x2714;&#xFE0F;), adding visual noise for an endpoint the agent is told not to use, but the overall length remains modest.

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, deprecated GET with no output schema, the description covers deprecation, replacement, authorization and cardinality. The only gap is that return-value shape (the organization record) is never hinted at, which matters slightly more because there is no output schema to fall back on.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters and the schema is empty with additionalProperties=false, so there is nothing for the description to disambiguate. Baseline 4 applies; the note that the call implicitly targets 'the currently logged in user' is the only implicit-input clarification needed and it is present.

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 the currently logged in user's organizations') and couples it with the concrete endpoint path, so an agent knows exactly what is returned. It does not name any of the numerous nearby siblings (e.g. identity_get_user_orgs, identity_get_logged_in_user_details), but the deprecation banner plus the cardinality note ('one user can belong to exactly one organization') makes the scope unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells the agent not to use this route and names the replacement ('/oidc/userinfo'), which is the strongest form of when-not-to-use guidance. It also documents which roles may call it. What it lacks is any comparison against sibling MCP tools, so the agent must infer the mapping between the HTTP path and the tool it should call instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_user_in_any_organizationB
Read-onlyIdempotent

[DEPRECATED] Get the user (by user ID) belonging to the current organization.

Use this API instead: * /scim/v2/Users ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ❌ | | Organization Member | ❌ | | Service Account (Whitelisted Client) | ✔️ |

GET /csp/gateway/am/api/v2/users/{userId}

NameRequiredDescriptionDefault
userIdYes(path)
expandProfileNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=true), so the description's marginal value is deprecation status and the role-access matrix — both genuinely non-obvious. It omits return shape and any note on whether the deprecated endpoint is still served. The markdown table is also rendered as raw HTML entities, reducing readability.

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-loading '[DEPRECATED]' is the right call and the follow-on mitigation pointer is immediate. But the four-row access table with escaped check/cross entities and a bare GET path consumes most of the text for modest informational gain.

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 a returned user record contains, and it doesn't. For a deprecated two-parameter read tool, deprecation and role gating are adequately covered, but expandProfile semantics and response content are missing.

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 only 50%: userId's schema description is just '(path)' and expandProfile has no description at all. The description restates 'by user ID' and shows the {userId} path placeholder, but adds nothing about what expandProfile does or what form the expansion takes.

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 the user (by user ID) belonging to the current organization', plus the underlying HTTP path. It does not, however, distinguish this from close siblings such as identity_get_user_info_in_organization, identity_get_user_org_info, or provider_get_user, nor does it reconcile the name's 'any organization' with the body's 'current organization'.

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 opens with an explicit '[DEPRECATED]' marker and a 'Use this API instead: /scim/v2/Users' pointer, and the access-policy table states which roles are permitted. The gap is that the recommended replacement is a raw HTTP path, not a sibling tool name, and the description never says whether this tool still functions or under what conditions it should be preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_user_info_in_organizationA
Read-onlyIdempotent

[DEPRECATED] Get the user details by user ID and organization ID.

Use these APIs instead: * /scim/v2/Users * /scim/v2/Groups * /cloudapi/1.0.0/orgs Currently one user can belong to exactly one organization. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ❌ | | Service Account (Whitelisted Client) | ❌ |

GET /csp/gateway/am/api/v2/users/{userId}/orgs/{orgId}/info

NameRequiredDescriptionDefault
orgIdYes(path)
userIdYes(path)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive and open-world, so the description's marginal value is the deprecation status and the role-based access matrix (platform operator and org owner allowed, org member and whitelisted service account denied) – real behavioral information not in the annotations. It doesn't cover failure modes (e.g., user not in org) or auth mechanics beyond role eligibility.

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 deprecation banner and replacement guidance are correctly front-loaded, and the access table is scannable. The markdown role table with emoji glyphs consumes space that a single sentence could cover, which is the only real inefficiency.

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 carries the burden of explaining what comes back, and it says nothing about the returned user detail fields. For a deprecated read tool with only two path params and full annotation coverage this is a tolerable gap, but it is still a 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% and both required parameters are already documented, so the baseline is 3. The description confirms both are path parameters and adds the semantic constraint that a user belongs to exactly one organization, but gives no ID format or 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 states a specific verb and resource plus the exact scoping keys ('Get the user details by user ID and organization ID') and adds a disambiguating fact: one user belongs to exactly one organization. It also declares the tool deprecated, which an agent can act on immediately. It doesn't differentiate against the many near-identical identity siblings (identity_get_user_org_info, identity_get_user_in_any_organization), 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says not to use this and points at three replacement endpoints (/scim/v2/Users, /scim/v2/Groups, /cloudapi/1.0.0/orgs), which is strong when-not-to-use guidance. The gap is that the alternatives are given as raw API paths rather than sibling tool names, so the agent must map them itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_user_org_infoA
Read-onlyIdempotent

[DEPRECATED] Get the currently logged in user's info in an organization.

Use these APIs instead: * /scim/v2/Users * /scim/v2/Groups * /cloudapi/1.0.0/orgs Currently one user can belong to exactly one organization. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ✔️ | | Service Account (Whitelisted Client) | ✔️ |

GET /csp/gateway/am/api/loggedin/user/orgs/{orgId}/info

NameRequiredDescriptionDefault
orgIdYes(path)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and open-world, so the safety profile is covered. The description adds genuinely new behavioral context: the access-policy table listing which roles (Platform operator, Org Owner, Org Member, Service Account) can call it, and the cardinality constraint that a user belongs to exactly one organization. It does not describe response contents, but the access matrix is meaningful added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The critical information – DEPRECATED and the replacement endpoints – is front-loaded in the first two lines. It is somewhat verbose afterward with an HTML-entity-laden access table, but every block (alternatives, cardinality note, access matrix, path) carries information.

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 single-parameter read-only GET with no output schema, the description supplies everything an agent needs: deprecation status, migration targets, permission requirements, and the org cardinality constraint. Nothing required to decide whether to call 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?

Only one parameter with 100% schema coverage, though the schema description is merely '(path)'. The description echoes the orgId via the GET path template, confirming it is a path parameter, but offers no format, sourcing, or default guidance. With the schema nominally covering the field, 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?

Starts with a deprecation marker then states a specific verb+resource+scope: the logged-in user's info within an organization, with the underlying REST path shown. An agent can distinguish it from nearby siblings like identity_get_user_info_in_organization or identity_get_logged_in_user_details because both the deprecated status and the org-scoped subject are explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells the agent not to use this and names three replacement endpoints (/scim/v2/Users, /scim/v2/Groups, /cloudapi/1.0.0/orgs). This is the strongest possible usage guidance for a deprecated tool – both the 'when not' and the alternative are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_user_org_rolesA
Read-onlyIdempotent

[DEPRECATED] Get the currently logged in user's roles.

Use these APIs instead: * /oidc/userinfo * /cloudapi/1.0.0/roles ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ✔️ | | Service Account (Whitelisted Client) | ✔️ |

GET /csp/gateway/am/api/loggedin/user/orgs/{orgId}/roles

NameRequiredDescriptionDefault
orgIdYes(path)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive behavior, and the description adds meaningful context: deprecation status and an access policy table showing which roles can call it. It does not describe return shape or rate limits, but for a deprecated read endpoint this is solid additional 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 with the deprecation warning and replacement guidance, then the access table. The access matrix is somewhat verbose, but it is structured and informative rather than 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 one-parameter, read-only, deprecated endpoint with annotations covering safety, the description supplies deprecation, alternatives, and access policy. It does not explain return values, but no output schema exists and the tool's main remaining need is the deprecation warning, which 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 coverage is effectively complete for the single orgId parameter, so the baseline is 3. The description shows orgId in the path but adds no semantic explanation beyond that, leaving the schema to carry parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: it gets the currently logged-in user's roles within an organization. It is reasonably distinguishable from broader org-role tools, though it does not explicitly contrast itself with the many similarly named identity_get_user_* role tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly marks the tool as deprecated and names replacement APIs (/oidc/userinfo and /cloudapi/1.0.0/roles), which is strong when-not-to-use guidance. It does not map those replacements to specific MCP sibling tools, but the deprecation signal is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_user_orgsA
Read-onlyIdempotent

[DEPRECATED] Get the currently logged in user's organizations.

Use this API instead: * /oidc/userinfo Currently one user can belong to exactly one organization. Result contains detailed information for the organization. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ✔️ | | Service Account (Whitelisted Client) | ✔️ |

GET /csp/gateway/am/api/v2/loggedin/user/orgs

NameRequiredDescriptionDefault
pageLimitNoSpecifies the maximum results per page for every call.
pageStartNoSpecifies the index that the set of results will begin with.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuine context beyond that: deprecation status, the one-org-per-user cardinality, and role-based access. It says nothing about how the two pagination parameters behave in a single-org result set, which is the one non-obvious behavior an agent 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?

Deprecation and the replacement pointer are correctly front-loaded, but the markdown access-policy table is bulky for a read-only, single-result call, and the trailing 'GET /csp/gateway/am/api/v2/loggedin/user/orgs' line duplicates the annotation title verbatim 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 zero-required-parameter, read-only, no-output-schema tool, the description covers what is returned ('detailed information for the organization'), who can call it, and that it is superseded. Only pagination semantics are left unexplained, a minor gap given a single-org 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% and both parameters (pageLimit, pageStart) carry their own descriptions, so the schema does the heavy lifting. The description never mentions pagination at all, which is baseline behavior when the schema is fully documented.

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 the currently logged in user's organizations') and adds a scoping fact (one user belongs to exactly one org, result contains detailed org info). It does not explicitly distinguish itself from near-identical siblings such as identity_get_user_org_info or identity_get_logged_in_user_details, so an agent still has to compare schemas.

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?

Leads with a deprecation marker and points to a replacement ('Use this API instead: /oidc/userinfo'), and the access-policy table tells the agent which roles may call it. The alternative is a raw REST endpoint rather than a sibling MCP tool, and no sibling tool is named as the substitute, which keeps it below a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_user_org_service_rolesA
Read-onlyIdempotent

[DEPRECATED] Get the currently logged in user's service roles.

Use this API instead: * /oidc/userinfo ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ✔️ | | Service Account (Whitelisted Client) | ✔️ |

GET /csp/gateway/am/api/loggedin/user/orgs/{orgId}/service-roles

NameRequiredDescriptionDefault
orgIdYes(path)
serviceDefinitionLinkNo

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and non-destructive; the description adds value beyond them with the deprecation status, the concrete endpoint, and an access-policy matrix naming which roles (Platform operator, Org Owner/Member, whitelisted service account) can call it. Return shape and org-scoping behavior are still unexplained, keeping it from 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?

Deprecation and the replacement API are front-loaded, which is the right ordering. The markdown access-policy table and raw URL tail add bulk that could have been one sentence, but they carry real permission information rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a deprecated, annotation-covered read endpoint with no output schema, the description supplies the essentials: what it returns, that it is deprecated, the substitute, and who may call it. The main remaining gap is parameter behavior, particularly the optional serviceDefinitionLink filter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 50%: orgId carries a bare '(path)' note and serviceDefinitionLink has no description at all. The description adds no meaning for either parameter, and the optional serviceDefinitionLink — whose filtering semantics an agent would need — is entirely undocumented in both places.

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: it gets the currently logged-in user's service roles, and the HTTP path shows the lookup is scoped to an org. It does not differentiate itself from close siblings such as identity_get_user_org_roles or identity_get_user_service_roles_in_organization, so an agent must infer that 'service roles' is a distinct concept.

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 deprecation banner plus a named replacement (/oidc/userinfo) is an explicit 'do not use, use that instead' instruction, which is stronger guidance than most tools provide. It stops short of explaining when this endpoint would still be the correct choice versus the many identity siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_user_roles_in_organizationA
Read-onlyIdempotent

[DEPRECATED] Get the user's roles.

Use this API instead: * /scim/v2/Users/{{userUrn}} Currently one user can belong to exactly one organization. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ❌ | | Service Account (Whitelisted Client) | ❌ |

GET /csp/gateway/am/api/users/{userId}/orgs/{orgId}/roles

NameRequiredDescriptionDefault
orgIdYes(path)
userIdYes(path)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the description only needed to add context — and it does, with a role-based access matrix and the deprecation warning. It stops short of describing the returned roles payload or pagination, which for a list-style read would have been useful.

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 deprecation banner is the right priority, followed by alternative, constraint, and access table. It is slightly cluttered by raw HTML entities (&#x2714;&#xFE0F;, &#x0274c;) that hurt readability, but there is little wasted 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 deprecated two-parameter read with no output schema and complete annotation coverage, the description covers safety, permissions, deprecation, and routing. The main omission is any hint of the response shape, though the deprecation makes that low stakes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 documented in the schema (albeit tersely as "(path)"). The description's URL template confirms userId and orgId are path segments and shows their positions, but adds no format, default, or valid-value guidance beyond that — 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 the user's roles") and the trailing endpoint path clarifies the scope is a user within an organization. It does not, however, distinguish itself from the many near-identical siblings such as identity_get_user_org_roles or identity_get_user_service_roles_in_organization, so an agent cannot diff them from the text alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The leading [DEPRECATED] marker plus an explicit replacement ("Use this API instead: /scim/v2/Users/{{userUrn}}") tells the agent when NOT to call this tool, which is the strongest possible usage routing. The access policy table further enumerates which roles may invoke it and which are denied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_user_roles_on_org_with_group_infoA
Read-onlyIdempotent

[DEPRECATED] Get user roles with groups inheritance information within the specified organization

Use these APIs instead: * /cloudapi/1.0.0/users * /scim/v2/Groups The user roles with groups inheritance information is not a CSP API call. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ❌ | | Service Account (Whitelisted Client) | ❌ |

GET /csp/gateway/am/api/users/{userId}/orgs/{orgId}/access

NameRequiredDescriptionDefault
orgIdYes(path)
userIdYes(path)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive behavior, so safety is covered. The description adds genuinely non-structured context: deprecation status, replacement endpoints, and an authorization matrix showing which roles can invoke it. That is substantive beyond what annotations provide, though the broken sentence about it 'not being a CSP API call' adds confusion rather than clarity.

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 deprecation notice and replacement paths are front-loaded, which is good. However, the access-policy block is rendered as a markdown table with HTML entities that adds visual noise in a tool description, and the clause 'The user roles with groups inheritance information is not a CSP API call' is grammatically broken and adds little.

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 deprecated, read-only, two-path-parameter operation with full annotations, the description covers status, alternatives, permissions, and the underlying endpoint. An agent has enough to decide whether to call it and whether it is authorized. The only missing element is explicit comparison against the closely related identity_* siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is nominally 100%, but both parameter descriptions are just '(path)', so the schema conveys almost no meaning. The description adds nothing about userId or orgId semantics beyond the URL template, so it neither compensates for the thin schema nor provides extra parameter guidance. Baseline 3 applies when schema coverage is high, but there is no added value here.

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 user roles including group inheritance info, scoped to a specific organization. The 'with groups inheritance information' qualifier separates it in spirit from siblings like identity_get_user_roles_in_organization, but the description never names those siblings explicitly, so the 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Opens with [DEPRECATED] and points to two replacement APIs, which is clear when-not-to-use guidance. The access-policy table also makes caller eligibility explicit (Platform operator and Organization Owner allowed; Organization Member and Service Account denied). It does not, however, route the agent to the analogous sibling tools if it must still use an identity family call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_users_by_acctA
Read-onlyIdempotent

[DEPRECATED] Get the user belonging to the current organization.

Use this API instead: * /scim/v2/Users Currently one user can belong to exactly one organization. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ❌ | | Organization Member | ❌ | | Service Account (Whitelisted Client) | ✔️ |

GET /csp/gateway/am/api/users/{acct}

NameRequiredDescriptionDefault
acctYes(path)
expandProfileNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive, so the lower bar applies; the description still adds real behavioral context beyond them: the deprecation status and the per-role access matrix (Platform operator and whitelisted Service Accounts only, Org Owner/Member denied). It does not state what happens when the account is not found or what shape the response takes.

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-loading [DEPRECATED] is exactly right, but the body is a markdown table flattened into prose with HTML entities (&#x2714;&#xFE0F;, &#x0274c;) that cost tokens without adding clarity. The one genuinely useful constraint ("one user can belong to exactly one organization") is buried mid-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?

For a two-parameter, no-output-schema GET the coverage is serviceable: deprecation, auth requirements, and the single-organization constraint are all present. But the two parameters remain opaque, and no return-value or error behavior is described, which matters even for a deprecated endpoint an agent might still be forced to call.

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 only 50% and the description does nothing to close the gap. The 'acct' parameter gets no format or sourcing guidance beyond the schema's bare "(path)", and 'expandProfile' is completely undocumented in both description and schema, leaving the agent to guess what values it accepts.

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 the user belonging to the current organization," reinforced by the path template GET /csp/gateway/am/api/users/{acct}. The purpose is unmistakable, but it offers no differentiation from lookalike siblings such as identity_get_user_in_any_organization or identity_get_user_info_in_organization, so an agent cannot tell from this text which one 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The [DEPRECATED] marker plus "Use this API instead: /scim/v2/Users" is a strong, explicit steering instruction, and the access-policy table tells the agent which roles may call it. The gap is that the named replacement is a raw HTTP endpoint rather than a sibling MCP tool, and no sibling comparison is given for the non-deprecated identity tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_users_by_acct_orgs_by_org_id_infoA
Read-onlyIdempotent

[DEPRECATED] Get the user details.

Use these APIs instead: * /scim/v2/Users * /scim/v2/Groups * /cloudapi/1.0.0/orgs Currently one user can belong to exactly one organization. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ❌ | | Service Account (Whitelisted Client) | ❌ |

GET /csp/gateway/am/api/users/{acct}/orgs/{orgId}/info

NameRequiredDescriptionDefault
acctYes(path)
orgIdYes(path)

TDQS

A3.9/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 the safety profile is covered. The description adds valuable context beyond annotations: deprecation status, access policy by role, and the constraint that a user currently belongs to exactly one organization.

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 deprecation notice and replacement guidance are front-loaded, and the endpoint is stated at the end. The access policy table and organization constraint are useful, though the structure is somewhat heavy for a deprecated two-parameter read tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a deprecated read-only endpoint with only two path parameters, the description provides enough context to avoid use and understand access restrictions. It does not describe return fields, but the tool is marked deprecated and has no output schema, which lowers the need for detailed response documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema carries the parameter burden, and the description only weakly clarifies parameter meaning through the endpoint path template. It does not explain what acct and orgId represent beyond the path placeholders, so this is baseline adequate rather than additive.

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+resource: get user details for a specific account and organization, reinforced by the endpoint path. It is specific enough to understand the operation, but it does not distinguish this tool from similar identity user-detail siblings such as identity_get_user_info_in_organization or identity_get_user_org_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly marks the tool as deprecated and lists replacement API paths, which is strong guidance against normal use. However, the alternatives are raw API endpoints rather than MCP sibling tool names, so an agent must still infer which available tool replaces this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_users_by_user_id_orgs_by_org_id_rolesA
Read-onlyIdempotent

[DEPRECATED] Get the user's roles for a particular organization.

Use this API instead: * /scim/v2/Users Currently one user can belong to exactly one organization. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ❌ | | Service Account (Whitelisted Client) | ❌ |

GET /csp/gateway/am/api/v2/users/{userId}/orgs/{orgId}/roles

NameRequiredDescriptionDefault
orgIdYes(path)
userIdYes(path)

TDQS

A3.8/5.0
Behavior4/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 safety profile is covered. The description adds real behavioral context beyond that: deprecation status, the single-organization constraint for a user, and a per-role access policy matrix. That is meaningful added value.

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 deprecation notice and replacement recommendation are correctly front-loaded, but a large markdown access table with unicode checkmark entities and a repeated GET path take substantial space for a two-parameter read call. The core message would fit in one 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 two-path-param read with no output schema and full annotation coverage, the definition supplies deprecation status, access constraints, and the cardinality assumption. The main omission is a pointer to the in-set sibling that supersedes it, but nothing essential to calling it correctly 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%, with both userId and orgId documented as path parameters, so the schema carries the parameter burden. The description adds no semantic detail about the identifiers (format, source, whether orgId must match the user's single org) beyond what the schema and route show, 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?

The description states a specific verb and resource: 'Get the user's roles for a particular organization,' and it is explicitly marked [DEPRECATED], which immediately signals it is a read tool with a lifecycle status. However, it does not differentiate itself from similarly named siblings such as identity_get_user_roles_in_organization or identity_get_org_roles, so the agent must still infer 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The [DEPRECATED] tag plus 'Use this API instead: /scim/v2/Users' gives explicit when-not-to-use guidance. The access policy table further states who may call it. The gap is that the recommended replacement is not itself a listed sibling tool, so the routing information is partially unusable in this tool set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_users_by_user_id_orgs_by_org_id_service_rolesA
Read-onlyIdempotent

[DEPRECATED] Get the user's roles for a particular organization.

Use this API instead: * /cloudapi/1.0.0/users Currently one user can belong to exactly one organization. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ❌ | | Service Account (Whitelisted Client) | ❌ |

GET /csp/gateway/am/api/v2/users/{userId}/orgs/{orgId}/service-roles

NameRequiredDescriptionDefault
orgIdYes(path)
userIdYes(path)
serviceDefinitionLinkNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a read-only, idempotent, non-destructive operation. The description adds important behavioral context beyond annotations: deprecation status, replacement guidance, access policy, and the one-user-one-organization constraint.

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 deprecation notice is front-loaded and the key alternative is easy to find. The access-policy table is somewhat verbose, but it is structured and useful rather than wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a deprecated read-only endpoint, the description includes the important replacement, access policy, and endpoint. It still omits the meaning and effect of serviceDefinitionLink and does not describe what the returned service roles look like, leaving some gaps for an agent invoking it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is moderate at 67%, and the description shows userId and orgId in the endpoint path, which adds a little placement context. However, it says nothing about the optional serviceDefinitionLink parameter, so it does not fully compensate for the schema gap.

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 the user's service roles for a particular organization. It also flags deprecation and gives an alternative API path, but it does not distinguish this tool from closely named siblings such as identity_get_user_org_service_roles or identity_get_users_by_user_id_orgs_by_org_id_roles.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly marks the tool as deprecated and points to a replacement API path, which is strong usage guidance. It also includes an access-policy table indicating which roles can use it, though it does not explicitly say when to choose this tool over the similar identity siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_get_user_service_roles_in_organizationA
Read-onlyIdempotent

[DEPRECATED] Get the user's service roles.

Use this API instead: * /cloudapi/1.0.0/users/{{userUrn}} Currently one user can belong to exactly one organization. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ✔️ | | Service Account (Whitelisted Client) | ❌ |

GET /csp/gateway/am/api/users/{userId}/orgs/{orgId}/service-roles

NameRequiredDescriptionDefault
orgIdYes(path)
userIdYes(path)
serviceDefinitionLinkNo

TDQS

A3.8/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. The description adds useful context beyond annotations by flagging deprecation, specifying the replacement endpoint, and documenting an access-policy matrix.

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 deprecation warning and replacement API are front-loaded, which is the most important information. The access-policy table is somewhat bulky for a deprecated endpoint but still relevant and 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?

The description covers deprecation, replacement, auth roles, and the one-organization constraint, which is useful for a read-only GET. With no output schema, however, it does not describe the returned service-role data or clarify serviceDefinitionLink, leaving gaps 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?

The schema already labels userId and orgId as path parameters, and the description's endpoint template restates that. However, the third parameter, serviceDefinitionLink, is left unexplained, and the description adds little 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: 'Get the user's service roles.' It also marks the tool deprecated and gives a replacement endpoint, but it does not distinguish it from closely named sibling identity tools such as identity_get_user_org_service_roles.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says '[DEPRECATED]' and gives a replacement API path, so an agent is clearly told when not to use this tool. It does not map the replacement to an available sibling MCP tool name, which leaves some inference required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_login_oauthB

[DEPRECATED] Get Access token.

Use this API instead: * /oidc/oauth2/token An alias of the AuthenticationController's get access token method. ### Access Policy | Role | Access | | ----- | ----- | | Anonymous | ✔️ |

POST /csp/gateway/am/api/login/oauth

NameRequiredDescriptionDefault
bodyNoRequest body

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real context beyond annotations: deprecation status, the anonymous access policy, and that it is a delegating alias of an underlying controller method. Annotations (readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false) already signal a non-idempotent, external-facing write-like call, and the description does not contradict them. Token lifetime, response shape, and error behavior are unstated, which keeps it below 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 deprecation notice is correctly front-loaded, but the text then carries markdown artifacts ("###", HTML entity &#x2714;&#xFE0F;) and repeats the endpoint path already present in the title and annotations. The access-policy table and alias sentence add little for an agent deciding whether to call a deprecated tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The single most important fact for an agent – that this endpoint is deprecated and should be avoided – is present, and the body schema is fully self-documented. However, with no output schema there is no information about what a successful token response contains, and the deprecation has no effective date or replacement tool name, so an agent cannot fully judge whether calling it is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: grant_type, code, refresh_token, client_id/client_secret, orgId, redirect_uri, scope and state are all documented in the schema, including the ignored-if-Authorization-header nuance. The description adds nothing about which parameters pair with which grant_type, 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?

States a verb+resource ("Get Access token") and identifies the tool as an alias of the AuthenticationController's get access token method behind POST /csp/gateway/am/api/login/oauth. However, "Get Access token" is generic for an OAuth token-minting endpoint supporting multiple grant types, and the prompt for the replacement points at a raw API path rather than a sibling tool, so an agent still has to infer how this differs from identity_post_login, identity_get_access_token_with_refresh_token, identity_get_access_token_pkce_flow, etc.

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 marks itself [DEPRECATED] and states "Use this API instead: /oidc/oauth2/token" – a clear when-not-to-use signal that most definitions lack. It also discloses the access policy (Anonymous allowed), giving context on auth requirements. It loses a point because the recommended alternative is a REST path, not a sibling tool the agent can actually select, and it doesn't say when this tool is still the correct choice over the other identity_get_access_token_* siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_patch_orgA

[DEPRECATED] Update organization details.

Use this API instead: * /cloudapi/1.0.0/orgs NOTE: At the moment we only allow for displayName change. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ❌ | | Service Account (Whitelisted Client) | ❌ |

PATCH /csp/gateway/am/api/orgs/{orgId}

NameRequiredDescriptionDefault
bodyYesRequest body
orgIdYes(path)

TDQS

A3.9/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, non-destructive write, and the description adds genuinely new context: the endpoint is deprecated, only displayName changes are currently honored, and access is restricted to Platform operators and Organization Owners. That permission and scope detail goes well beyond what the 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The deprecation warning is correctly front-loaded, but the markdown access table with escaped entities (&#x2714;&#xFE0F;, &#x0274c;) is noisy and partially malformed, consuming space that could have carried a plain 'requires Platform operator or Org Owner role' 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 deprecated single-field mutation with no output schema, the description covers the essentials: what changes, what is allowed, who may call it, and where to go instead. Return behavior is not described, but nothing needed to invoke it correctly is missing.

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 would be 3, but the note 'we only allow for displayName change' is critical semantics the schema cannot express — the body accepts id, name, refLink, metadata and parentRefLink, yet those are effectively inert. This prevents an agent from wasting a call setting fields that will be ignored.

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 organization details') and pins it to the exact endpoint PATCH /csp/gateway/am/api/orgs/{orgId}, so an agent knows precisely what it does. It doesn't explicitly contrast with nearby siblings like provider_update_org, but the deprecation banner and path make the target unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The [DEPRECATED] marker plus 'Use this API instead: /cloudapi/1.0.0/orgs' gives a clear when-not-to-use signal, and the access table states who is permitted. It falls short of 5 because the recommended alternative is a raw REST path rather than a sibling tool the agent could actually call, leaving the practical routing decision implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_patch_org_rolesC

[DEPRECATED] Edit roles.

Use this API instead: * /cloudapi/1.0.0/users ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ❌ | | Service Account (Whitelisted Client) | ❌ |

PATCH /csp/gateway/am/api/orgs/{orgId}/roles

NameRequiredDescriptionDefault
bodyYesRequest body
orgIdYes(path)

TDQS

C2.8/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, idempotentHint false, destructiveHint false), so the safety bar is lower. The description adds access-policy context — which roles may call it and that Service Accounts and Org Members may not — which is genuinely useful authorization info not in annotations. It does not disclose what the patch actually changes (adds and removes role assignments for a list of users) beyond what the name implies.

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 deprecation notice is correctly front-loaded, but the bulk of the text is a markdown table of access-policy rows with malformed HTML entities (&#x0274c;) that render as garbage rather than a check or cross. The table consumes most of the definition while conveying only two facts: operator and owner may call it, members and service accounts may not.

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 non-idempotent write with a nested body object and no output schema, and the description never explains what a patch call does to existing role bindings or what the response looks like. The deprecation redirect points to a URL rather than a usable sibling tool, so an agent has no actionable migration path. Authorization is the only completeness strength.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 and the nested body fields are already documented in the schema, making 3 the baseline. The description contributes nothing about orgId or the body shape, and the trailing PATCH path merely restates the schema, so no credit above 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?

"Edit roles" names a verb and a resource but leaves the scope ambiguous: it does not say whose roles, on what container, or that it adds/removes role bindings per user. The [DEPRECATED] marker and the raw PATCH path are the most informative parts, and they still require the reader to parse a URL template to know the target resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does say when not to use it (deprecated) and offers a replacement, which is real guidance. However the replacement is a raw REST path (/cloudapi/1.0.0/users) rather than any of the sibling identity_* tools, so an agent cannot act on it, and no condition distinguishes it from identity_patch_user_roles_in_organization or identity_update_group_roles_on_organization.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_patch_user_roles_in_organizationA

[DEPRECATED] Edit the user's roles.

Use this API instead: * /cloudapi/1.0.0/users/{{userUrn}} Currently one user can belong to exactly one organization. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ❌ | | Service Account (Whitelisted Client) | ❌ |

PATCH /csp/gateway/am/api/users/{userId}/orgs/{orgId}/roles

NameRequiredDescriptionDefault
bodyYesRequest body
orgIdYes(path)
userIdYes(path)

TDQS

A3.9/5.0
Behavior4/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 useful behavioral context beyond that: deprecation status, the one-organization constraint, and detailed access policy. It stops short of explaining the effect of adding/removing roles or what the PATCH 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 deprecation warning is correctly front-loaded, followed by the replacement reference and access policy. The access-policy table and endpoint line add bulk, but they are relevant for a deprecated privileged mutation tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a deprecated privileged role-editing tool with a nested request body and no output schema, the description covers the most important context: deprecation, replacement path, access restrictions, and the one-organization constraint. Parameters are fully covered by the schema and safety traits by annotations, though mutation return behavior and role-removal impact are not described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents userId, orgId, and the nested body fields including rolesToAdd and rolesToRemove. The description adds no parameter-specific guidance beyond the general purpose and access policy, so the 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 clear verb and resource: "Edit the user's roles" in an organization, and the PATCH endpoint reinforces the scope. It does not explicitly distinguish this tool from sibling identity tools such as identity_get_user_roles_in_organization or identity_patch_user_service_roles_in_organization, 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description is front-loaded with "[DEPRECATED]" and says to use a replacement API instead, which gives strong when-not-to-use guidance. It also lists access-policy exclusions for Organization Member and Service Account. The replacement is a REST path rather than a named sibling MCP tool, so the alternative is clear but not fully integrated into the tool ecosystem.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_patch_user_roles_on_organizationA

[DEPRECATED] (BETA) Update user roles in organization.

Use this API instead: * /cloudapi/1.0.0/users/{{userUrn}} Update service and organization roles of a user in the organization. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ❌ | | Service Account (Whitelisted Client) | ❌ |

PATCH /csp/gateway/am/api/v3/users/{userId}/orgs/{orgId}/roles

NameRequiredDescriptionDefault
bodyYesRequest body
orgIdYes(path)
userIdYes(path)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare non-read-only, non-destructive, non-idempotent, open-world behavior; the description adds the deprecation status and the authorization matrix, which are the two facts an agent most needs before invoking a privileged mutation. It does not explain what happens to roles omitted from the request or how failures are reported, but it goes meaningfully 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?

The deprecation warning is correctly front-loaded, but the access-policy table is rendered with escaped HTML entities and the PATCH path is restated even though it already appears in the title and annotations. Usable, but not tightly packaged.

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 deprecated, authorization-sensitive mutation with a nested request body and no output schema, the description supplies the replacement path, the caller requirements, and the endpoint. Remaining gaps about add/remove merge semantics and response behavior are tolerable given the complete body 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 body's nested serviceRoles/organizationRoles, rolesToAdd/rolesToRemove, and deprecated roleNames fields are already documented. The description only echoes the path parameters via the endpoint template and adds no semantics (e.g. whether removals apply when the role is absent), 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 ('Update user roles in organization') plus the exact endpoint, so the operation is unambiguous. It does not, however, distinguish itself from close siblings like identity_patch_user_service_roles_in_organization or identity_patch_org_roles, which an agent would need to 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Strongly signals that this tool is deprecated and points to a replacement API path, and the access-policy table enumerates exactly which roles (Platform operator, Organization Owner) may call it. The gap is that the recommended alternative is given as a REST URL rather than a sibling tool name, so the agent must infer which tool implements it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_patch_user_service_roles_in_organizationA

[DEPRECATED] Edit the user's service roles.

Use this API instead: * /cloudapi/1.0.0/users/{{userUrn}} Currently one user can belong to exactly one organization. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ❌ | | Service Account (Whitelisted Client) | ❌ |

PATCH /csp/gateway/am/api/users/{userId}/orgs/{orgId}/service-roles

NameRequiredDescriptionDefault
bodyYesRequest body
orgIdYes(path)
userIdYes(path)

TDQS

A3.8/5.0
Behavior4/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 covered; the description adds real value on top with deprecation status, the authorization matrix, and the constraint that a user belongs to exactly one organization. It does not describe add-vs-remove merge semantics or what happens to roles not listed, which for a PATCH tool is a notable remaining gap.

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 deprecation warning is correctly front-loaded, but the body then mixes a markdown access table, a consumer-facing API URL, and a raw 'PATCH /csp/gateway/...' path that merely repeats the annotation title. For a tool the agent is being told not to call, the text is heavier than it needs to be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and fully covered nested parameters, the description supplies the pieces the schema cannot: deprecation, authorization requirements, and the single-organization constraint. An agent has enough to decide not to call it or to call it correctly if forced, though the absence of add/remove merge semantics leaves one behavioral hole.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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, orgId, body, rolesToAdd, rolesToRemove and the deprecated name-based fields are all documented in the schema. The description adds no syntax, format, or interaction detail (e.g. whether add and remove are applied atomically), so it sits at the baseline for a fully-documented 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 ('Edit the user's service roles') and flags the tool as deprecated up front, so an agent can immediately tell it is a legacy variant of the role-editing family. It does not name the sibling that supersedes it (identity_patch_user_roles_in_organization), so differentiation is by context rather than by explicit routing.

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 an explicit alternative endpoint ('Use this API instead: /cloudapi/1.0.0/users/{{userUrn}}') plus a full access-policy table stating which roles may call it (Platform operator yes, Org Member no). What it lacks is naming of the concrete sibling tools an agent should switch to, so the guidance is clear but not directly actionable within this toolset.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_post_auth_logoutA

[DEPRECATED] Performs logout.

Use this API instead: * /cloudapi/1.0.0/sessions/current Performs a logout by invalidating the supplied token (if supplied) and returning an URL to navigate to. The token to invalidate is taken from the ex-identity-auth-token header. ### Access Policy | Role | Access | | ----- | ----- | | Anonymous | ✔️ |

POST /csp/gateway/am/api/auth/logout

NameRequiredDescriptionDefault
The_access_token_to_be_invalidated.No(header)

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already state it's a non-destructive, non-idempotent, open-world write. The description adds meaningful context beyond them: the token source is the 'ex-identity-auth-token' header, the token is optional ('if supplied'), and an URL is returned for navigation. The Anonymous access policy is also disclosed, though the response payload isn't fully described.

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 deprecation notice is correctly front-loaded, but the body contains a markdown table and a raw URI that push important details further down. The text is short overall yet structured more like generated OpenAPI documentation than agent-optimized guidance.

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 a simple one-parameter schema, the description supplies what's missing: deprecation status, migration path, token source, and return URL. It could name the replacement sibling tool more directly, but the operational picture is complete enough to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and there's only one optional parameter, so structured data handles most of it. The description adds useful nuance: the token is taken from the 'ex-identity-auth-token' header and is optional ('if supplied'), which clarifies behavior of the lone parameter beyond the schema's generic description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Performs logout') and explicitly names its replacement (the deprecated endpoint) so its identity is clear. Sibling tools include plenty of identity/provider endpoints, but the phrase 'auth/logout' plus the deprecation note pins down the resource and disambiguates from provider_logout_current_session.

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 '[DEPRECATED]' banner plus 'Use this API instead: /cloudapi/1.0.0/sessions/current' gives clear migration guidance, though the replacement is given as a raw URI rather than a sibling tool name. There's no note about when this deprecated endpoint is still acceptable, so guidance is present but incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_post_loginA

[DEPRECATED] Login.

Use this API instead: * /oauth/tenant/{{tenant name}}/token Performs login. ### Access Policy | Role | Access | | ----- | ----- | | Anonymous | ✔️ |

POST /csp/gateway/am/api/login

NameRequiredDescriptionDefault
bodyYesRequest body
access_tokenNoWhen this parameter is present, the response will contain refresh token.

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, openWorldHint=true, idempotentHint=false, and destructiveHint=false. The description adds useful context about deprecation and anonymous access, but does not explain token issuance, refresh-token behavior, or response semantics beyond what the schema already says.

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 deprecation warning is front-loaded and the description is short. There is some redundancy between 'Login' and 'Performs login', and the access-policy table is awkwardly formatted, but the overall size is appropriate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers deprecation, access policy, and the endpoint, and the input schema is fully described. However, for a login operation with no output schema, it does not explain the returned token or refresh-token behavior, leaving a meaningful gap even though the tool is deprecated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 the nested body fields and the access_token parameter. The description adds no parameter-level meaning beyond the schema, which is baseline behavior when the schema is fully covered.

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 operation (login), marks it deprecated, and gives the HTTP endpoint. It is clearly a login tool, but it does not explicitly name the sibling tool that should be used instead, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says the tool is deprecated and points to an alternative API path, which is strong when-not guidance. However, the alternative is given as a raw endpoint rather than a sibling tool name such as identity_login_oauth, leaving some inference for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_remove_groups_from_organizationA
DestructiveIdempotent

[DEPRECATED] Remove Groups From Organization

Use this API instead: * /cloudapi/1.0.0/groups Remove groups from organization.Note: DEPRECATED: Response field failed will be deprecated. You can use the field failures instead. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ❌ | | Service Account (Whitelisted Client) | ❌ |

DELETE /csp/gateway/am/api/orgs/{orgId}/groups

NameRequiredDescriptionDefault
bodyNoRequest body
orgIdYes(path)

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as destructive, non-read-only, idempotent, and open-world. The description adds valuable context beyond annotations: deprecation status, replacement endpoint, access-policy roles, and a note about the deprecated 'failed' response field. It does not explain the side effects of removing groups or what notifyUsersInGroups does, but the annotation coverage lowers the burden.

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 purpose and deprecation are front-loaded, but the text repeats 'DEPRECATED', contains malformed Markdown, and awkwardly concatenates the replacement API note with the response-field deprecation note. The access-policy table is useful, but the overall structure is cluttered rather than concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a deprecated destructive tool, the description supplies the replacement path, access roles, endpoint, and response-field deprecation note. The input schema covers parameters fully and annotations cover safety traits; missing return-value details are minor because no output schema exists and the tool is deprecated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 orgId and the nested body. The description only echoes the orgId path via the endpoint and does not add meaning for body.ids or body.notifyUsersInGroups, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action and resource: 'Remove Groups From Organization' and gives the DELETE endpoint. It does not name a sibling MCP tool as the alternative, but the deprecation warning and replacement API path make the purpose distinguishable enough.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly marks the tool as deprecated and directs callers to use '/cloudapi/1.0.0/groups' instead, which is a strong when-not-to-use signal. The access policy table also clarifies who may use it, though the alternative is an API path rather than a sibling tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_search_groupsA
Read-onlyIdempotent

[DEPRECATED] Search for a group.

Use this API instead: * /scim/v2/Groups In this case the PagedResponse.results field will contain Group object. See the Group model for reference. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ✔️ | | Service Account (Whitelisted Client) | ✔️ |

GET /csp/gateway/am/api/groups/search

NameRequiredDescriptionDefault
idpIdNoThis parameter is included for CSP compatibility and its value is ignored.
pageLimitNoSpecifies the maximum results per page for every call.
pageStartNoThe index of the first element of the page. One based.
searchTermYesThe search term, uses 'contains' filter on the group displayName attribute.

TDQS

A3.5/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 valuable context beyond annotations: it warns that the tool is deprecated, lists access-policy roles, names the endpoint, and explains that PagedResponse.results contains Group objects. It stops short of describing rate limits or other runtime behavior, so it is strong but not exhaustive.

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 deprecation warning and replacement API are front-loaded, which is good. However, the access-policy role table is lengthy for a deprecated tool, and the endpoint is repeated in both the description and annotations, adding avoidable bulk without much incremental clarity.

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 deprecated 4-parameter search tool with full schema coverage and no output schema, the description supplies enough context to understand its status, access rules, response shape, and replacement path. It does not explain how it relates to sibling group-search tools, but it is otherwise complete enough for an agent to avoid or correctly handle the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented in the input schema, including that idpId is ignored and searchTerm uses a contains filter on displayName. The description adds no additional parameter semantics beyond what the schema already 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.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence, 'Search for a group,' is a near-restatement of the tool name and gives no scope, such as organization groups versus LDAP groups, to distinguish it from the many sibling group-search tools. The deprecation notice and endpoint add some context, but the core purpose remains vague rather than specifically differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly marks the tool as deprecated and directs callers to use '/scim/v2/Groups' instead, which is clear when-not-to-use guidance. It does not name an MCP sibling tool as the alternative, so the guidance is not fully actionable within the tool set, but the deprecation signal is strong and front-loaded.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_search_org_groupsB
Read-onlyIdempotent

[DEPRECATED] Find groups.

Use this API instead: * /scim/v2/Groups Performs a search for groups in the organization. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ✔️ | | Service Account (Whitelisted Client) | ✔️ |

GET /csp/gateway/am/api/orgs/{orgId}/groups-search

NameRequiredDescriptionDefault
orgIdYes(path)
groupSearchTermYes

TDQS

B3.1/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 behavior, so the safety profile is covered. The description adds useful context with an access policy table (which roles can call it) and a deprecation warning, but it does not describe return format, pagination, or search semantics beyond the one-line purpose.

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 deprecation notice is front-loaded and clear, and the purpose is stated early. However, the description is bloated with a raw API access-policy table and endpoint documentation that are only marginally useful for tool invocation, making it longer than necessary for a simple two-parameter search.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (two parameters, no output schema) and the presence of annotations covering safety and idempotency, the description provides essential context (deprecation, access policy). Yet it omits critical selection guidance relative to sibling identity tools and leaves the search parameter unexplained, which are meaningful gaps for correct invocation.

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 only 50%: orgId has a '(path)' description, but groupSearchTerm is undocumented in both schema and description. The description does not compensate—it never explains what groupSearchTerm matches (exact, prefix, substring) or how results are ordered, leaving a required parameter semantically opaque.

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 (search) and resource (groups in the organization), and includes the underlying endpoint, so an agent can tell what the tool does. However, it does not differentiate this from sibling tools like identity_search_groups or identity_get_organization_groups, leaving ambiguity when multiple search-like tools exist.

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 explicitly marks the tool as deprecated and points to an alternative raw API (/scim/v2/Groups), which is a strong 'when not to use' signal. But it provides no guidance on when this tool might still be appropriate versus its direct siblings, and the alternative is not a tool in the current list, so selection among tools is only weakly supported.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_search_usersB
Read-onlyIdempotent

[DEPRECATED] Search for users.

Use this API instead: * /cloudapi/1.0.0/users Search users in organization having username, firstName, lastName or email which "contains" search term e.g. search for "test" will return test@vmware.com if test@vmware.com is part of the organization. Search results limited to first 20 results. Please refine the search term for accurate results. Organization members will receive basic user information. Organization owners will additionally receive role details of the users. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | &amp;…

GET /csp/gateway/am/api/orgs/{orgId}/users/search

NameRequiredDescriptionDefault
orgIdYesUnique identifier (GUID) of the organization. (path)
expandProfileNoIndicates if the response should be expanded with the user profile, the value is ignored, only the existence of parameter is checked.
userSearchTermYesThe string to be searched within firstName, lastName, username or email.
includeGroupIdsInRolesNoIndicates if the inherited roles in the response should indicate group information, the value is ignored, only the existence of parameter is checked.

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 (readOnly, idempotent, non-destructive, open-world), so the description's job is to add context. It does add real behavior: results are capped at the first 20 matches, and output varies by caller role (members get basic user info, owners additionally get role details). It stops short of describing pagination or what happens when the cap is hit.

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?

Deprecation and the alternative are correctly front-loaded, and the search semantics arrive early. But the body is bloated by a markdown access-policy table and heading artifacts (### blocks, trailing GET path) that read like pasted API docs rather than agent-facing guidance.

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 carries the burden of explaining return values, and it only partially does so (role-dependent richness). The 20-result truncation is disclosed, but there is no indication of how to retrieve beyond the first 20 or how to page, which matters for a search tool an agent may need to iterate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 four parameters, including the presence-only quirk of expandProfile and includeGroupIdsInRoles. The description reinforces what userSearchTerm matches but adds no syntax, format, or edge-case detail beyond the schema — 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 ('Search for users') and describes the matching semantics precisely: substring match across firstName, lastName, username or email, with a concrete example. However, it never differentiates itself from the many sibling search tools (provider_search_ldap_users, identity_search_users_in_idp_by_names_and_email, provider_query_users), and the lead 'use this API instead: /cloudapi/1.0.0/users' is a raw REST path rather than a routable tool name, which blurs rather than sharpens purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The [DEPRECATED] marker plus the 'use this API instead' line implies when NOT to call it, and the 20-result cap comes with explicit advice ('refine the search term'). But the named alternative is a URL endpoint the agent cannot invoke from this toolset, so the redirection is not actionable within MCP, and no sibling tool is offered as a substitute.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_search_users_in_idp_by_names_and_emailB

[DEPRECATED] Search users in idp by names and email

Use this API instead: * /scim/v2/Users Search users in the corresponding organization in idp by names and email. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ✔️ | | Service Account (Whitelisted Client) | ✔️ |

POST /csp/gateway/am/api/v2/users/search

NameRequiredDescriptionDefault
bodyYesRequest body to search users in the identity providers.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true, idempotentHint=false), so the description's job is to add context — and it does add two things that matter: the deprecation status and the role-based access table (Platform operator, Org Owner, Org Member, Service Account). It discloses nothing about result behavior (ordering, matching semantics for name vs. email, truncation), and the readOnlyHint=false on a pure search may confuse an agent, though the disclosed 'POST' verb makes the annotation consistent with an HTTP-derived hint rather than a 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?

The critical information (deprecation) is correctly front-loaded, which is the right structure. But a large markdown access-policy table and a raw endpoint path consume most of the description's length for boilerplate that adds little to tool selection, and the sentence flow is fragmented by markdown headers embedded in a prose field.

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?

Deprecation, replacement, access roles, and HTTP binding are all covered, which is more than many definitions offer. With no output schema, though, the description should say something about the response shape (list of users, paging envelope tied to pageStart/pageLimit), and for a nested-body search tool it leaves the result contract entirely 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% and every nested body field (idpId, domain, pageLimit, pageStart, searchTerm) already carries a description with defaults and constraints, so the baseline of 3 applies. The prose adds no parameter meaning beyond the schema — notably it does not clarify how searchTerm matches across first name, last name, and email in practice.

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 with scope: 'Search users in idp by names and email', matching the tool name and distinguishing it as an IdP-scoped name/email lookup. However, it never distinguishes itself from near-identical siblings in the toolset such as identity_search_users, provider_search_ldap_users, or provider_query_users, so an agent still has to guess which search to use.

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 does provide explicit negative guidance ('[DEPRECATED] ... Use this API instead: /scim/v2/Users'), which is a genuine when-not-to-use signal. But the recommended replacement is a raw REST path, not one of the available sibling tools, so the agent is steered away without being steered toward a callable alternative, and there is no guidance on when IdP search beats the other search tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_update_group_roles_on_organizationA

[DEPRECATED] Update Group Roles On Organization

Use this API instead: * /cloudapi/1.0.0/groups/{{groupUrn}} Update roles of a group within organization.Note: Email notification for updating group roles of group is disabled by the Identity Service. ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ❌ | | Service Account (Whitelisted Client) | ❌ |

PATCH /csp/gateway/am/api/orgs/{orgId}/groups/{groupId}/roles

NameRequiredDescriptionDefault
bodyYesThe group roles to be updated.
orgIdYesUnique identifier (GUID) of the organization. (path)
groupIdYesUnique identifier of the group. (path)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as a non-read-only, non-idempotent, open-world mutation. The description adds valuable context beyond annotations: deprecation status, the replacement endpoint, and that email notifications are ignored by the Identity Service. It does not explain the return behavior or the full effect of removing roles, but the annotation coverage lowers the burden.

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 deprecation warning and replacement path are front-loaded, which is the most important information. The access-policy table is somewhat verbose but earns its place by clarifying authorization; overall the description is appropriately structured for a deprecated administrative tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers deprecation, migration, authorization, and a relevant behavioral note about notifications. The input schema is rich and there is no output schema, so the main remaining gap is that return values and precise role-removal effects are not described, but the definition is otherwise complete for an agent to avoid or correctly invoke this deprecated 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%, and the nested body schema documents rolesToAdd, rolesToRemove, serviceDefinitionId, and notification fields in detail. The description adds no parameter-level syntax or usage meaning beyond what the schema already provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: updating group roles on an organization, reinforced by the PATCH endpoint and a clear [DEPRECATED] label. It distinguishes this from read-oriented siblings such as identity_get_group_roles_on_organization by its mutation intent, though it does not name sibling tools explicitly.

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?

It explicitly tells the agent not to use this deprecated tool and points to the replacement API path. The access-policy table further clarifies which roles can invoke it, giving strong when-to-use and permission context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_update_user_preferencesA
Idempotent

[DEPRECATED] Update the currently logged in user's locale preferences. Note that only language field will be saved.

Use this API instead: * /cloudapi/1.0.0/preferences/internal:localLanguage ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ✔️ | | Service Account (Whitelisted Client) | ✔️ |

PUT /csp/gateway/am/api/loggedin/user/profile/locale-preferences

NameRequiredDescriptionDefault
bodyYesRequest body

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare idempotent, non-destructive, non-readOnly, and openWorld, so the remaining burden is modest. The description adds real behavioral context annotations cannot: deprecation status and the caveat that only the language field is persisted even if locale is supplied. It does not describe the response body, but with no output schema that is a minor gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Deprecation and replacement are correctly front-loaded, and the field caveat is prominent. However, the raw markdown role table and the bare PUT path bloat the text without adding much beyond what an agent needs to select and call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, fully-documented schema with annotations covering safety, the description supplies what is missing: deprecation, replacement, authorization roles, and the language-only persistence caveat. Return-value behavior is unspecified, which is the only notable gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description exceeds that by clarifying that the `locale` property is effectively ignored and only `language` is saved — meaning an agent can skip populating locale despite it appearing in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (update), resource (locale preferences), and scope (currently logged-in user), and immediately flags the tool as deprecated with a named replacement. An agent can distinguish it from identity_update_user_profile and provider_update_user_preference 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 says [DEPRECATED] and names the replacement endpoint (/cloudapi/1.0.0/preferences/internal:localLanguage), giving a clear when-not-to-use signal. The role/access table adds who may call it, further grounding usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

identity_update_user_profileA

[DEPRECATED] Update the currently logged in user's profile attributes.

Use this API instead: * /cloudapi/1.0.0/preferences/internal:localLanguage ### Access Policy | Role | Access | | ----- | ----- | | Platform operator | ✔️ | | Organization Owner | ✔️ | | Organization Member | ✔️ | | Service Account (Whitelisted Client) | ✔️ |

PATCH /csp/gateway/am/api/loggedin/user/profile

NameRequiredDescriptionDefault
bodyYesUpdate user profile request

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, destructiveHint=false, openWorldHint=true, so the description need not restate safety. It adds real value beyond them: deprecation status and an explicit access-policy table showing all roles (Platform operator, Org Owner, Org Member, whitelisted Service Account) may call it. It does not explain PATCH partial-update semantics or what happens to fields omitted from the body.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the deprecation warning, which is the single most decision-relevant fact, then the endpoint and access matrix. Short and well ordered, with no redundant prose beyond the boilerplate access table.

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 deprecated single-nested-body mutation tool with no output schema, the description covers deprecation and authorization. What is missing is disambiguation for the agent: the replacement is not named as a sibling tool, and partial-update behavior for a non-idempotent PATCH 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 description coverage is 100%: locale, language, metadata, defaultOrgId and preferredTheme are each documented in the nested body schema, so the schema carries the burden. The description contributes nothing about these fields, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: update the logged-in user's profile attributes via the logged-in-user profile endpoint. The DEPRECATED marker further distinguishes it from active siblings such as identity_update_user_preferences or provider_update_user. It loses a point because the recommended replacement is given as a raw HTTP path rather than a sibling tool name, leaving the routing ambiguous.

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 deprecation notice plus 'use this API instead' gives a clear signal to prefer the alternative, which is meaningful guidance. However, the alternative is an endpoint path an agent cannot map directly to a callable tool, and there is no statement of the narrow case (if any) where this tool is still needed, such as updating locale/theme/metadata together.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metrics_get_qp_resource_detailsC
Read-onlyIdempotent

Returns registered metrics GET /aggregator/api/metrics

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /approval/api/about

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, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds no behavioral context beyond that — nothing about result volume, pagination, or what 'registered' means in this aggregator 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 short and front-loaded, but at two lines it is under-specified rather than efficient; the endpoint path ('GET /aggregator/api/metrics') largely duplicates the title and annotation title, so that line does not earn much of 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?

With no output schema, the description is the only place an agent could learn what a 'registered metric' record contains or how results are shaped, and it says nothing. For a listing endpoint in a crowded metrics_* family, the definition is too thin to call 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 the single optional apiVersion parameter is well documented in the schema itself. The description contributes nothing further, so the baseline 3 applies — the schema does the work.

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 pairs a generic verb with a vague resource ('Returns registered metrics') and appends the raw endpoint path. It is not pure tautology, but it does not reconcile the mismatch with its own name ('qp_resource_details') and gives no basis for distinguishing it from siblings such as metrics_get_resource_usage_metrics or metrics_get_resource_criteria.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool, when not to, or which of the many metrics_* siblings to prefer instead. The agent must infer usage purely from the tool name and the endpoint string.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metrics_get_resource_criteriaB
Read-onlyIdempotent

Returns resource criteria for deployment limit policy. GET /deploymentlimit/api/policy/resourceCriteria/schema

NameRequiredDescriptionDefault
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /approval/api/about

TDQS

B3.1/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 open-world, so the safety profile is covered. The description adds only that the payload relates to deployment limit policy criteria and appends the raw endpoint path, which duplicates the annotation title; it does not explain what the returned criteria/schema contains or whether it is static metadata.

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 is a tight purpose statement, but the second sentence is the raw HTTP path already present in the annotations title, so it earns less than its space. Still short and front-loaded overall.

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?

There is no output schema, so the description should convey what 'resource criteria' actually returns — a schema document versus a list of criteria are very different payloads and the description leaves that ambiguous. For a read-only metadata fetch this is adequate but not sufficient to predict 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?

The single optional apiVersion parameter has full schema description coverage including its yyyy-MM-dd format, so the schema carries the burden. The description adds no versioning or defaulting guidance 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?

States a specific verb and resource ('Returns resource criteria') and scopes it to the deployment limit policy, which is enough for an agent to distinguish it from the metrics_usage siblings. The 'schema' suffix in the path hints it returns a criteria schema rather than live metric values, though the description never says that plainly and the 'metrics_' name prefix is misleading given the deployment-limit 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 indication of when an agent should call this versus metrics_get_resource_usage_metrics, metrics_get_qp_resource_details, or any deployment-limit alternative. There are no prerequisites or sequencing hints either, so 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.

metrics_get_resource_usage_metricsC
Read-onlyIdempotent

Returns aggregated metrics values of the current user GET /aggregator/api/metrics/deployment/aggregate

NameRequiredDescriptionDefault
orgLevelNo
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /approval/api/about

TDQS

C2.4/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. The only behavioral claim the description adds is a "current user" scope, and that is ambiguous against the orgLevel parameter, which implies a broader aggregation scope; nothing is said about granularity, time range, or what aggregation is performed.

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 raw path "GET /aggregator/api/metrics/deployment/aggregate" duplicates the annotation title and occupies space that could have described the returned aggregation. The sentence is efficient but under-informative rather than tautological.

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 an aggregation tool whose entire value is knowing what gets aggregated over which period and scope, the description leaves the agent unable to predict the response. The orgLevel parameter and the relationship to the by_project/by_user siblings are unresolved.

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 50%: apiVersion is documented in the schema, but orgLevel has no description anywhere. The description could have explained what orgLevel=true changes (current-user vs organization-wide aggregation), which is precisely the ambiguity that matters here, and it does not.

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 and resource ("returns aggregated metrics values") and adds a scope ("of the current user"), which partly distinguishes it from siblings like metrics_get_resource_usage_metrics_by_project and _by_user. However, it never says which metrics or measures are aggregated, nor what the aggregation window is, so the purpose stays at the level of the name plus endpoint path.

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 the obvious alternatives (metrics_get_resource_usage_metrics_by_project, _by_user, metrics_get_qp_resource_details), even though those siblings cover similar ground. The agent must infer selection 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.

metrics_get_resource_usage_metrics_by_projectC
Read-onlyIdempotent

Returns aggregated metrics values of the given project GET /aggregator/api/metrics/deployment/aggregate/projects/{projectId}

NameRequiredDescriptionDefault
projectIdYes(path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /approval/api/about

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, destructiveHint=false and openWorldHint, so the safety profile is fully covered elsewhere. The description adds only a restatement of the HTTP endpoint, which duplicates the annotation title; it says nothing about aggregation window, time-range constraints, or whether there are no time parameters at all — a real gap for a metrics aggregation 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?

Two short lines, front-loaded with the purpose, no filler prose. The embedded GET path is largely redundant with the annotation title but is at least compact rather than verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must convey what comes back, yet 'aggregated metrics values' is undefined — no metric names, units, dimension set, or time bucketing. For a metrics aggregation endpoint with two parameters and no return documentation, an agent cannot predict the result shape well enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (projectId marked '(path)', apiVersion documented with format guidance), so the schema carries the load. The description adds no extra meaning such as whether projectId accepts a UUID or name, 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?

Specific verb + resource + scope: 'Returns aggregated metrics values of the given project' tells the agent this is an aggregation read scoped to one project, and the embedded path confirms the projectId path parameter. It does not name or contrast with the near-identical siblings metrics_get_resource_usage_metrics and metrics_get_resource_usage_metrics_by_user, so sibling discrimination rests mostly on 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 statement of when to use this versus metrics_get_resource_usage_metrics (unscoped) or metrics_get_resource_usage_metrics_by_user. It also never says whether the project must exist or what happens if it doesn't. The agent must infer the choice 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.

metrics_get_resource_usage_metrics_by_userC
Read-onlyIdempotent

Returns aggregated metrics values of the given user GET /aggregator/api/metrics/deployment/aggregate/users/{userId}

NameRequiredDescriptionDefault
userIdYes(path)
apiVersionNoThe version of the API in yyyy-MM-dd format (UTC). For versioning information refer to /approval/api/about

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 the safety profile is covered. The description adds only a raw endpoint path and the word "aggregated"; it says nothing about time-range defaults, aggregation semantics, or permissions, which is where value beyond the annotations would lie.

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 line is a raw REST path that duplicates the title/annotation title rather than earning its place. It is under-specified rather than wasteful.

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 metrics-aggregation read tool with no output schema needs the description to explain what dimension the values are aggregated on and over what period. Neither is present, so an agent cannot predict the shape or scope of 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 both userId and apiVersion are documented in the schema; a baseline of 3 applies. The description only restates that the result is scoped to "the given user" and adds no format, constraint, or semantics beyond the schema.

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 the verb and resource ("Returns aggregated metrics values of the given user"), but the phrasing is generic: it does not say which metrics, over what window, or with what aggregation. It also does not distinguish itself from siblings metrics_get_resource_usage_metrics and metrics_get_resource_usage_metrics_by_project.

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 naming of alternatives. With four metrics_* siblings in the list, the description gives no basis for picking this one over the project-scoped or unscoped variants beyond the implied user parameter.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_delete_blueprint_by_idC
DestructiveIdempotent

Delete the selected onboarding blueprint Delete the selected onboarding blueprint in the current organization DELETE /relocation/onboarding/blueprint/{id}

NameRequiredDescriptionDefault
idYesThe id of the blueprint (path)

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 safety profile is covered. The description adds only the organization scoping context; it does not say what is destroyed (dependent plans/deployments?), whether deletion is reversible, or what authorization is required — all of which matter for a destructive call.

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 two lines are near-verbatim duplicates ('Delete the selected onboarding blueprint' / 'Delete the selected onboarding blueprint in the current organization'), and the third is a raw HTTP route that duplicates the annotation title. Substantial redundancy for a three-line 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 single-parameter destructive delete with strong annotations and no output schema, the description is minimally sufficient — the agent knows what it deletes and where. It is missing consequences of deletion and any post-delete state, which for a destructive tool is the main thing description can still add.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 required 'id' parameter with 100% schema description coverage, so the schema fully documents it. The description adds nothing about the id (format, whether it is the blueprint id or an external reference) beyond what the schema 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 names a specific verb and resource (delete the selected onboarding blueprint) and adds the scope 'in the current organization'. It is clear what the tool does, though it never distinguishes itself from adjacent onboarding tools such as onboarding_get_blueprint_by_id or onboarding_patch_blueprint_by_id beyond the verb.

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 alternatives (e.g., patching a blueprint, or deleting via the blueprint_* family of tools), nor any prerequisites or warnings before an irreversible delete. The only hint is the implicit 'you must already have an id'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_delete_deployment_by_idC
DestructiveIdempotent

Delete the selected onboarding deployment Delete the selected onboarding deployment in the current organization DELETE /relocation/onboarding/deployment/{id}

NameRequiredDescriptionDefault
idYesThe id of the deployment (path)

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 and openWorldHint=true, so the safety profile is covered by structured data. The description adds nothing beyond that — no statement about cascading deletion of associated plans/resources, required permissions, or whether the delete is soft or permanent — so it fails to earn credit 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same sentence is repeated verbatim twice before the raw HTTP route, which is redundant padding rather than front-loaded signal. Almost nothing in the text is new information after the first 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?

For a one-parameter destructive delete whose annotations already flag danger and idempotency, the essentials are present, but key facts an agent would want — scope of the deletion, side effects on linked plans/resources, and confirmation that the id is a deployment id in the current org — are absent, and there is no output schema to cover return 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?

There is a single required 'id' parameter whose schema description ('The id of the deployment (path)') is fully documented at 100% coverage, so the baseline of 3 applies. The description mentions only 'the selected deployment' and adds no meaning about where the id comes from or what it identifies.

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 the selected onboarding deployment in the current organization'), which is enough to distinguish an onboarding-deployment deletion from deployment_delete_deployment or onboarding_delete_blueprint_by_id. It never explicitly names or contrasts those siblings, 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 guidance on when to use this versus onboarding_delete_plan_by_id, onboarding_delete_resource_by_id, or deployment_delete_deployment, nor any prerequisite such as the deployment being in a deletable state. The description is pure restatement of the operation with no usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_delete_plan_by_idC
DestructiveIdempotent

Delete the selected onboarding plan Delete the selected onboarding plan in the current organization DELETE /relocation/onboarding/plan/{id}

NameRequiredDescriptionDefault
idYesThe id of the plan (path)

TDQS

C2.7/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 structurally. The description adds nothing beyond that: it never says the deletion is permanent, whether it cascades to resources/deployments under the plan, or what happens if the plan is in an executing state. The raw DELETE path merely duplicates the annotation 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?

The same sentence appears twice in slightly different forms, then a raw HTTP path is appended — three statements conveying one fact. No front-loaded warning or scope detail earns the repetition.

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 destructive, organization-scoped delete with no output schema, the description should say what a successful delete returns or removes and what error conditions exist (unknown id, plan in use). None of that is present, leaving the agent to guess at 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% and there is a single required path parameter ('The id of the plan (path)'), so the schema carries the semantics. The description adds no information about where the id comes from (e.g. onboarding_get_plan_by_id) or format constraints, 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 ("Delete the selected onboarding plan") and the organization scope, which distinguishes it from the sibling deletes for deployments, resources, blueprints and WO-execute plans. It never names those siblings explicitly, so the differentiation relies on the reader inferring 'plan' vs 'deployment'.

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 onboarding_patch_plan_by_id, onboarding_delete_deployment_by_id or the other onboarding deletes, and no prerequisites such as plan state, required role, or whether dependent resources must be removed first. The only usage signal is the word 'selected'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_delete_resource_by_idC
DestructiveIdempotent

Delete the selected onboarding resource Delete the selected onboarding resource in the current organization DELETE /relocation/onboarding/resource/{id}

NameRequiredDescriptionDefault
idYesThe id of the resource (path)

TDQS

C2.9/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 safety profile is known. The description adds only the organizational scope ('current organization') and says nothing about irreversibility, cascading effects, or required permissions, so it earns partial credit 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two lines are near-verbatim duplicates and the third is a REST path that restates the annotation title. No sentence is front-loaded with new information, so the text is short but largely redundant rather than economical.

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 single-parameter delete with full annotation coverage and no output schema, the definition is minimally sufficient. However, it omits consequences of deletion and any indication of what the response contains, leaving the agent to rely entirely on 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 coverage is 100% and the single id parameter is documented as the path id, so the schema carries the burden. The description adds no format or sourcing hints beyond repeating the path template.

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 onboarding resource) and scopes it to the current organization, which separates it from onboarding_delete_blueprint_by_id and onboarding_delete_plan_by_id. 'The selected ... resource' is vague wording, but the REST path confirms the exact target.

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 onboarding_patch_resource_by_id or onboarding_get_resource_by_id, no prerequisites or permission notes, and no warning about what happens to dependent objects when a resource is deleted. 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.

onboarding_delete_wo_execute_plan_by_idC
DestructiveIdempotent

Delete the selected onboarding plan execution Delete the selected onboarding plan execution in the current organization DELETE /relocation/api/wo/execute-plan/{id}

NameRequiredDescriptionDefault
idYesThe id of the plan (path)

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry the safety profile (destructiveHint=true, idempotentHint=true, readOnlyHint=false, openWorldHint=true), so the description needn't re-declare irreversibility. What it does add is the organization scoping constraint — the deletion applies only within the current org. It does not say whether an in-flight execution is cancelled or merely removed from records, which is the key behavioral unknown for this 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?

The verb/resource leads, which is correct, but the first two lines are near-verbatim duplicates of each other (the second only appending "in the current organization") and the third line is a bare HTTP route that adds little for an agent. Roughly half the text is redundant rather than load-bearing.

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 mutation with no output schema, so the description should carry the operational consequences. It leaves unstated whether the execution's history/resources are discarded, whether running workflows are terminated, and what a successful response indicates — gaps that matter when an agent is deciding whether to fire a delete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single required `id` described as "The id of the plan (path)," so the baseline is 3. The description does not resolve the ambiguity between the schema's "id of the plan" and the endpoint's execute-plan/{id} (execution id); that clarification is exactly what would have earned a 4 or 5 here.

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: "Delete the selected onboarding plan execution," which is meaningfully narrower than the sibling onboarding_delete_plan_by_id (a plan, not an execution). The scope "in the current organization" and the underlying endpoint DELETE /relocation/api/wo/execute-plan/{id} reinforce which object is affected. It stops short of stating the sibling distinction explicitly, but the resource noun is precise enough to pick the right 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?

There is no statement of when to use this versus onboarding_delete_plan_by_id, onboarding_delete_blueprint_by_id, or onboarding_delete_deployment_by_id, nor of prerequisites (must the execution be in a terminal state? must it be yours?). The only usage-flavored phrase is the organizational scoping "in the current organization," which is a constraint rather than guidance on tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_get_blueprintC
Read-onlyIdempotent

Query for onboarding blueprints Query for onboarding blueprints in the current organization GET /relocation/onboarding/blueprint

NameRequiredDescriptionDefault
limitNoSet maximum number of documents to return in this query Example : 10
expandNoExpand document contents Default value : false
filterNoOData filter expression
selectNoComma-separated list of fields to populate in query result
tenantLinksNoComma-separated list

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is fully covered. The description adds only the organization-scoping constraint; it says nothing about pagination defaults, result ordering, or what an empty result means, so it adds modest value beyond the structured data.

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 two sentences are near-verbatim duplicates, and the GET path restates what the annotation title already contains. The single useful fact — that results are scoped to the current organization — is buried mid-way in redundant text 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 a read-only collection query with fully documented parameters and no output schema, the description is minimally adequate. It nonetheless omits return-shape basics (whether it returns an array, whether paging is needed, and how tenantLinks affects scope), which an agent invoking it blind would 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 five parameters (limit, expand, filter, select, tenantLinks) are already documented in the schema. The description contributes no additional meaning about how filter syntax or expand semantics are used here, 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 ('Query for onboarding blueprints') and scopes it to the current organization, so the action is clear. It does not, however, distinguish this collection query from the sibling onboarding_get_blueprint_by_id, leaving the agent to infer that this one lists rather than fetches a single 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 explicit when-to-use guidance, no prerequisites, and no mention of the obvious alternative (onboarding_get_blueprint_by_id) or the related write tool onboarding_post_blueprint. Usage is only implied by the word 'Query'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_get_blueprint_by_idC
Read-onlyIdempotent

Get the selected onboarding blueprint Get the selected onboarding blueprint in the current organization GET /relocation/onboarding/blueprint/{id}

NameRequiredDescriptionDefault
idYesThe id of the blueprint (path)

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 and destructiveHint=false, so safety is covered by structured data. The description does add one genuinely useful behavioral fact beyond the annotations: the lookup is scoped to the current organization. It says nothing about auth requirements, a 404 for unknown ids, or what a 'selected' blueprint means.

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 idea is stated twice ('Get the selected onboarding blueprint' / '...in the current organization') and then restated a third time as a raw HTTP route, so roughly half the text is redundant. It is short, but it is repetition rather than front-loaded 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 one-parameter read tool with rich annotations, the essential call information is present. However, the description never indicates what a blueprint record contains or what 'selected' denotes, which is a real gap given there is no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter is documented in the schema as the path id, so the baseline of 3 applies. The description adds no id format, provenance (where to obtain the id), 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 names a specific verb (Get) and resource (onboarding blueprint) and pins the scope to the current organization, with the path template confirming lookup by id. It's distinguishable from onboarding_get_blueprint (the list variant) by the 'by_id' naming and path, though the text never explicitly contrasts the two.

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 onboarding_get_blueprint or the other onboarding getters, and no prerequisites or error conditions are mentioned. Usage is only implicit in the word 'Get'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_get_deploymentB
Read-onlyIdempotent

Query for onboarding deployments Query for onboarding deployments in the current organization GET /relocation/onboarding/deployment

NameRequiredDescriptionDefault
limitNoSet maximum number of documents to return in this query Example : 10
expandNoExpand document contents Default value : false
filterNoOData filter expression
selectNoComma-separated list of fields to populate in query result
tenantLinksNoComma-separated list

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 only adds the organization-level scoping and the underlying GET path; it stays silent on pagination, result ordering, and total-count 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?

The first sentence is duplicated verbatim by the second, and the raw endpoint adds little. The scope information is front-loaded, but a third of the text is pure redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list tool with full schema coverage, annotations covering safety, and no output schema, the description supplies enough to call it correctly. Only minor gaps remain around pagination defaults and result 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?

All five parameters (limit, expand, filter, select, tenantLinks) are documented at 100% schema coverage, so the schema carries parameter meaning. The description adds nothing about OData filter syntax or select semantics, 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 ('Query') and resource ('onboarding deployments') with the scope 'in the current organization', which signals a collection/list read rather than a single-record fetch. It does not explicitly contrast with the sibling onboarding_get_deployment_by_id, but the plural scope makes 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 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 or when-not guidance and names no alternative. It does not say when to prefer this list query over onboarding_get_deployment_by_id or deployment_get_deployments, leaving routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_get_deployment_by_idC
Read-onlyIdempotent

Get the selected onboarding deployment Get the selected onboarding deployment in the current organization GET /relocation/onboarding/deployment/{id}

NameRequiredDescriptionDefault
idYesThe id of the deployment (path)

TDQS

C2.7/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's only addition is that the deployment is scoped to the current organization — useful, but thin, and it says nothing about what a not-found or cross-org lookup does.

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 sentence is restated three times (plain text, then repeated, then as a raw HTTP path), so the description is padded rather than front-loaded. No sentence after the first earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only lookup with no output schema and rich annotations, this is minimally sufficient — an agent knows it fetches one deployment by id. However, without any hint about the return shape or relationship to the list-style sibling, the definition does just enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single 'id' parameter is documented as the path id, so the schema carries the burden. The description adds no detail on id format or where the id is obtained, leaving it at the baseline for a high-coverage schema.

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 ... onboarding deployment') is identifiable, but the description repeats it three times rather than clarifying anything, and 'the selected onboarding deployment' is vague. It does not distinguish this from sibling tools like onboarding_get_deployment, deployment_get_deployment_by_id, or iaas_get_single_deployment, 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 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 exclusion criteria. The only contextual hint is 'in the current organization', which scopes the lookup but does not guide tool selection among the many deployment getters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_get_planC
Read-onlyIdempotent

Query for onboarding plans Query for onboarding plans in the current organization GET /relocation/onboarding/plan

NameRequiredDescriptionDefault
limitNoSet maximum number of documents to return in this query Example : 10
expandNoExpand document contents Default value : false
filterNoOData filter expression
selectNoComma-separated list of fields to populate in query result

TDQS

C2.6/5.0
Behavior2/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 nothing beyond the endpoint path – no note on whether results are scoped to the caller's organization, pagination behavior, or result ordering.

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 two of the three lines say the same thing ('Query for onboarding plans' twice) and the third is a raw HTTP path. The redundancy wastes the little space there is rather than front-loading 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 read-only, fully documented, zero-required-parameter query tool with rich annotations and no output schema, the description is minimally sufficient. It still leaves open what a returned 'plan' contains and how results are scoped, which an agent would want before selecting 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%, with limit, expand, filter, and select each documented in the schema, so the baseline of 3 applies. The description contributes no additional meaning about how these query options interact or any defaults.

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 the resource (onboarding plans) and that it is a query/list operation, but the same clause is repeated twice and the HTTP path is restated, adding no differentiating information. Nothing tells the agent how this differs from onboarding_get_plan_by_id or onboarding_get_wo_execute_plan beyond the sibling's own 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 use this list tool versus the by-id, post, patch, or delete plan siblings, and no mention of prerequisites such as organization scope beyond the vague 'current organization'. The agent must infer usage purely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_get_plan_by_idC
Read-onlyIdempotent

Get the selected onboarding plan Get the selected onboarding plan in the current organization GET /relocation/onboarding/plan/{id}

NameRequiredDescriptionDefault
idYesThe id of the plan (path)

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 and openWorldHint, so safety is covered. The description adds only the 'current organization' scope, with no mention of not-found behavior or whether the id is a plan UUID vs another identifier.

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 sentence appears twice with a trivial variation, then a raw REST path. Two-thirds of the text is redundant, and the useful scope detail ('current organization') is buried in the duplicate line.

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-parameter read with full schema coverage and rich annotations, this is borderline adequate: the agent knows what it fetches and how to identify the plan. It lacks any hint about the returned plan shape or error cases, but no output schema exists to cover that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single 'id' parameter is documented as a path parameter. The description only mirrors '{id}' from the URL template, adding no 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.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb+resource (get / onboarding plan) is clear, and the organization scope is stated. However, the description never distinguishes this from the sibling onboarding_get_plan (which presumably lists plans) beyond the literal name, and the second sentence mostly repeats the first.

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 onboarding_get_plan, onboarding_get_plan_by_id's other siblings, or what happens if the id is unknown/invalid. The agent must infer everything 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.

onboarding_get_resourceC
Read-onlyIdempotent

Query for onboarding resources Query for onboarding resources in the current organization GET /relocation/onboarding/resource

NameRequiredDescriptionDefault
limitNoSet maximum number of documents to return in this query Example : 10
expandNoExpand document contents Default value : false
filterNoOData filter expression
selectNoComma-separated list of fields to populate in query result
tenantLinksNoComma-separated list

TDQS

C2.8/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 clear. The description adds the 'current organization' scope, but omits pagination behavior, default limit implications, and what the query 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 description is short and front-loaded, but the first two lines are near-duplicates and the third line just restates the endpoint/title. It is not bloated, but not every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only collection query with annotations covering safety and a fully documented schema, the description is minimally adequate. However, with no output schema, it does not explain returned resource shape or pagination, leaving a gap for an agent interpreting results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 input schema already documents limit, expand, filter, select, and tenantLinks. The description adds no parameter semantics beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

It names the resource (onboarding resources) and the organization scope, but 'Query' is vague and gives no indication of how this collection query differs from onboarding_get_resource_by_id or other onboarding list tools. The repeated second line and raw GET path add no clarifying detail.

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 when-to-use guidance, no alternatives, and no exclusions. It does not say when to use this list/query endpoint versus onboarding_get_resource_by_id or how filtering should be applied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_get_resource_by_idC
Read-onlyIdempotent

Get the selected onboarding resource Get the selected onboarding resource in the current organization GET /relocation/onboarding/resource/{id}

NameRequiredDescriptionDefault
idYesThe id of the resource (path)

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, openWorldHint, and destructiveHint=false, so the safety profile is fully covered. The description contributes only the endpoint path and the 'current organization' scope, which is modest added value for a read tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same sentence is repeated twice verbatim and followed by a raw HTTP path, so two of the three lines carry no incremental information. It is short but substantially redundant rather than front-loaded with useful content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool with rich annotations and no output schema, the definition is minimally sufficient to invoke it. It is incomplete in that it doesn't explain what an onboarding resource is or how it relates to sibling getters, but nothing required for calling 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?

With 100% schema coverage and a single required 'id' parameter documented as 'The id of the resource (path)', the schema carries the parameter semantics. The description adds nothing about the id format or where it comes from, 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?

States a verb (Get) and a resource (onboarding resource), but 'selected onboarding resource' is vague and the definition never distinguishes itself from the sibling onboarding_get_resource, which appears to be the list-vs-single counterpart. The raw HTTP path adds no semantic clarity.

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 over onboarding_get_resource or onboarding_get_resource_by_id-adjacent tools. The only contextual hint is the 'current organization' scoping phrase, which is a constraint rather than a usage rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_get_wo_execute_planC
Read-onlyIdempotent

Query for onboarding plan executions Query for onboarding plan executions in the current organization GET /relocation/api/wo/execute-plan

NameRequiredDescriptionDefault
limitNoSet maximum number of documents to return in this query Example : 10
expandNoExpand document contents Default value : false
filterNoOData filter expression
selectNoComma-separated list of fields to populate in query result
tenantLinksNoComma-separated list

TDQS

C2.6/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 fully covered externally. The description adds only the organization scoping and the underlying GET path; it says nothing about pagination defaults, what 'expand' actually returns, or result ordering.

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 two lines are a verbatim duplicate of the same sentence, which is pure waste, and the third line is a raw endpoint path. The content is short but poorly structured rather than genuinely concise, with no front-loaded differentiation.

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 list/query tool with five optional parameters and no output schema, the description should at least explain what a plan execution record is and how results are bounded or paged. Instead it repeats itself and defers entirely to the schema, leaving the agent guessing about result shape and relationship to the by_id sibling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 five parameters (limit, expand, filter, select, tenantLinks) are documented in the schema itself. The description contributes no additional meaning — it never mentions OData filter syntax, the meaning of tenantLinks, or the practical effect of expand — 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 description states a specific verb and resource ('Query for onboarding plan executions'), which is enough to know it is a read of plan executions. However, it gives no scope detail beyond 'current organization' and never distinguishes itself from close siblings such as onboarding_get_wo_execute_plan_by_id or onboarding_get_plan, so an agent cannot confidently choose between them from the description 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 when-to-use guidance, no exclusion of alternatives, and no mention of the by_id sibling or the POST counterpart. The only implied usage signal is 'in the current organization', which is a scope statement rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_get_wo_execute_plan_by_idC
Read-onlyIdempotent

Get the selected onboarding plan execution Get the selected onboarding plan execution in the current organization GET /relocation/api/wo/execute-plan/{id}

NameRequiredDescriptionDefault
idYesThe id of the plan (path)

TDQS

C2.4/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 elsewhere. The description adds almost nothing beyond a mild scope note ('current organization'); it says nothing about what an execution object contains, error behavior for a bad id, 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same sentence is stated twice verbatim followed by a raw endpoint path; the duplication wastes tokens without adding information, and the only marginally useful content (the org scope) is buried in the repetition.

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 explain what a 'plan execution' response looks like (status, steps, timestamps), but it does not. Combined with the missing pointer to the sibling list tool and the vague 'selected' qualifier, an agent cannot confidently distinguish or interpret this 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?

Only one parameter exists and the schema documents it at 100% coverage ('The id of the plan (path)'). The description contributes nothing additional about the id's format or where to obtain it, so the baseline 3 for fully-covered schema 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 a verb (get) and a resource (onboarding plan execution), and the endpoint path hints at a by-id fetch, so the basic purpose is discernible. But it is essentially a restatement of the tool name with a vague qualifier ('selected'), and it offers no differentiation from the closely related sibling onboarding_get_wo_execute_plan (the list variant) or onboarding_get_plan.

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 by-id fetch versus the sibling onboarding_get_wo_execute_plan list call, nor any prerequisite such as needing an id obtained elsewhere. The 'selected ... in the current organization' phrasing is scope, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_patch_blueprint_by_idC

Update the selected onboarding blueprint Update the selected onboarding blueprint in the current organization PATCH /relocation/onboarding/blueprint/{id}

NameRequiredDescriptionDefault
idYesThe id of the blueprint (path)
bodyYesRequest body

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, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds only the org scope; it does not explain PATCH semantics (partial vs. replace), whether omitted body fields are preserved, or what happens to the auto-generated Template when autogenerate changes — meaningful gaps for a non-idempotent mutation. It does not contradict 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same sentence is repeated nearly verbatim in the first two lines, and the third line is a bare HTTP path that the annotation title already contains. The content could be one clause; instead a third of it is duplication.

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, fully documented nested schema and existing annotations cover most of what an agent needs, and there is no output schema to explain. However, for a non-idempotent PATCH with many sibling update tools, the absence of any guidance on selection and patch semantics 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 nested body fields (name, planLink, autogenerate, templateLink, deploymentLink), so the schema carries the semantics. The description adds nothing about the id path parameter or the required planLink in the body, 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 description states the verb and resource ("Update ... onboarding blueprint") and adds a scope ("in the current organization"), but it is essentially a restatement of the tool name and title, including the raw endpoint path. It does nothing to distinguish this from closely related siblings such as onboarding_patch_plan_by_id, onboarding_patch_deployment_by_id, onboarding_patch_resource_by_id, or blueprint_update_blueprint.

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, when not to, or which alternative to pick. An agent given a dozen near-identical onboarding_patch_* and blueprint_update_* siblings is left to infer selection criteria entirely on its own.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_patch_deployment_by_idC

Update the selected onboarding deployment Update the selected onboarding deployment in the current organization PATCH /relocation/onboarding/deployment/{id}

NameRequiredDescriptionDefault
idYesThe id of the deployment (path)
bodyYesRequest body

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, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description adds only the word 'PATCH', implying partial-update semantics, but says nothing about which fields are optional, side effects, or propagation to Assembler that the schema hints at.

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 sentence appears twice verbatim plus a raw API path line, which is pure repetition rather than front-loaded substance. The redundancy wastes space without adding any distinguishing 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 a mutating tool with a nested request body and no output schema, yet the description never explains partial-update behavior, required-field implications, or what a successful response looks like. Annotations cover safety but the description leaves real gaps for a tool 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% across both parameters, so the schema already documents id as the path parameter and the nested body fields including required planLink. The description contributes no additional parameter meaning, 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 ('Update') and resource ('onboarding deployment') and includes the HTTP method and path, which distinguishes it from siblings like onboarding_get_deployment_by_id, onboarding_delete_deployment_by_id and onboarding_patch_plan_by_id. However, the sentence is repeated twice with no added information, and it never says what a deployment actually is.

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 alternatives such as onboarding_patch_plan_by_id or onboarding_patch_resource_by_id. The agent must infer from the name that this is the mutation counterpart to the get/delete siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_patch_plan_by_idC

Update the selected onboarding plan Update the selected onboarding plan in the current organization PATCH /relocation/onboarding/plan/{id}

NameRequiredDescriptionDefault
idYesThe id of the plan (path)
bodyYesRequest body

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, destructiveHint=false and openWorldHint=true, so the description owes extra context and supplies none. It does not say whether the update is partial or full-replace, whether unspecified fields are cleared, whether the plan must be in a specific status (e.g. not EXECUTING/UPDATING before patching), or what permission is required.

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 exactly by the second, wasting a third of the text, and the raw HTTP path restates the annotation title. What remains is not front-loaded with any actionable guidance.

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 and an 18-field nested body, the definition should say what the update does to an existing plan and whether the body is a partial or full payload. The route and repeat sentence are correct but insufficient for confident invocation; the schema at least pins the required 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 the baseline is 3. The description contributes nothing beyond the schema for either the {id} path parameter or the large nested body, which includes many optional fields (status, endpointIds, usePlacements, deploymentTag*, refresh*Micros) that an agent must reason about unaided.

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 specific verb and resource ("Update the selected onboarding plan in the current organization"), but it is buried in a near-verbatim repeat of the same sentence, and it never distinguishes this tool from the adjacent onboarding_patch_blueprint_by_id, onboarding_patch_deployment_by_id, or onboarding_patch_resource_by_id 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 indication of when to use this over the get/post/delete plan variants or the other PATCH tools in the onboarding family; the only added information is the raw PATCH route, which is already in the annotations title.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_patch_resource_by_idC

Update the selected onboarding resource Update the selected onboarding resource in the current organization PATCH /relocation/onboarding/resource/{id}

NameRequiredDescriptionDefault
idYesThe id of the resource (path)
bodyYesRequest body

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, openWorldHint=true, idempotentHint=false and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that: it does not say whether the update is a partial merge or a full replace, which fields are actually mutable, whether missing fields are cleared, or what permission is required.

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 two lines say the same thing twice, and the third line is a raw HTTP path that duplicates what the annotations' title already contains. The content is short but a third of it is pure redundancy rather than front-loaded signal.

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 with a nested required body of roughly ten fields and no output schema; the description should at minimum clarify update semantics (merge vs replace) and any required identifiers beyond the path id. It instead repeats itself and appends an endpoint string, leaving the agent without the operational context needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the id path parameter and the nested body fields (planLink, resourceLink, resourceName, tagLinks, etc.) are already documented in the schema. The description contributes no additional meaning about the body contract, which is the baseline 3 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?

The description names a verb ("Update") and a resource ("onboarding resource in the current organization"), so the general intent is recoverable. However, "the selected onboarding resource" is vague about which resource, and there is no differentiation from the closely named siblings onboarding_patch_plan_by_id, onboarding_patch_deployment_by_id and onboarding_patch_blueprint_by_id beyond the resource noun already present in 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 statement of when to use this tool versus alternatives such as onboarding_post_resource (create) or onboarding_get_resource_by_id (read), and no preconditions. The agent must infer PATCH-vs-POST semantics 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.

onboarding_post_blueprintB

Create an onboarding blueprint Create an onboarding blueprint in the current organization POST /relocation/onboarding/blueprint

NameRequiredDescriptionDefault
bodyYesRequest body

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, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds that the blueprint is created 'in the current organization' and gives the HTTP path, but does not explain side effects, required permissions, or what happens if planLink is invalid.

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 action, but the first two lines are redundant ('Create an onboarding blueprint' repeated twice), and the HTTP endpoint adds little for an agent. It could be reduced to a single useful sentence without losing 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 create tool with a nested body and no output schema, the annotations and full schema coverage provide the essential structured information. However, the description does not explain the relationship between planLink, templateLink, and autogenerate, or what 'current organization' means in practice, leaving some contextual gaps 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%, with every nested body property (name, planLink, autogenerate, templateLink, deploymentLink) documented in the input schema. The description adds no parameter-level detail 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 ('Create') and resource ('onboarding blueprint'), and adds scope ('in the current organization'). It clearly distinguishes creation from sibling get/patch/delete tools by verb, though it does not explicitly name any sibling 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 guidance on when to use this tool versus alternatives (e.g., onboarding_get_blueprint or onboarding_patch_blueprint_by_id), nor does it state prerequisites or conditions for choosing between body fields like autogenerate and templateLink. Usage is only implied by the verb 'Create'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_post_deploymentC

Create an onboarding deployment Create an onboarding deployment in the current organization POST /relocation/onboarding/deployment

NameRequiredDescriptionDefault
bodyYesRequest body

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, idempotentHint=false and openWorldHint=true. The description adds only the organizational scope ('current organization') plus a raw POST path; it says nothing about required permissions, whether a plan must already exist, what happens on non-idempotent retry, 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 same sentence is essentially stated twice ('Create an onboarding deployment' / 'Create an onboarding deployment in the current organization') and then a raw HTTP endpoint is appended. The useful content is front-loaded, but roughly half the text is redundant restatement plus an endpoint path the agent cannot act on.

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 cover the safety profile and the schema fully covers the single nested body parameter, and no output schema exists, so the minimum an agent needs to invoke the call is present. What is missing is disambiguation from the near-identical task-based sibling and any note about prerequisites (e.g., needing a planLink) for a non-idempotent write.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 nested body documents planLink, name, description, owner, ownerType and consumerDeploymentLink, so the schema carries the parameter burden. The description adds nothing about the body at all, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Create an onboarding deployment in the current organization', which is a clear improvement over the bare name. However, it never distinguishes itself from the very similar sibling 'onboarding_post_task_create_deployment' (or 'onboarding_post_plan'/'onboarding_post_resource'), so an agent cannot confidently pick between them from this text.

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, when-not-to-use, or prerequisite guidance. Given the presence of 'onboarding_post_task_create_deployment' as a sibling with an overlapping purpose, the absence of any routing hint is a significant omission.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_post_planC

Create an onboarding plan Create an onboarding plan in the current organization POST /relocation/onboarding/plan

NameRequiredDescriptionDefault
bodyYesRequest body

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, and openWorldHint=true, so the agent knows this is a non-idempotent write. The description's only added behavioral context is that creation is scoped to the 'current organization'; it says nothing about required permissions, whether the new plan begins executing immediately, or what happens if a duplicate name exists.

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 two lines say the same thing twice, and the third line is a bare HTTP path — two of three lines earn little. The one useful piece of information ('in the current organization') is buried in the redundant copy rather than front-loaded as its own statement.

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 large nested body, no output schema, and no return-value documentation, the description is too thin: it never says what a successful call yields (a plan id?) or what the agent should do next. An agent could invoke it but would not understand the 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% at the top level, and the required nested fields (name, projectId) carry their own schema descriptions, so the schema does the heavy lifting. The description adds nothing about the body — not which of the ~18 optional nested properties matter, nor that status/createdBy/lastRunTimeMicros look server-managed and should likely be omitted.

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 an onboarding plan') plus a scope qualifier ('in the current organization'), so the agent knows this is a write that creates a plan object rather than reads or updates one. However, it does nothing to distinguish it from nearby siblings such as onboarding_post_blueprint, onboarding_post_deployment, or onboarding_patch_plan_by_id, which an agent must disambiguate by 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 guidance on when to create a new plan versus patching an existing one (onboarding_patch_plan_by_id) or when a plan is even appropriate. No prerequisites, no mention of what must exist first (a project), and no alternatives are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_post_resourceB

Create an onboarding resource Create an onboarding resource in the current organization POST /relocation/onboarding/resource

NameRequiredDescriptionDefault
bodyYesRequest body

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose the safety profile: non-readOnly, openWorld, non-idempotent, and non-destructive. The description adds useful scope by saying the resource is created in the current organization, but it does not explain duplication behavior, permissions, required inputs, or side effects beyond what annotations already state.

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, but it repeats the same purpose across the first two lines and adds a raw endpoint path that duplicates annotation context. The useful scope is present but not efficiently structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a mutation with a nested request body and no output schema. The schema and annotations cover most structured needs, and the description adds organization scope, but it omits sibling differentiation and creation-specific behavioral detail that would help an agent invoke 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%, so the body schema documents the required planLink and resourceLink fields and optional properties. The description adds no parameter-level semantics or usage notes 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: creating an onboarding resource in the current organization. It is identifiable, but it does not distinguish this tool from sibling onboarding POST tools such as onboarding_post_plan or onboarding_post_deployment.

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?

Usage is only implied by the word 'Create'. There is no guidance on when to use this tool instead of sibling onboarding tools, nor are prerequisites or exclusions mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_post_task_create_deploymentC

Create or update an onboarding deployment and associated resources Create or update an onboarding deployment and associated resources in the current organization POST /relocation/onboarding/task/create-deployment

NameRequiredDescriptionDefault
bodyYesRequest body

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, openWorldHint=true, idempotentHint=false, destructiveHint=false, so the description adds nothing about side effects, permissions, or reversibility. In particular it never explains what 'update' does when an existing deploymentLink is supplied, which is the central behavioral question here. No contradiction with annotations, but no added value either.

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 sentence appears twice and the raw endpoint path is appended as a third fragment, producing zero informational gain across three lines. Nothing is prioritized, and the redundant repetition crowds out the absent usage guidance.

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 non-idempotent write with a large nested body, no output schema, and multiple interacting fields (template, resources, createBlueprint), yet the description says nothing about return behavior, async processing, or the create-vs-update distinction. The rich schema partially compensates, but the description is far too thin for the operation's 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% and the nested body fields (deploymentLink, planLink, template, resources, createBlueprint) are documented inline, so the schema does the heavy lifting. The description adds no semantics of its own about the body, 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 resource (onboarding deployment plus associated resources) but hedges with 'create or update', leaving it unclear which operation this actually performs. It never distinguishes itself from close siblings like onboarding_post_deployment, onboarding_post_task_create_deployment_bulk, or onboarding_patch_deployment_by_id, so the agent cannot confidently choose 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?

There is no statement of when to use this tool, no prerequisites, and no mention of alternatives despite several near-duplicate siblings in the list. The only context is 'in the current organization' and a raw POST path, neither of which guides tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_post_task_create_deployment_bulkC

Create or update onboarding deployments in bulk Create or update onboarding deployments in bulk in the current organization POST /relocation/onboarding/task/create-deployment-bulk

NameRequiredDescriptionDefault
bodyYesRequest body

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, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description only adds 'in the current organization' scope and the raw POST path; it does not say what happens to deployments that already exist (the 'create or update' semantics), whether partial failures leave state behind, or what the 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences are near-verbatim duplicates, so a third of the text is pure padding. The third line is the raw HTTP path, which is largely redundant with the tool name/annotations title, though the description remains short and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a nested bulk-mutation tool (deployments, templates, resources, blueprints) with no output schema and no explanation of 'create or update' semantics or failure behavior. Given the complexity of the nested payload, the description is too thin to let an agent predict outcomes.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 top-level `body` parameter with 100% schema description coverage, and the nested deployment fields are individually documented in the schema. The description adds nothing about body structure, so the baseline 3 applies when the schema does all 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 states a specific verb pair (create/update) and resource (onboarding deployments) plus the 'in bulk' scope, which distinguishes it from the single-item sibling onboarding_post_task_create_deployment. However, it never names that sibling or explains the relationship, leaving the agent to infer bulk-vs-single from the tool name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus onboarding_post_task_create_deployment, onboarding_post_deployment, or onboarding_patch_deployment_by_id. No prerequisites are given (e.g. whether the parent plan must already exist), and no exclusions or alternative routes are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_post_wo_execute_planC

Execute the given onboarding plan Execute the given onboarding plan in the current organization POST /relocation/api/wo/execute-plan

NameRequiredDescriptionDefault
bodyYesRequest body

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, idempotent=false, openWorld=true, so safety baseline is given. But the description hides the most important behavioral trait: the body's subStage/retryCount/executionId/nextPageLink fields imply a resumable, step-at-a-time execution state machine, and nothing says execution is long-running, resumable, or that callers must drive it through stages. This is exactly the kind of context the description should carry 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core sentence is repeated twice verbatim with a trivial variation, then a raw POST path is appended. No wasted-length penalty for the useful clause, but the duplication shows no editing and the useful content is not front-loaded with any state-machine context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a non-idempotent, open-world mutation with a 14-property nested body, no output schema, and staged execution semantics, the description is far too thin. An agent cannot tell whether one call completes execution or whether it must loop through subStages, which is critical to 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 description coverage is nominally 100% at the top level, so the schema is expected to carry parameter meaning and baseline 3 applies. In practice only planLink is documented and the nested body's 14 state-machine fields are opaque, but the description adds nothing either way, so it neither compensates nor misleads.

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 ("Execute the given onboarding plan") and scopes it to the current organization, so an agent can tell it is a mutation of an existing plan. However, it does not distinguish itself from closely named siblings such as onboarding_get_wo_execute_plan, onboarding_get_wo_execute_plan_by_id, or onboarding_post_plan, leaving the agent to infer which one actually runs the plan.

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 instead of onboarding_get_wo_execute_plan(-by-id) or the plan/deployment endpoints, nor on prerequisites (does the plan need validating first?). The only usage clue is "current organization," which is a constraint, not a selection rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onboarding_post_wo_query_unmanaged_machineC

Query for compute resources representing unmanaged machines from the Provisioning service inventory Query for compute resources representing unmanaged machines from the Provisioning service inventory in the current organization POST /relocation/api/wo/query-unmanaged-machine

NameRequiredDescriptionDefault
bodyYesRequest body

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations declare destructiveHint=false, idempotentHint=false, readOnlyHint=false and openWorldHint=true, so the safety profile is already carried by structured data. The description adds only the scoping fact (current organization, Provisioning service inventory). It says nothing about pagination behavior (even though pageResultLimit and nextPageLink exist) or about the fact that this is a POST-based query. The 'Query' wording sits in mild tension with readOnlyHint=false, but does not outright contradict 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 single descriptive sentence is repeated word-for-word, and the raw HTTP path 'POST /relocation/api/wo/query-unmanaged-machine' is appended after the useful content. Roughly half the text is redundancy, and there is no front-loaded separation of scope versus behavior.

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?

Against a deeply nested request body with nine optional fields, required planLink, no output schema, and only generic annotations, the description is inadequate. An agent cannot learn what the response looks like, how paging works, or what the option* flags do from it. The tool is identifiable but not operable from the description 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 reported as 100%, so the baseline is 3. In practice the schema itself is thin (the body is described only as 'Request body' and the fields such as filters, planLink, sortOptions, nextPageLink, pageResultLimit, and the option* flags carry no prose), and the description compensates with nothing. It never mentions that planLink is required, nor any other parameter meaning.

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 and resource: query compute resources representing unmanaged machines from the Provisioning service inventory. However, the same sentence is duplicated verbatim and followed by a raw endpoint path, and it never distinguishes this tool from the many sibling onboarding_* / iaas_get_* query tools. The core purpose is recoverable but the definition adds no discriminating detail.

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 (for example, must a plan link exist first?), and no exclusions. The only implicit guidance is the word 'Query' and the 'current organization' scoping phrase, which is not enough to route an agent among ~500 siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

policy_create_policyB

Creates a new policy, updates an existing policy, or trigger a policy dry-run. Create a new policy or update an existing policy based on request body and validate its fields according to business rules or dry-run an existing policy to rehearse actual policy effect on application. POST /policy/api/policies

NameRequiredDescriptionDefault
bodyYesThe policy to be created or updated
dryRunNoDry-run an existing policy
validationOnlyNoFor a dry run that will do policy validation only instead of creating or updating a policy

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, idempotentHint=false and destructiveHint=false, so the safety profile is covered. The description adds that dry-run rehearses the policy's actual effect on the application and that validationOnly validates fields against business rules, which is genuine added context, but it omits create-vs-update semantics (what an absent id does, whether repeated calls duplicate policies).

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 second sentence substantially restates the first ("create a new policy or update an existing policy") and the passage is a run-on chain of clauses joined by "or". Front-loading is acceptable but roughly a third of 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?

There is no output schema and the body is a large nested object with policy-type-specific fields, so the description should at minimum say which fields are required per mode and what a dry-run returns. It gestures at validation but leaves the mode-selection logic undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 slightly enriches dryRun by explaining it rehearses enforcement effects, but says nothing about how body.id drives create versus update, which is the single most consequential parameter behavior here.

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 and names the three modes (create, update, dry-run) plus the underlying endpoint. It is clearly distinguished from read siblings such as policy_get_policy or policy_get_policies, though bundling three operations into one tool muddies the single-purpose statement.

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?

"Create ... or update ... based on request body" implies that the presence of an id selects update, but this is never stated explicitly. Nothing tells the agent when to prefer validationOnly/dryRun over a real write, or which sibling to use for read-only inspection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

policy_delete_policyC
DestructiveIdempotent

Delete a policy Delete a specified policy corresponding to its unique id. DELETE /policy/api/policies/{id}

NameRequiredDescriptionDefault
idYesPolicy ID (path)

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 given. The description adds nothing beyond that — no statement about permanence, cascade effects, or what happens if the id does not exist, which is the kind of context that would earn credit 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences say the same thing ('Delete a policy' then 'Delete a specified policy corresponding to its unique id'), so there is redundancy. The endpoint line does add useful routing context, and the whole thing is short, but it is not tightly front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter delete with a full safety annotation set and no output schema, the description covers the minimum. It leaves out failure behavior (e.g., id not found) and confirmation of what a successful delete returns, which would round it out.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter with 100% schema coverage; the schema already documents it as a UUID 'Policy ID (path)'. The description's 'unique id' and the endpoint template mildly reinforce that it is a path identifier, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Delete a policy') and pins it to the REST endpoint DELETE /policy/api/policies/{id}. It is unambiguous against read siblings like policy_get_policies or policy_get_policy, 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 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 siblings such as policy_get_policies (to locate an id) or catalog_delete_policy, and no prerequisites or exclusions. An agent must infer the usage entirely from the verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

policy_get_decision_by_idB
Read-onlyIdempotent

Returns a policy decision by id. Find a specific policy decision based on the input policy decision id. GET /policy/api/policyDecisions/{id}

NameRequiredDescriptionDefault
idYesPolicy decision Id (path)

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 fully covered. The description adds only the raw endpoint path (GET /policy/api/policyDecisions/{id}); it says nothing about not-found behavior, what a decision record contains, or any auth/scope requirements beyond what openWorldHint already implies.

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?

Three lines in which sentence two ('Find a specific policy decision based on the input policy decision id') is a near-verbatim restatement of sentence one. The endpoint path earns its place; the middle sentence 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 one-parameter read tool with full schema coverage and rich annotations, the definition is minimally sufficient, but with no output schema the agent gets zero indication of what a decision object looks like or how to interpret a miss.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 single 'id' parameter is documented as a UUID path parameter, so the schema carries the weight. The description merely restates that the id identifies a policy decision, adding no format, sourcing, or lookup-path 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 ('Returns a policy decision by id') that an agent can act on immediately. It does not distinguish itself from the obvious sibling policy_get_decisions (the list counterpart), so the boundary between 'one' and 'many' is left implicit.

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?

'Find a specific policy decision based on the input policy decision id' implies the precondition (you already hold an id), but there is no explicit when-to-use / when-not guidance and no alternative tool is named, despite policy_get_decisions existing as a direct sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

policy_get_decisionsB
Read-onlyIdempotent

Fetch a list of policy decisions. Returns a paginated list of policy decisions. If a dryRunId is provided, the return value has a field indicating whether the dry run is complete. GET /policy/api/policyDecisions

NameRequiredDescriptionDefault
topNoNumber of records you want
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
searchNoMatches will start with this string in their policy name or target name or have this string somewhere in their description.
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
dryRunIdNo
projectIdNoMatches will only include decisions with this project ID
policyTypeIdNoMatches will only include policies of this type

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 covered. The description adds genuine value by disclosing that results are paginated and that supplying dryRunId changes the response shape to include a completion flag — useful given there is no output schema. It does not explain paging behavior or result shape otherwise.

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 first sentence ('Fetch a list of policy decisions') is a near-duplicate of the second ('Returns a paginated list of policy decisions'), so one sentence does not earn its place. The endpoint path is appended without being framed as useful 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?

Adequate for a 10-parameter list tool whose schema documents the filters, but it omits meaningful gaps: the schema exposes two competing pagination styles (top/skip vs page/size) with no guidance on which to use, and no description of the paged result envelope. With no output schema, more return-shape detail would have helped.

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 90%, so the baseline would be 3; however the one parameter with no schema description (dryRunId, only format: uuid) is exactly the one the description explains, including its effect on the response. That fills the single documentation gap in the parameter 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?

States a specific verb and resource: 'Fetch a list of policy decisions', and 'paginated list' confirms it is the collection endpoint, distinguishing it implicitly from policy_get_decision_by_id. It stops short of naming a sibling explicitly, so it is clear but not fully differentiated.

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: an agent can infer this is the list/query tool and that passing dryRunId switches it into dry-run status checking. There is no statement of when to prefer policy_get_policies or policy_get_decision_by_id, 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.

policy_get_policiesB
Read-onlyIdempotent

Returns a paginated list of policies. Find all the policies associated with current org. GET /policy/api/policies

NameRequiredDescriptionDefault
topNoNumber of records you want
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
searchNoMatches will start with this string in their name or have this string somewhere in their description.
typeIdNo
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
computeStatsNo
expandDefinitionNoRetrieves policy definition information for each returned policy.
expandOpaRegoCriteriaNoRetrieves OPA Rego criteria, if defined, for each returned policy.

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 non-destructive behavior, so the safety profile is covered. The description adds the useful org-scoping and pagination context, but says nothing about default page size, total counts, or what happens when no policies match.

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 lines with the purpose front-loaded and no filler. The trailing raw endpoint line is slightly redundant with the title 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 an 11-parameter read tool with no output schema, the description omits any explanation of the filtering, sorting, or expansion options (search, sort, expandDefinition, expandOpaRegoCriteria) that an agent would need in order to choose parameters intelligently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 82%, so most parameters are already documented in the schema. The description only gestures at pagination and adds no meaning for undocumented params such as typeId and computeStats, so it neither compensates nor detracts.

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 clear verb and resource ('Returns a paginated list of policies') and adds the scope ('associated with current org'), which distinguishes it from siblings like policy_get_policy (single) and policy_get_decisions. It does not explicitly name those siblings, keeping 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Find all the policies associated with current org' implies the retrieval context but gives no explicit when-to-use/when-not guidance and does not point to policy_get_policy for single-item fetches or policy_get_types for type metadata.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

policy_get_policyB
Read-onlyIdempotent

Returns a specified policy. Find a specific policy based on the input policy id. GET /policy/api/policies/{id}

NameRequiredDescriptionDefault
idYesPolicy ID (path)
computeStatsNo

TDQS

B3/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 almost no behavioral context beyond restating the GET endpoint and retrieval purpose; it does not mention permissions, missing-id behavior, or response characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the main purpose. It is slightly redundant: 'Returns a specified policy' and 'Find a specific policy based on the input policy id' restate the same idea, and the endpoint line duplicates the annotation title.

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 lookup, the core retrieval behavior is clear and annotations cover safety. However, with no output schema and an undocumented computeStats parameter, the definition leaves the agent without guidance on what the returned policy includes or what computeStats changes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema describes only the required id parameter as 'Policy ID (path)', and the description reinforces that the policy id selects the policy. The computeStats parameter has no description in either the schema or the tool description, leaving half of the parameters semantically undocumented.

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: returns a specified policy, retrieves a specific policy by policy id. It implicitly distinguishes from list tools like policy_get_policies by emphasizing a single specified policy, but it does not explicitly name alternatives or 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?

Usage is implied: use this tool when you have a policy id and need that specific policy. There is no explicit when-to-use versus alternatives such as policy_get_policies, no exclusions, and no prerequisite guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

policy_get_policy_type_by_idB
Read-onlyIdempotent

Returns the policy type with the specified ID. Find a specific policy type based on the input policy type id. GET /policy/api/policyTypes/{id}

NameRequiredDescriptionDefault
idYesPolicy type ID (path)

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, and destructiveHint=false, so the safety profile is covered. The description adds only the endpoint path, which is already present in the annotation title, and says nothing about missing-ID behavior or auth; with annotations present this is a minimum-viable 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?

The lookup is front-loaded, but sentence two ('Find a specific policy type based on the input policy type id') merely restates sentence one, and sentence three duplicates the annotation title. Two of three sentences do not earn their 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 one-parameter read tool with full annotation coverage this is close to sufficient, but there is no output schema and the description never indicates what a policy type contains or what happens on a bad ID, leaving minor 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% and the single id parameter is documented as 'Policy type ID (path)'. The description only restates that the lookup is by that ID, adding no format or sourcing detail 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 ('Returns') and resource ('the policy type') scoped by ID, and the REST path reinforces the single-resource lookup. It never names a sibling, but the by-ID framing makes the distinction from policy_get_types or policy_get_policy easy to infer.

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?

'Find a specific policy type based on the input policy type id' implies you must already hold an ID, but there is no explicit when-to-use guidance, no mention of when to use policy_get_types instead, and no prerequisites or error conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

policy_get_policy_type_scope_schemaC
Read-onlyIdempotent

Returns the policy scope schema for the type with the specified ID. Return the policy scope schema for the given policy type. GET /policy/api/policyTypes/{id}/scopeSchema

NameRequiredDescriptionDefault
idYesPolicy type ID (path)

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 fully covered. The description adds only the raw REST path; it says nothing about what the returned schema contains, its format, or what happens for an unknown type ID.

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 two sentences restate the same fact word-for-word in meaning, which is pure redundancy. The REST endpoint line is mildly useful traceability but the repetition wastes the front-loaded 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 one-parameter read-only GET with no output schema, the description is minimally sufficient to call it correctly. It leaves a real gap, though: with no output schema, an agent has no idea whether the response is a JSON Schema document, a scope definition, or something else.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 single 'id' parameter is documented as a path parameter. The description's phrase 'the type with the specified ID' merely echoes the schema, adding no syntax or format detail, 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?

Names a specific verb and resource: returns the policy scope schema for a policy type identified by ID. That is distinguishable from policy_get_policy_type_by_id, but the description never explicitly contrasts the two, leaving the differentiation 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?

There is no statement of when to call this versus the nearby policy_get_policy_type_by_id or policy_get_policy. Usage is only implied by the purpose sentence, with no prerequisites, conditions, or alternatives named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

policy_get_typesB
Read-onlyIdempotent

Returns a paginated list of policy types. Find all the policy types available in the current org. GET /policy/api/policyTypes

NameRequiredDescriptionDefault
topNoNumber of records you want
pageNoZero-based page index (0..N)
sizeNoThe size of the page to be returned
skipNoNumber of records you want to skip
sortNoSorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
orderbyNoSorting criteria in the format: property (asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
expandSchemaNoRetrieves the schema for this policy type

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 pagination behavior and the current-org scoping constraint, but says nothing about the shape of returned items, total counts, or whether expandSchema changes the payload.

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 lines with the purpose front-loaded and no redundant prose. The trailing 'GET /policy/api/policyTypes' line is low value for an agent choosing a tool, but the overall size is appropriate.

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 100% schema coverage and full annotations the basics are covered, but there is no output schema and the description never indicates what a policy type contains or how expandSchema affects the response — an agent still has to guess at 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% across all 7 parameters, so pagination, sorting and expandSchema semantics are already documented in the schema. The description only restates 'paginated' and adds no format or default-order detail beyond it, 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 ('Returns a paginated list of policy types') plus scope ('available in the current org'), which clearly separates it from the sibling policy_get_policy_type_by_id. The distinction is implied by 'list' vs 'by id' rather than stated 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?

'Find all the policy types available in the current org' implies the discovery/enumeration use case, but there is no explicit guidance on when to use this versus policy_get_policy_type_by_id or policy_get_policy_type_scope_schema, and no exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

project_delete_projectC
DestructiveIdempotent

Deletes a project Deletes a project by id. DELETE /project-service/api/projects/{id}

NameRequiredDescriptionDefault
idYesThe id of the project. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format. For versioning information refer to /project-service/api/about.2019-01-15

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 and openWorldHint=true, so the safety profile is known. The description adds nothing beyond that: no mention of irreversible data loss, cascading deletion of deployments/resources tied to the project, or required permissions. With annotations carrying the load, this is thin but not contradictory.

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 fact is stated three times (title line, 'Deletes a project by id', and the raw DELETE endpoint). There is repetition rather than information, and no front-loaded guidance an agent could act on.

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 destructive, open-world mutation with no output schema, the description should say at minimum what gets destroyed and whether the deletion cascades. It covers none of this, leaving the agent dependent on annotations 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 both parameters are documented inline, including the path nature of 'id'. 'By id' in 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.

Purpose3/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 (deletes a project by id), but it merely restates the tool name and the endpoint already in the title. It offers no differentiation from the sibling tool iaas_delete_project, so an agent cannot tell the two apart from the text 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 guidance on when to use this instead of iaas_delete_project or project_modify_project, and no prerequisites or warnings. The agent is left 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.

project_get_aboutB
Read-onlyIdempotent

Get about page The page contains information about the supported API versions and the latest API version. The version parameter is optional but highly recommended. If you do not specify explicitly an exact version, you will be calling the latest supported API version. Here is an example of a call which specifies the exact version you are using: GET /project-service/api/projects?apiVersion=2019-01-15 GET /project-service/api/about

NameRequiredDescriptionDefault

No parameters

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 usefully adds what the response contains (supported API versions, latest version), but then spends most of its length on version-parameter policy that does not apply to this parameterless tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is front-loaded and useful, but the remaining three sentences are boilerplate about API version pinning plus a raw URL example for a different path — content that does not earn its place in a parameterless 'about' call.

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 zero-parameter read with full annotation coverage, the description does state what the payload covers, which is the main thing an agent needs. However, it omits any statement of whether version negotiation is automatic and leaves the reader unsure whether a parameter is expected, which undermines a call that should be trivially 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?

Zero parameters normally earns the baseline 4, but the description repeatedly references a 'version parameter' and shows an apiVersion query-string example for a different endpoint, implying a parameter that does not exist in the schema. That is misleading rather than additive, so it drops below 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 HTTP resource (GET /project-service/api/about) and states what the page contains: supported API versions and the latest API version. It is clear what the tool does, but it does not distinguish itself from the many sibling 'get_about' tools (iaas_get_about, approvals_get_about, blueprint_get_about, content_get_about), which serve the same purpose for other services.

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 the other *_get_about siblings. The only usage advice given — 'The version parameter is optional but highly recommended' — is inapplicable because the tool takes no parameters, so the guidance actively misdirects rather than helping an agent choose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

project_get_all_projectsC
Read-onlyIdempotent

Get all projects Get all projects with specified paging parameters. GET /project-service/api/projects

NameRequiredDescriptionDefault
pageNoResults page you want to retrieve (0..N)
sizeNoNumber of records per page.
selectNoSelect a subset of properties to include in the response. Possible values for this parameter are id, name, description, operationTimeout, constraints. Id will always be included in the response
orderbyNoSorting criteria in the format: property (asc | desc). Default sort order is ascending.
apiVersionNoThe version of the API in yyyy-MM-dd format. For versioning information refer to /project-service/api/about.2019-01-15
excludeViewerNoFilters projects based on the viewer role. When the value is true it will not return the projects in which the current user is only viewer and will ignore privileged roles: CodeStream:Developer and CodeStream:Executor, if the user has them. Else it …
excludeSupervisorNoFilters projects based on the supervisor role. When the value istrue it will not return the projects in which the current user is having only supervisor role
withAnyPermissionNoOptional permissions that, if granted to the users, allow them access to the proper set of projects. If the user actually has any of those permissions, the 'excludeViewer' parameter has no effect.
excludeNotSharedProjectsForMemberNoFilters projects based on the member role and the access to the resources of the project. When the value is true it will not return the projects in which the current user is only member and the project is not with shared resources.

TDQS

C2.7/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 the safety profile is fully covered. The description adds only 'with specified paging parameters' and the raw endpoint path, which says nothing about role-based filtering (excludeViewer, excludeSupervisor), permission effects, or result ordering.

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?

Three lines say the same thing twice ('Get all projects' then 'Get all projects with specified paging parameters') and then append a raw HTTP path. Nothing is front-loaded beyond the name, and the repetition is padding rather than structure.

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 nine-parameter listing endpoint with no output schema, the description should sketch the shape of the response, default page size implications, and the meaning of the role filters. The rich parameter schema covers inputs, but the description leaves everything about results and filter interaction to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 and the schema already documents every one of the nine parameters in detail. The description only gestures at 'paging parameters' and adds no syntax, defaults, or interplay between filters.

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 all projects'), and 'all' implicitly contrasts with the single-project siblings such as project_get_project. It never names those alternatives explicitly, but an agent can infer the collection-vs-single split from the name and text.

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 instead of project_get_project, project_get_projects_by_id_resource_metadata, or iaas_get_projects, all of which sit in the sibling list. The only usage hint is the implied paging context, with no exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

project_get_projectC
Read-onlyIdempotent

Retrieves a project Retrieves a project by id. GET /project-service/api/projects/{id}

NameRequiredDescriptionDefault
idYesThe id of the project. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format. For versioning information refer to /project-service/api/about.2019-01-15
withAnyPermissionNoOptional permissions that, if granted to the users, allow them access to the proper set of projects. If the user actually has any of those permissions, the 'excludeViewer' parameter has no effect.

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, open-world, and the annotation title is literally "GET /project-service/api/projects/{id}" — so the description's third line repeats structured data verbatim. It adds nothing about permission-scoped visibility (the withAnyPermission behavior) or what happens when the id is unknown or the caller lacks access.

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?

Three lines restate one fact: the tool name, "Retrieves a project", "Retrieves a project by id", then the raw HTTP path. No sentence earns its place beyond the first, and nothing useful is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, an agent has no idea what a "project" object contains or how permission filtering narrows the result. Combined with no sibling differentiation in a tool list containing several project-fetch endpoints, the definition is too thin to call reliably.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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, so the baseline of 3 applies. The description's "by id" adds no meaning beyond the schema's "The id of the project. (path)" and says nothing about apiVersion or withAnyPermission.

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 does state a verb and resource ("Retrieves a project by id"), but the phrase is immediately preceded by the identical generic sentence "Retrieves a project", so the net information is only the id keying. It gives no basis for choosing between project_get_all_projects, iaas_get_project, or project_get_projects_by_id_resource_metadata.

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 single-item fetch versus the list variant or the IaaS project endpoint. The description contains no conditions, prerequisites, or exclusions an agent could act on.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

project_get_projects_by_id_resource_metadataC
Read-onlyIdempotent

Retrieves a resource metadata for a project Retrieves a resource metadata for a project by id. GET /project-service/api/projects/{id}/resource-metadata

NameRequiredDescriptionDefault
idYesТhe id of the project. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format. For versioning information refer to /project-service/api/about.2019-01-15

TDQS

C2.8/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 covered. The description adds little beyond the endpoint path and does not describe authentication needs, error behavior, what metadata is returned, or how missing projects 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences are near-duplicates, and the endpoint path also duplicates the annotation title. The description could be reduced to one sentence without losing information, so multiple sentences do not earn their 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?

This is a simple read-by-id operation with complete parameter schema and annotations covering safety. The description is sufficient to call it, but without an output schema it does not explain what 'resource metadata' contains or what the response shape looks like.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 required id parameter and apiVersion parameter are fully documented in the schema. The description only repeats that lookup is by id, so it adds no meaningful semantics beyond the structured schema; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: retrieves a project's resource metadata by id. It also gives the underlying endpoint, so the operation is identifiable. However, it does not distinguish this from nearby siblings such as iaas_get_project_resource_metadata or project_patch_projects_by_id_resource_metadata.

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 call does but gives no when-to-use guidance, prerequisites, or alternatives. An agent is left to infer that this is the GET variant for project resource metadata rather than one of the several sibling project or IaaS metadata tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

project_modify_projectC

Modifies a project Modifies a project by id. Fields that can be modified: name, description, constraints, properties, cost, operation timeout, shared resources. PATCH /project-service/api/projects/{id}

NameRequiredDescriptionDefault
idYesThe id of the project. (path)
bodyYesRepresents a specification for a updating a project. — Project
apiVersionNoThe version of the API in yyyy-MM-dd format. For versioning information refer to /project-service/api/about.2019-01-15

TDQS

C2.9/5.0
Behavior3/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 that this is a PATCH operation and identifies mutable fields, but it does not explain effects on omitted fields, permissions, or side effects beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded, but 'Modifies a project' is repeated in the next sentence, and the PATCH endpoint line duplicates the annotation title. It is not badly oversized, but it contains avoidable redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema and annotations cover most mechanical details, and the description identifies the target by id and lists body fields. However, it lacks sibling-tool routing and includes the questionable 'cost' field, leaving it incomplete for this crowded project-management tool family.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline would be 3, but the description says 'cost' can be modified even though the body schema has no cost field and there is a separate project_modify_project_costs tool. This potentially misleads an agent and does not add useful detail beyond the already descriptive 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, 'Modifies a project by id,' and lists the mutable fields. It is clear what the tool does, but it does not distinguish this tool from siblings such as project_modify_project_costs, project_modify_project_principals, or iaas_update_project.

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 guidance on when to use this tool versus the many sibling project-modification tools. The field list implies updates are possible, but the description gives no exclusions or alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

project_modify_project_costsC

Modifies a project cost Modifies the cost of a project specified by id. PATCH /project-service/api/projects/{id}/cost

NameRequiredDescriptionDefault
idYesThe id of the project. (path)
bodyYesA representation of a project cost. — Project cost
apiVersionNoThe version of the API in yyyy-MM-dd format. For versioning information refer to /project-service/api/about.2019-01-15

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, destructiveHint=false, and openWorldHint=true; the description merely restates 'modifies' and the PATCH endpoint, which is also the title. It adds no context on partial-update semantics, required permissions, or what happens to omitted cost fields.

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 but redundant: the first line and second line both say 'modifies ... cost,' and the endpoint repeats the annotation title. Front-loaded enough, but no sentence earns extra 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?

Given annotations cover the safety profile and the schema fully documents all three parameters, the definition supplies just enough to call the tool. However, for a non-idempotent PATCH mutation it omits any note on partial-update or side-effect behavior, leaving a 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% with a fully documented nested body (cost, costUnit, costSyncTime, etc.). The description only reiterates that id selects the project, adding 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 (modifies) and resource (project cost) and clarifies it targets the project specified by id. No sibling in the list modifies project costs, so the tool is distinguishable, though the definition doesn't explicitly contrast with the general project_modify_project.

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 conditions are given. It only notes that the cost is identified by project id, leaving the agent to infer usage context from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

project_modify_project_principalsC

Modifies principals assigned to a project Modifies principals assigned to a project by id. PATCH /project-service/api/projects/{id}/principals

NameRequiredDescriptionDefault
idYesThe id of the project. (path)
bodyYesPrincipals
apiVersionNoThe version of the API in yyyy-MM-dd format. For versioning information refer to /project-service/api/about.2019-01-15
syncPrincipalsNo
validatePrincipalsNoIf true, a limit of 20 principals is enforced. Additionally each principal is validated in the Identity provider and important rules for group email formats are enforced.

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, destructive=false, idempotent=false and openWorld=true, so the safety profile is covered. The description adds nothing beyond that: it doesn't say that removal is possible, that syncPrincipals triggers external IdP synchronization, or that validatePrincipals enforces a 20-principal limit — behaviorally meaningful facts that only appear buried 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three lines where one would do — the first sentence is repeated verbatim and expanded only with 'by id'. It is front-loaded and short, but the duplication wastes the limited space that could have conveyed what actually gets modified.

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 five parameters, nested principal objects, optional sync/validate flags and no output schema, the description is insufficient: an agent gets no signal about the effect of removal, the IdP synchronization side effect, or the principal-count/validation constraints. Only the endpoint path hints at 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 80%, so the schema itself documents id, body.modify, body.remove, apiVersion and validatePrincipals adequately. The description contributes no extra parameter meaning, which is acceptable but not additive; baseline 3 applies 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?

The description gives a specific verb and resource ('Modifies principals assigned to a project') plus the underlying endpoint, so an agent can tell this is a principal-mutation tool on a project. It does not differentiate from the close sibling project_sync_projects_principals, nor does it say that 'modify' here means add/remove/role-change, which the schema reveals only indirectly.

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 at all: no mention of alternatives, prerequisites, or the fact that a separate sync_principals operation exists. The agent must infer everything from the tool name and the request body.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

project_patch_projects_by_id_resource_metadataB

Modifies a project resource metadata Modifies the resources metadata of a project specified by id. PATCH /project-service/api/projects/{id}/resource-metadata

NameRequiredDescriptionDefault
idYesТhe id of the project. (path)
bodyYesMetadata related to resources provisioned within a project. — resource metadata
apiVersionNoThe version of the API in yyyy-MM-dd format. For versioning information refer to /project-service/api/about.2019-01-15

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; the description adds nothing behavioral beyond restating the HTTP verb and path. It does not explain whether the tags list replaces or is merged into existing metadata, which is the critical unknown for a non-idempotent PATCH.

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 'Modifies a project resource metadata' is redundant with the second sentence, and the trailing URL duplicates what is already in the annotations title. Structurally front-loaded but with avoidable repetition.

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 a 100%-covered nested schema and no output schema, the description covers the basic identity of the operation. However, for a mutation tool with idempotentHint=false, it omits what a successful response looks like and whether existing metadata is overwritten, leaving meaningful 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 id, body.tags and apiVersion parameters are already fully documented in the schema. The description adds no format, merge semantics, or example 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?

The description states a specific verb+resource: it modifies the resource metadata of a project identified by id, and includes the endpoint. It is clear what the tool does, but it does not distinguish itself from close siblings such as project_get_projects_by_id_resource_metadata or iaas_update_project_resource_metadata.

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 'PATCH .../{id}/resource-metadata' phrasing. There is no explicit statement of when to use this versus the GET counterpart or the iaas_update_project_resource_metadata tool, and 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.

project_post_projectsC

Creates a project POST /project-service/api/projects

NameRequiredDescriptionDefault
bodyYesThe project to create. — The project to create.
apiVersionNoThe version of the API in yyyy-MM-dd format. For versioning information refer to /project-service/api/about.2019-01-15
validatePrincipalsNoIf true, a limit of 20 principals is enforced. Additionally each principal is validated in the Identity provider and important rules for group email formats are enforced.

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, idempotentHint=false and openWorldHint=true, so the safety profile is covered structurally. The description adds only the raw endpoint path and says nothing about required permissions, whether repeated calls create duplicate projects, or what is returned on success.

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 verb, with no filler. The endpoint path is somewhat redundant with the annotation title but is cheap and harmless.

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 large nested body (role arrays for users, members, viewers, auditors, supervisors, advancedUsers, administrators, plus cost, properties and constraints) and no output schema. The description does not explain role semantics, defaults, or what identifier is returned for the newly created project, leaving a significant gap for a create 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 every parameter (body, apiVersion, validatePrincipals) and every nested field is documented in the schema itself. The description adds no meaning beyond that, which is acceptable given 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: 'Creates a project', plus the underlying endpoint POST /project-service/api/projects. However, it does not distinguish this from sibling tools such as iaas_create_project or project_modify_project, so an agent must infer which create path applies.

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 alternatives (iaas_create_project, project_modify_project). The agent is left to guess based on name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

project_sync_projects_principalsC

Sync principals assigned to any project within user organization POST /project-service/api/projects/{id}/sync-principals

NameRequiredDescriptionDefault
idYesThe id of the project. (path)
apiVersionNoThe version of the API in yyyy-MM-dd format. For versioning information refer to /project-service/api/about.2019-01-15

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, openWorldHint=true, idempotentHint=false, destructiveHint=false, so the safety profile is known. The description adds nothing beyond restating the endpoint: it does not say whether existing principal assignments are removed, whether the operation is asynchronous, or what privileges it requires. For a non-idempotent mutation this is a real gap.

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, which is fine, but the second line merely duplicates the HTTP path already present in the title and annotations — it occupies space without earning it, and the first sentence is under-specified rather than tight.

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 non-idempotent mutation with no output schema and no explanation of effect, side effects, or result. Given the complexity of principal/role synchronization in an identity system, the description leaves too much for the agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 (id, apiVersion) are already documented in the schema and the baseline is 3. The description's '{id}' reference matches the schema without adding format, scope, or validation detail.

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 ('sync') and a resource ('principals assigned to a project'), which is better than a tautology. But 'sync' is undefined — an agent cannot tell whether this pushes org-level principals down to the project, reconciles them bidirectionally, or replaces the assignment set. The sibling project_modify_project_principals is never differentiated.

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 prerequisites, and no mention of the obvious alternative project_modify_project_principals, which an agent would need to distinguish this from. The only context is the raw HTTP path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_add_certificate_library_itemC

Add an item to the certificate library POST /cloudapi/1.0.0/ssl/certificateLibrary

NameRequiredDescriptionDefault
bodyYesA certificate library item.

TDQS

C2.9/5.0
Behavior2/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 only the raw REST path; it says nothing about whether duplicate aliases are rejected, what permissions are required, or how private key material is handled at the API level.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence plus the endpoint path, front-loaded with the verb and resource. The raw HTTP path adds little for an agent but is not noisy enough to penalize heavily.

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 a well-described nested body schema and annotations that carry the safety hints, the essential calling information is present. Missing are the effects of the write (duplicate handling, response shape) which no output schema covers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 properties already document privateKey, privateKeyPassphrase, certificate, description and consumerCount. The description adds no further meaning, 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: 'Add an item to the certificate library', which separates it cleanly from the get/update/delete certificate library siblings. It does not explicitly name those alternatives or explain how it differs from provider_add_consumer_ref_to_cert_library_item, so it stops short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to use this versus the sibling library operations (get, update, delete, add_consumer_ref) or what a caller needs before invoking it. The agent must infer the context 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.

provider_add_consumer_ref_to_cert_library_itemC

Adds the specified consumer reference to a library item. POST /cloudapi/1.0.0/ssl/certificateLibrary/{certLibraryItemId}/consumers

NameRequiredDescriptionDefault
bodyYesEntity reference used to describe VCD entities
certLibraryItemIdYes(path)

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, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description adds only the REST endpoint; it does not say what happens if the consumer reference already exists (duplicate vs no-op), what permissions are required, or what state changes on the library item.

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 lines: the action first, then the endpoint. Nothing is bloated, though the appended raw path could have been traded for a sentence of actual behavioral guidance.

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, nested-body operation with no output schema, the description leaves key questions open: what the body's id/name refer to, whether re-adding a duplicate is an error, and what the response contains. The endpoint path alone does not make the definition complete enough to invoke 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 the nested body is documented as an 'Entity reference used to describe VCD entities' with id/name subfields. The description adds no meaning beyond the schema — notably it never says what kind of entity a 'consumer' is (org, user, or other vCD entity).

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: adds a consumer reference to a certificate library item, plus the exact REST path. It is distinguishable from provider_replace_cert_library_item_consumer_refs and provider_query_cert_library_item_consumer_refs by implication, but the description never names those siblings to make the 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 Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no mention of when to prefer replace_cert_library_item_consumer_refs (bulk set) over this add operation. The agent must infer the add-vs-replace semantics from the tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_change_passwordB

Modify the existing password of a local user. Modify an existing user's own password POST /cloudapi/1.0.0/users/{userUrn}/changePassword

NameRequiredDescriptionDefault
bodyYesChange password Request
userUrnYesuserUrn (path)

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 and non-idempotence, so the safety profile is covered. The description adds the meaningful 'local user' scoping hint but omits post-change behavior an agent would care about — whether existing sessions/tokens are invalidated, whether admin rights are required, and whether the caller can target other users.

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 lines, front-loaded with the action, no padding. Minor redundancy: the two opening sentences restate each other, and the raw POST path duplicates the annotation title, but nothing is confusing.

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 credential-mutating tool with no output schema, the definition covers what it does and the password policy is carried by the schema, but it leaves out authorization scope and side effects (session invalidation, whether an admin or only the self may invoke it). Adequate but with clear gaps for a security-sensitive mutation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 nested body schema already spells out password complexity rules and the meaning of currentPassword/newPassword explicitly. The description adds nothing beyond that and leaves userUrn's semantics (whose password is actually changed) ambiguous, 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: change an existing local user's password, with the underlying endpoint given. It does not distinguish itself from the adjacent provider_update_user tool, so an agent cannot tell from the description alone which one to use for password changes versus profile edits, and the phrase "user's own password" slightly conflicts with the userUrn parameter that suggests any 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?

The word "local" implies a scope restriction (versus LDAP/SSO-backed users), which is the only usage guidance present. There is no statement of when to prefer this over provider_update_user, no mention of whether an admin may change another user's password, and no prerequisites such as needing the current password.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_create_custom_rights_categoryB

Create a new custom rights category. Creates a new custom rights category. POST /cloudapi/1.0.0/rightsCategories

NameRequiredDescriptionDefault
bodyYesRightsCategoryNode

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description primarily restates the API endpoint and the action. Annotations already clarify that this is a mutable operation (readOnlyHint: false), so the description provides only minimum viable context.

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 suffers from significant redundancy, repeating 'Create a new custom rights category' twice before including the full API path. This repetition wastes space and detract from structural 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?

While the input schema is extremely detailed, the description itself is extremely brief. It fails to provide any high-level context about the business logic or the nature of the 'Rights Category' resource in the overall system.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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%, which establishes a baseline score of 3. The description offers no additional semantic meaning regarding the complex fields (like rightsCount or subCategories) that are defined in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly and immediately states the action (Create) and the target resource (custom rights category). Given the extensive list of sibling tools, this purpose is highly distinct from query or delete operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternative methods (e.g., when to use a pre-existing category). Usage is only implied by the creation action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_create_groupB

Create a new group. LDAP and provider org VIDB groups are verified against the IDP before import. POST /cloudapi/1.0.0/groups

NameRequiredDescriptionDefault
bodyYesGroup Spec object.

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as a non-readonly, non-idempotent, open-world mutation. The description adds meaningful context beyond annotations by noting that LDAP and provider org VIDB groups are verified against the IDP before import, which is an important operational constraint.

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. The trailing endpoint path is somewhat redundant with the annotation title, but it does not substantially hurt readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core action and one important IDP verification caveat. However, for a mutation tool with no output schema, it does not describe expected response behavior, permission requirements, or what happens when IDP verification fails.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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, including providerType and roleEntityRefs, are already documented. The description does not add parameter-level meaning beyond what the schema provides, so the baseline score 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: "Create a new group." It adds useful scope about LDAP and VIDB groups but does not explicitly differentiate from sibling operations such as provider_update_group or provider_query_groups.

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 say when to use this tool versus alternatives like provider_update_group, provider_query_groups, or provider_sync_ldap. The IDP verification note is a behavioral caveat, not a usage-selection guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_create_rightB

Create a new right. Creates a new right associated with a service. POST /cloudapi/1.0.0/rights

NameRequiredDescriptionDefault
bodyYesRight

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, destructiveHint=false and openWorldHint=true, so the mutation/safety profile is covered. The description adds only that the right is tied to a service and the underlying REST path; it says nothing about required permissions, whether an existing name causes a conflict, or what success 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 first two sentences restate each other ('Create a new right' / 'Creates a new right associated with a service'), wasting space. The endpoint line is the only genuinely additive content, so the definition is not front-loaded with 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 single-body-param mutation with annotations covering the safety profile and a fully described nested schema, the description is minimally adequate. It omits anything about behavior on duplicate names, permission requirements, or the shape of the created resource, which a caller might reasonably 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 the nested body (name required, plus category, rightType enum, impliedRights, isPublishable, serviceNamespace) is already documented structurally. The description adds no semantics beyond the schema, which is the expected baseline when coverage is complete.

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?

A specific verb ('Create') and resource ('right') with scope ('associated with a service') and the backing endpoint POST /cloudapi/1.0.0/rights. It is clearly a creation tool, though it does not distinguish itself from the near-sibling provider_create_custom_rights_category.

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 alternatives such as provider_create_custom_rights_category, provider_query_rights, or provider_get_right, and no prerequisites or conditions are stated. 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.

provider_create_userB

Create a new user. LDAP and provider org VIDB users are verified against the backing IDP before import. POST /cloudapi/1.0.0/users

NameRequiredDescriptionDefault
bodyYesUser Spec object.

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, idempotentHint=false and openWorldHint=true, so the mutation profile is covered. The description adds one genuinely useful behavioral fact beyond that — LDAP and provider org VIDB users are validated against the backing IDP before import — but says nothing about required permissions, failure behavior, or what happens on duplicate usernames.

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 in the first two words, and only three short sentences. The trailing 'POST /cloudapi/1.0.0/users' duplicates the annotation title and earns little, but overall it is tight.

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 is adequate but thin: it never says what a successful call returns (presumably the created user object), whether scope is provider/org level, or how orgEntityRef and providerType interact. Annotations carry the safety profile, which limits the damage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 single top-level `body` parameter is richly documented, including password complexity rules and read-only fields. The description adds no parameter-level 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?

States a specific verb and resource: 'Create a new user', which cleanly identifies the operation. It does not distinguish itself from adjacent user-management siblings (provider_update_user, provider_modify_user_groups, provider_query_users), but the create semantics 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?

Usage is only implied by the verb 'Create' — there is no statement of when to use this versus provider_update_user or provider_take_ownership, no prerequisites such as required admin rights, and no exclusions. The IDP-verification sentence hints at a precondition for LDAP/VIDB users but is framed as behavior, not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_delete_1_0_0_sessions_by_idB
DestructiveIdempotent

Logs out the current user DELETE /cloudapi/1.0.0/sessions/{id}

NameRequiredDescriptionDefault
idYes(path)

TDQS

B3.2/5.0
Behavior3/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. The description adds that the behavioral outcome is a logout, but it does not explain session invalidation, ownership constraints, or whether an arbitrary session id can be targeted.

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-loads the effect before the endpoint. The endpoint partly duplicates the title/name, but the description is compact and not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter delete-session tool with rich destructive/idempotent annotations and no output schema, the description covers the core purpose and endpoint adequately. The remaining gaps are sibling differentiation and precise id semantics, but they are not severe for this simple 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 there is only one parameter, id, already typed as a path string. The description mentions {id} through the endpoint but does not clarify what the id represents or whether it must be the current session, so it adds little 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 action and resource: logging out a user by deleting a session at DELETE /cloudapi/1.0.0/sessions/{id}. It is clear enough to identify the operation, but it does not differentiate from the sibling provider_logout_current_session and says 'current user' despite taking an explicit id parameter.

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, prerequisites, or alternative routing. With a closely related sibling such as provider_logout_current_session, an agent receives no help choosing between them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_delete_certificateB
DestructiveIdempotent

Revoke trusting specified certificate DELETE /cloudapi/1.0.0/ssl/trustedCertificates/{trustedCertificate}

NameRequiredDescriptionDefault
trustedCertificateYes(path)

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, openWorldHint=true and readOnlyHint=false, so the safety profile is carried by structured data. The description adds the semantic framing 'revoke trusting', which clarifies what is destroyed (the trust relationship, not the certificate itself), but says nothing about downstream impact on deployments, required permissions, or error conditions.

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, purpose front-loaded, zero filler. The raw HTTP verb and route add little for an agent but follow the standard pattern of this tool family and don't obscure the intent.

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 destructive, open-world mutation with no output schema and one weakly described parameter needs more than a restated endpoint. Missing are the consequences of revocation, whether existing consumers of the certificate are affected, and what an agent should verify before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 nominally 100%, but the only description is the terse '(path)', so the schema does not actually explain whether trustedCertificate is an ID or URN or its format. The description adds nothing further, so per the high-coverage baseline this lands at 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+resource ('Revoke trusting specified certificate') that an agent can map directly to the operation. It doesn't distinguish itself from near-siblings such as provider_delete_certificate_library_item or provider_trust_certificate, which remains the only gap.

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 or when-not-to-use guidance and names no alternatives. There is no mention of prerequisites (certificate must first be trusted, must not be in use) that would help pick between the delete and trust/query siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_delete_certificate_library_itemA
DestructiveIdempotent

Remove certificate library item. Delete the specified certificate library item. Only items that are not in use can be deleted. Note: This API also supports a former (erroneously spelt) alternate path /cetificateLibrary/{id} as a Deprecated API (deprecated-in and removed after API version 36.0) DELETE /cloudapi/1.0.0/ssl/certificateLibrary/{id}

NameRequiredDescriptionDefault
idYes(path)

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 and idempotentHint=true, so the description is not carrying the safety burden. It nonetheless adds real context beyond the annotations: the in-use deletion constraint and the deprecated misspelled alternate path with its removal version, which affects how an agent might target the 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?

The constraint is front-loaded, but the first two sentences are redundant ("Remove certificate library item." then "Delete the specified certificate library item."), and the misspelled-path aside is verbose for a deprecated route. Trimming would sharpen it without losing 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 one-parameter destructive delete with full annotation coverage and no output schema, the description supplies the key operational fact (in-use items cannot be deleted) plus the endpoint. It stops short of explaining failure behavior or what happens to existing consumer references, but nothing essential 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% and there is a single required "id" parameter, so the baseline is 3. The description's path template shows that id is the certificate library item identifier in the URL, which adds only marginal clarity over 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 (delete/remove) and a precise resource (certificate library item), which separates it from siblings like provider_delete_certificate (trusted certificates) and provider_update_certificate_library_item. It does not explicitly name those siblings, 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?

"Only items that are not in use can be deleted" is a genuine precondition that tells the agent when the call will fail, but no alternatives are named (e.g., querying consumer refs first via provider_query_cert_library_item_consumer_refs, or using provider_delete_certificate for a different resource). Usage is implied rather than routed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_delete_custom_rights_categoryC
DestructiveIdempotent

Delete an individual custom rights category. Deletes the requested Custom Rights Category by id. DELETE /cloudapi/1.0.0/rightsCategories/{id}

NameRequiredDescriptionDefault
idYes(path)

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 and openWorldHint=true, so the safety profile is covered. The description adds no behavioral context beyond restating 'deletes by id' and the HTTP path — nothing about referential consequences for rights in that category, permission requirements, or whether the delete 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three lines where one would do: sentence two paraphrases sentence one, and the raw HTTP path duplicates the annotation title. It is front-loaded and short, but a meaningful fraction of the text is redundant rather than informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, open-world mutation with no output schema, the description should at minimum say what the caller gets back and what failure modes exist (in-use category, missing id). Neither is covered, and the annotations alone don't fill that 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?

With a single parameter at 100% schema coverage, the schema already carries the semantics ('id', path). The description only echoes 'by id' and adds no format, origin, or lookup guidance (e.g., obtaining the id from provider_query_rights_categories), 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 (delete) and resource (custom rights category) plus an identifier scope, which distinguishes it from list/query siblings like provider_query_rights_categories and provider_get_rights_category. It does not, however, distinguish it from provider_delete_right, which operates on a related but different object, 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 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 provider_delete_right or how it relates to provider_create_custom_rights_category. Preconditions that matter for a destructive delete — whether the category must be empty of rights, or whether rights assigned to it are orphaned/there is a hard failure — are entirely absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_delete_groupC
DestructiveIdempotent

Delete the specified group. DELETE /cloudapi/1.0.0/groups/{groupUrn}

NameRequiredDescriptionDefault
groupUrnYesgroupUrn (path)

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, so the safety profile is covered structurally. The description adds nothing beyond the raw route: it does not say whether dependent memberships/roles are removed, whether deletion is reversible, or what errors occur for a nonexistent or protected group.

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, with zero filler. It is efficient, though the second line largely duplicates the annotation title.

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-parameter delete with no output schema and full annotation coverage, the minimum is present. Missing is anything an agent would want before committing an irreversible operation: cascade behavior and permission requirements.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

One required path parameter with 100% schema coverage, so the baseline is 3. The description's endpoint template does confirm groupUrn is a path segment, but it gives no format or example (URN vs UUID) beyond what the schema 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?

States a specific verb and resource ('Delete the specified group') and appends the exact HTTP endpoint, so an agent can tell it apart from provider_create_group / provider_update_group / provider_query_groups. It stops short of naming a sibling or scoping what a 'group' is in this provider context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites (permissions, ownership), and no mention of alternatives such as provider_update_group or provider_delete_user. The endpoint path is the only contextual clue, which the agent must infer from.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_delete_oidc_relying_partyC
DestructiveIdempotent

Deletes a specific OIDC relying party. Delete a specific OIDC relying party. DELETE /cloudapi/1.0.0/openIdProvider/relyingParties/{id}

NameRequiredDescriptionDefault
idYesOIDC relying party's ID (path)

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, and openWorldHint=true, so the description must add context such as irreversibility, effect on tokens/sessions issued to that relying party, or required auth. Instead it restates "delete" twice and pastes the HTTP route, adding nothing beyond structured data.

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, but the first two lines are the same sentence repeated and the third is a raw endpoint that duplicates the annotation title. It is front-loaded and small, yet a third of the content is pure redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, irreversible delete with no output schema, an agent needs to know consequences (e.g., clients using that relying party lose SSO) and the idempotency/error behavior. The annotations hint at the safety profile, but the description supplies none of the operational context a caller needs before executing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 single id parameter is already documented as the relying party's ID path parameter. The description adds no format, sourcing, or lookup guidance, 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 ("Deletes a specific OIDC relying party") and the REST endpoint, which makes it distinguishable from provider_get_oidc_relying_party, provider_update_oidc_relying_party, and provider_register_oidc_relying_party by verb alone. No explicit sibling comparison, but the name-plus-verb is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus alternatives such as provider_query_oidc_relying_parties (to look up the id first) or provider_update_oidc_relying_party. Nothing about prerequisites, permissions, or the caution warranted before a destructive delete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_delete_rightC
DestructiveIdempotent

Delete an individual custom right. Deletes the requested Custom Right by id. DELETE /cloudapi/1.0.0/rights/{id}

NameRequiredDescriptionDefault
idYes(path)

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, so the description owes extra context rather than a restatement. It adds only the HTTP verb and route, leaving open what happens if the right is still bound to a role or whether the delete can be undone.

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 sentence two ('Deletes the requested Custom Right by id') merely restates sentence one, and the raw route adds little for an agent. One of three lines 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?

A trivial one-parameter mutation whose safety profile is fully carried by annotations and whose only parameter is described in the schema. It is adequate but silent on failure modes (right in use, not found) that would matter for an irreversible delete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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% (a single 'id' path property), so the baseline is 3. The phrase 'by id' confirms the identifier is the custom right's id rather than a role or category id, which is mildly useful given the many delete siblings.

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 an individual custom right' plus 'by id'. That is enough to distinguish it from the neighbouring category-level and group/user delete tools, 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 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 provider_delete_custom_rights_category, provider_query_rights, or provider_create_right, and no prerequisites such as the right needing to be unused. 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.

provider_delete_service_accountB
DestructiveIdempotent

Deletes a service account DELETE /cloudapi/1.0.0/serviceAccounts/{id}

NameRequiredDescriptionDefault
idYesService account ID URN (path)

TDQS

B3.2/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 covered structurally. The description adds only the endpoint path; it says nothing about what happens to credentials, tokens, or resources owned by the account, and does not state that the deletion is permanent.

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 verb+resource and followed by the endpoint. No filler, though the endpoint line 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?

For a one-parameter destructive operation with full annotation coverage, the essentials are present. What is missing is the consequence of deletion (irreversible loss of the account and its associated credentials) and the delete-vs-revoke distinction, both of which matter for a destructive tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single 'id' parameter is documented as a service account ID URN (path). The description adds no format or lookup guidance 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 ('Deletes a service account') plus the underlying REST endpoint, which is unambiguous. It does not, however, distinguish itself from the closely related provider_revoke_service_account sibling, which an agent could easily confuse with deletion.

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 delete versus revoke (provider_revoke_service_account) or update, no prerequisites, and no warnings about irreversibility. The agent must infer all selection logic 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.

provider_delete_tokenA
DestructiveIdempotent

Delete a specific token. Use this to revoke the current token in case of a leak. DELETE /cloudapi/1.0.0/tokens/{id}

NameRequiredDescriptionDefault
idYesToken ID URN (path)

TDQS

A3.6/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 covered. The description adds only the revocation scenario; it does not say whether the deleted token's live sessions are immediately invalidated, whether an admin can delete another user's token, or how failures are reported — meaningful gaps for an irreversible auth operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences front-load purpose and usage before the endpoint path; nothing is padded. The trailing raw path largely duplicates the annotation title (which is the same endpoint string), making it the one low-value element.

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-parameter, idempotent delete with full annotation coverage and no output schema, the definition supplies enough to call it correctly. The remaining unanswered question — the blast radius on the caller's own session when the current token is the one deleted — is a modest omission rather than a blocker.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With one parameter at 100% schema coverage, the schema already documents "Token ID URN (path)". The description's "DELETE /cloudapi/1.0.0/tokens/{id}" corroborates that the id is the path segment but adds no format or sourcing guidance 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?

States a specific verb and resource ("Delete a specific token") plus a concrete motivating scenario (revoking a leaked token), which distinguishes it from provider_get_token / provider_get_tokens / provider_update_token in the sibling list. It stops short of naming those siblings explicitly, so an agent must infer the boundary itself.

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?

"Use this to revoke the current token in case of a leak" gives a real when-to-use trigger rather than leaving usage implied. It offers no when-not or named alternative (e.g. provider_delete_1_0_0_sessions_by_id for ending sessions), so the routing guidance is clear but not complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_delete_userB
DestructiveIdempotent

Delete the specified user. DELETE /cloudapi/1.0.0/users/{userUrn}

NameRequiredDescriptionDefault
userUrnYesuserUrn (path)

TDQS

B3.3/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 adds only the endpoint and does not provide additional behavioral context such as irreversible effects, permission requirements, or what happens to related user data.

Agents need to know what a tool does to the world before 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 with zero waste. The operation is stated first, followed by the endpoint path.

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 delete, the description plus rich annotations cover the basic call requirements. However, it lacks context appropriate for a destructive user deletion, such as permission requirements 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?

There is one required parameter with 100% schema description coverage. The description restates that userUrn is a path parameter via the endpoint template, but adds 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.

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 the specified user.' It is clearly distinguishable from siblings such as provider_delete_group, provider_delete_service_account, and provider_delete_token.

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 guidance on when to use this tool versus alternatives, no prerequisites, and no warning about when not to use it. Usage is only implied by the name and resource.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_deny_device_authorizationB

Denies a device authorization request A device's request for access on behalf of a service account, as identified by the specified user code, is denied POST /cloudapi/1.0.0/deviceLookup/deny

NameRequiredDescriptionDefault
bodyYesDevice information for device authorization 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, openWorldHint=true, idempotentHint=false, destructiveHint=false, so the safety profile is covered. The description adds useful framing about what is being denied (a delegated access request on behalf of a service account, keyed by user code), but says nothing about the post-denial state, whether a pending request is required, or what happens on repeated calls despite 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?

Short and front-loaded, leading with the action. The second sentence largely restates the first with more words, and the raw endpoint path duplicates the annotation title, but the total length is small enough that little 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?

For a one-parameter mutation with full schema coverage and annotation-declared behavior, the description covers the essentials of WHAT and WHOM. It omits the practical context an agent needs (where the user code comes from, whether the denial must target a pending request), leaving a real gap for an otherwise simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single body.userCode parameter is documented in the schema. The description reinforces that the user code identifies the request being denied, but adds no format, sourcing, or validation detail 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?

The first sentence names a specific verb and resource ("Denies a device authorization request"), and the second clarifies the target object further (a device's access request on behalf of a service account). It's unambiguous which operation this is versus the obvious sibling provider_grant_device_authorization, though the description never explicitly names that 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?

No guidance on when to call this instead of provider_grant_device_authorization, nor any stated prerequisite such as the request having to be pending or the user code being obtained via provider_find_device_authorization_request. The agent must infer the workflow entirely from the description's silence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_find_device_authorization_requestB

Looks up a device authorization request for approval Looks up a service account identified by the specified user code for processing its authorization request POST /cloudapi/1.0.0/deviceLookup

NameRequiredDescriptionDefault
bodyYesDevice information for device authorization 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 carried by structured data. The description adds that identification is by user code and that the result feeds an authorization decision, but it does not say whether the POST has side effects, whether it can be safely repeated, or what it returns — noteworthy given the 'looks up' wording sits awkwardly against readOnlyHint=false.

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?

Three logical lines, but the first two are near-duplicates of each other and the third is just the HTTP path, which already appears in the annotation title 'POST /cloudapi/1.0.0/deviceLookup'. The front-loaded sentence is useful; the remainder does not earn its 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?

With no output schema, the description should say what a device authorization lookup returns (e.g., account/user details and pending status) so the agent knows whether it can proceed to grant or deny. It also leaves the nested 'body' wrapper unexplained. Adequate for a one-parameter lookup, but incomplete for the workflow it anchors.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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%; body.userCode is already documented as 'User code associated with device authorization requests'. The description only restates that the lookup keys on the specified user code, adding no format, source, or validation detail beyond the schema. 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?

The description gives a concrete verb and resource: it 'looks up a device authorization request' and 'looks up a service account identified by the specified user code'. The two opening lines restate the same action with slightly different framing (request vs. service account), which blurs the object, but an agent can still tell this is a device-authorization lookup. It never distinguishes itself from the closely related provider_grant_device_authorization and provider_deny_device_authorization 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?

Usage is only implied through phrases like 'for approval' and 'for processing its authorization request', suggesting the call precedes a grant/deny decision. No explicit when-to-use statement or named alternative is given, even though provider_grant_device_authorization and provider_deny_device_authorization are obvious next steps. The agent has to infer the workflow position.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_get_active_themeA
Read-onlyIdempotent

Get a description of a theme to be applied. The response contains relative URLs to each file comprising the theme in the requested flavor. All mandatory resources are included, even if the theme does… Get a description of a theme to be applied. The response contains relative URLs to each file comprising the theme in the requested flavor. All mandatory resources are included, even if the theme does not explicitly define such flavor(in which case the main flavor is used). To fetch each file, build a URL from filesRoot + files[i] and GET it. This resource is accessible without authentication. GET /cloudapi/v1/themes/active/{orgName}/{flavor}

NameRequiredDescriptionDefault
flavorYesDefines the flavor(light/dark, etc) in which to return the theme. (path)
orgNameYesResolve the active theme of the organization with the given name. If there is no such organization, or it is not assigned a dedicated theme, the default theme will be returned. (path)

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, the description discloses that the resource requires no authentication and that missing flavors silently fall back to the main flavor – both non-obvious behaviors an agent needs. It stops short of covering failure modes, but it clearly adds value over the structured hints.

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-loading is fine and the file-fetching instruction is actionable, but the description text is duplicated verbatim (the opening sentence and 'even if the theme does…' fragment repeat), and the raw HTTP path restates the annotation title. Duplication costs space 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?

With no output schema, the description carries the burden of explaining returns, and it does so by naming filesRoot and files[i] and the mandatory-resource guarantee. Only error or empty-organization behavior is left implicit, which the orgName parameter description partially covers.

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 parameters are already documented. The description still contributes meaning the schema lacks: the flavor fallback rule ('even if the theme does not explicitly define such flavor, the main flavor is used') and how the returned paths compose into URLs.

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 a description of a theme to be applied') and immediately states what the response contains, which is more than a restated name. However, it never references the closely related siblings provider_get_active_theme_main_flavor or provider_get_theme_file/flavor_file, so the agent must infer the boundary from the names 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: the flavor-fallback rule and the instruction to build a URL from filesRoot + files[i] hint at the intended workflow, but the agent is not told when to pick this tool over provider_get_theme_file or provider_get_active_theme_main_flavor, nor 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.

provider_get_active_theme_main_flavorA
Read-onlyIdempotent

Get a description of a theme to be applied. The response contains relative URLs to each file comprising the theme in its main flavor. To fetch each file, build a URL from filesRoot + files[i] and… Get a description of a theme to be applied. The response contains relative URLs to each file comprising the theme in its main flavor. To fetch each file, build a URL from filesRoot + files[i] and GET it. This resource is accessible without authentication. GET /cloudapi/v1/themes/active/{orgName}

NameRequiredDescriptionDefault
orgNameYesResolve the active theme of the organization with the given name. If there is no such organization, or it is not assigned a dedicated theme, the default theme will be returned. (path)

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description adds real value beyond them: the shape of the response (relative URLs plus filesRoot), the exact procedure for retrieving the files, and the fact that the resource needs no authentication. It stops short of describing the remaining response fields or any caching/versioning 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?

The core sentence is front-loaded and efficient, but the entire description text is duplicated verbatim, wasting roughly half the content. The trailing raw route is useful; the repetition is not.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of explaining returns, and it does cover the key structure (filesRoot plus a files array of relative paths) and the unauthenticated access. Minor gaps remain: it does not say whether the response includes theme metadata such as name/version, or what error behavior 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% and the orgName property already explains the fallback to the default theme when the org does not exist or has no dedicated theme. The description adds nothing about the parameter beyond echoing it in 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.

Purpose4/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 ('Get a description of a theme'), and pinpoints the variant read ('main flavor'), which distinguishes it from the flavor-specific sibling provider_get_theme_flavor_file. However, it never names the closely related provider_get_active_theme or provider_get_theme_file, so the agent must infer the boundary 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?

It supplies a useful follow-up recipe: build a URL from `filesRoot` + `files[i]` and GET it, which implies a two-step workflow. But it gives no explicit when-to-use / when-not-to-use guidance against sibling theme endpoints, and no statement of what to do if a specific flavor rather than the main one is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_get_certificateB
Read-onlyIdempotent

Get specified certificate Get the PEM-encoded certificate with the requested URN GET /cloudapi/1.0.0/ssl/trustedCertificates/{trustedCertificate}

NameRequiredDescriptionDefault
trustedCertificateYes(path)

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 safety is covered. The description adds real value by disclosing the return format (PEM-encoded) and the underlying GET path, but says nothing about auth, error behavior for a bad URN, or what happens for non-trusted certs.

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 lines, front-loaded with the action and the payload type. The first line ('Get specified certificate') largely restates what the second line says better, so there is minor redundancy but no bloat.

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 annotated read-only getter with no output schema, the description covers what is returned, which is the main thing an agent needs. It still leaves the practical gap of how to discover the required trustedCertificate URN and what failures look like.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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%, but the single parameter's schema text is only '(path)', so the description's 'requested URN' and the URI template do the real work of indicating this is the trusted certificate URN identifier. That is a marginal improvement over the schema, matching 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 specified certificate') and adds that the return is the PEM-encoded certificate for the requested URN, which distinguishes it from the list-style sibling provider_query_trusted_certificates. It never explicitly names that sibling, but the resource 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 statement of when to use this versus provider_query_trusted_certificates, provider_get_certificate_library_item, or provider_trust_certificate. At best the phrase 'with the requested URN' weakly implies you must already know the URN, but no path to obtaining it is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_get_certificate_library_itemA
Read-onlyIdempotent

Get the specified certificate library item Retrieves the specified certificate library item. Note: This API also supports a former (erroneously spelt) alternate path /cetificateLibrary/{id} as a Deprecated API (deprecated-in and removed after API version 36.0) GET /cloudapi/1.0.0/ssl/certificateLibrary/{id}

NameRequiredDescriptionDefault
idYes(path)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already establish that this is a read-only, idempotent, non-destructive operation. The description adds useful context about the deprecated alternate path and the canonical endpoint, but it does not describe return contents, authentication requirements, or other operational 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 front-loaded with the core action and then adds endpoint and deprecation details. It is reasonably concise, though the first two sentences restate the same point and could be merged.

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 one-parameter read operation with complete schema coverage and strong annotations, the description provides enough context to call the tool correctly. Return-value details are not covered, but no output schema exists and the operation is straightforward.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 single id parameter is already typed and marked required in the schema. The description confirms that the ID identifies a certificate library item but adds no format or lookup semantics beyond the structured 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 uses a specific verb and resource: it retrieves a specified certificate library item by ID, and the endpoint path confirms the scope. It does not explicitly compare itself to sibling list/query tools such as provider_query_certificate_library, so it falls short of full sibling 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?

The use case is implied: fetch one certificate library item when its ID is known. There is no explicit guidance about when to use this instead of provider_query_certificate_library or other certificate-library siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_get_current_sessionB
Read-onlyIdempotent

Returns the current session identified by credentials supplied using the Authorization header Returns the specified session for the authorization token GET /cloudapi/1.0.0/sessions/current

NameRequiredDescriptionDefault

No parameters

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, so the safety profile is covered. The description adds only the fact that the session is resolved from the Authorization header credential rather than an ID parameter, with no further behavioral context beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The two sentences restate the same idea almost verbatim and the raw endpoint path is pasted in as a third line, which adds little for an agent choosing a tool. It is short, but the redundancy means not every line earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter, annotation-covered read, the definition is adequate to invoke correctly, but with no output schema and no description of what a session object contains, the agent gets no hint about returned fields (user, org, expiry) that would inform follow-up calls.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4; the description correctly reinforces that no arguments are needed because the session is derived from the auth token, which is the one semantic detail that matters here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb+resource ('Returns the current session') and names the credential source (Authorization header), so the agent knows exactly what it fetches. It does not distinguish itself from sibling tools such as provider_get_current_sessions (plural), provider_get_session, or provider_get_current_session_rights, which would have pushed it to 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?

Usage is only implied: an agent can infer this is the natural call to verify/identify the caller's own session, and the mention of the Authorization header hints at the prerequisite. There is no explicit statement of when to prefer this over provider_get_session or provider_get_current_sessions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_get_current_session_rightsB
Read-onlyIdempotent

Returns the rights associated with the current session. Please note that the 'impliedRights' and 'isPublishable' fields will not be set for rights returned from this endpoint. Returns the rights associated with the current session. GET /cloudapi/1.0.0/sessions/current/rights

NameRequiredDescriptionDefault
pageYesPage to fetch, zero offset.
filterNoFilter for a query. FIQL format.
sortAscNoField to use for ascending sort
pageSizeYesResults per page to fetch.
sortDescNoField to use for descending sort

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safe-read profile (readOnly, idempotent, non-destructive), so the description's real contribution is the caveat that 'impliedRights' and 'isPublishable' will not be populated — a genuinely useful disclosure that prevents an agent from misreading missing fields as an error. It adds no pagination or rate-limit behavior, which keeps it from 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 description repeats the core sentence verbatim ('Returns the rights associated with the current session' appears twice), which is pure waste. What remains — the field caveat and the endpoint path — is front-loaded and useful.

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 return-value burden; it partially addresses this with the missing-field caveat but never describes the overall shape of a right object or pagination response. Adequate minimum for a read-only list endpoint, but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with documented page, pageSize, filter (FIQL), and sort fields, so the schema does the heavy lifting. The description says nothing about filtering, sorting, or pagination semantics, giving no value 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 with scope: 'Returns the rights associated with the current session.' The 'current session' qualifier implicitly separates it from broader siblings such as provider_query_rights or provider_get_right, though it never names 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?

There is no guidance on when to use this versus provider_get_current_session, provider_query_rights, or provider_get_right. The usage is inferable from the name only; no prerequisites, exclusions, or alternatives are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_get_current_sessionsA
Read-onlyIdempotent

List all sessions for current user GET /cloudapi/1.0.0/sessions

NameRequiredDescriptionDefault
pageYesPage to fetch, zero offset.
pageSizeYesResults per page to fetch.

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 structurally. The description adds only the 'current user' scoping constraint; it says nothing about whether results are paginated (implied by the params), sorted, or what a session record contains. With annotations doing the heavy lifting, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two lines, front-loaded with the purpose, zero boilerplate. The REST path on the second line is redundant with the annotation title but is short and does reinforce the underlying endpoint.

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, paginated list tool with fully documented parameters and explicit annotations; the description covers purpose and scope sufficiently for correct invocation. No output schema exists, but the description needn't describe return shape for a GET list of a well-known resource.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 'page' (zero offset) and 'pageSize' are documented in the schema with defaults. The description adds nothing about pagination behavior or total-count handling, 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 sessions for current user' — with a clear scope restriction (current user only), which is more than the name alone conveys. It doesn't explicitly distinguish itself from the very similarly named sibling provider_get_current_session (singular) or provider_post_1_0_0_sessions, so an agent must infer the difference from 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The scope phrase 'for current user' implies this is the tool for enumerating one's own sessions, but there is no explicit guidance on when to prefer it over provider_get_current_session or provider_get_current_session_rights. Usage is inferable from the name and description rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_get_groupC
Read-onlyIdempotent

Get a specified group. GET /cloudapi/1.0.0/groups/{groupUrn}

NameRequiredDescriptionDefault
groupUrnYesgroupUrn (path)

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, idempotentHint, destructiveHint=false, and the annotations title already carries the exact endpoint path "GET /cloudapi/1.0.0/groups/{groupUrn}", which the description simply repeats. Nothing new is disclosed about return behavior, not-found handling, or scope of visibility.

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?

Only two short lines with the purpose front-loaded, which is efficient. But the second line duplicates the annotation title verbatim rather than earning its place by 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 one-parameter read-only fetch with full annotation coverage and no output schema, the definition is minimally sufficient to invoke correctly. It still lacks any hint about the response shape or how a group URN is discovered, which would be the useful additions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 single parameter is documented as "groupUrn (path)", so the schema carries the load. The description adds no meaning about the URN format or where the value is obtained, leaving it at 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 states a specific verb and resource ("Get a specified group"), which is clearer than a tautology. However, it never distinguishes this single-item fetch from the many related siblings such as provider_query_groups, provider_get_user, or provider_get_role, so the agent must infer it fetches exactly one group by URN.

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 provider_query_groups (listing) or provider_query_group_users (membership). No prerequisites, permissions, or error conditions (e.g., group not found) are mentioned, so all usage decisions are left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_get_notification_settingsC
Read-onlyIdempotent

Retrieves configured notification settings. Get configured notification settings. GET /cloudapi/1.0.0/orgNotificationSettings

NameRequiredDescriptionDefault

No parameters

TDQS

C2.7/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 description carries little burden. Beyond the raw GET path, it discloses nothing further — no note on whether settings are org-wide, whether defaults are returned when unconfigured, or what the payload contains.

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?

Three lines convey one fact: two sentences are redundant paraphrases of each other, and the bare endpoint path is structured metadata rather than guidance. It is padded 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 a trivial no-argument read with rich annotations but no output schema, the description is minimally sufficient. It omits what 'notification settings' actually comprise and whether the response is scoped to the caller's org, which would have been the one useful addition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline of 4 applies; there is no parameter meaning to explain and the description does not mislead about inputs.

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 (retrieve notification settings), so the basic purpose is clear, but the second sentence restates the first verbatim-plus-synonym and adds no differentiating detail. With sibling provider_update_notification_settings in the toolset, it never distinguishes read from write.

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 call this versus provider_update_notification_settings, nor any precondition (org-scoped, authenticated admin). The agent is left to 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.

provider_get_oidc_relying_partyC
Read-onlyIdempotent

Retrieves a specific OIDC relying party. Get a specific OIDC relying party. GET /cloudapi/1.0.0/openIdProvider/relyingParties/{id}

NameRequiredDescriptionDefault
idYesOIDC relying party's ID (path)

TDQS

C2.8/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 behavioral burden is low. The description adds nothing beyond restating the operation and pasting the raw REST path — no auth, permission, or error/not-found behavior is mentioned.

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 sentence is stated twice ('Retrieves a specific OIDC relying party.' then 'Get a specific OIDC relying party.') before the raw endpoint, so a third of the text is redundant. The endpoint line is useful but the duplication wastes 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 single-id read with full schema coverage and complete read-only annotations, this is minimally sufficient — an agent can call it correctly. It still lacks any pointer to the list/search sibling or note about behavior when the ID does not exist.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 single 'id' parameter is documented as the relying party's ID (path). The description only echoes the {id} placeholder in the path template, so it adds no semantics 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?

The description states a specific verb ('Retrieves') and resource ('OIDC relying party') with the ability to identify it as a single-resource fetch keyed by id. It does not differentiate from the sibling provider_query_oidc_relying_parties (list) or provider_get_oidc_relying_party variants, 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 guidance on when to use this versus provider_query_oidc_relying_parties (which lists parties) or provider_update_oidc_relying_party, nor any prerequisite information. The only implicit signal is the {id} path parameter, which the agent must infer from the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_get_orgC
Read-onlyIdempotent

Get specified organization. GET /cloudapi/1.0.0/orgs/{orgUrn}

NameRequiredDescriptionDefault
orgUrnYesorgUrn (path)

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 fully covered elsewhere. The description adds nothing beyond the raw endpoint path, which itself duplicates the annotation title — no auth requirements, visibility scope, or response shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loaded, which is good, but the second line is the REST endpoint already present in the annotation title, so it doesn't earn its place. One useful sentence plus one redundant line.

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 full annotation coverage and complete schema descriptions, this is minimally sufficient — an agent can invoke it correctly. However, with no output schema, the description could say what fields the org object returns or note visibility scoping, which it omits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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% (orgUrn documented as a path parameter), so the schema already carries the parameter semantics. The description adds no format details or hints on where to obtain the URN, 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 ('Get specified organization'), which is clear enough for an agent to know this fetches a single org. It does not differentiate from the sibling provider_query_orgs (listing) or identity_get_orgs_by_org_id, 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?

No guidance on when to use this versus provider_query_orgs or the identity org-lookup siblings, and no mention of prerequisites such as needing the org URN from a prior lookup. The agent must infer the single-vs-list distinction on its own.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_get_org_ldap_settingsC
Read-onlyIdempotent

Get all the organization LDAP settings. Get all organization LDAP settings. GET /cloudapi/v1/orgSettings/ldap

NameRequiredDescriptionDefault

No parameters

TDQS

C2.7/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, and the annotation title already contains the REST endpoint. The description contributes no additional behavioral context (no auth requirements, no indication of what is returned, no pagination or sensitivity notes). It does not contradict 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same sentence is stated twice verbatim, and the third line repeats the endpoint path already present in the annotation title. Only one of the three lines carries information, so the structure is padded 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?

A parameterless, read-only GET is relatively simple, and the annotations cover the safety profile. But with no output schema, the description could have named what the settings object contains; 'all the LDAP settings' is the bare minimum an agent needs to act.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters and the input schema is an empty object, so there is nothing for the description to explain. Baseline 4 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 a specific verb and resource ('Get all the organization LDAP settings'), which is enough to tell it apart from provider_update_org_ldap_settings or provider_search_ldap_users. However, it adds nothing beyond a restatement of the tool name, and offers no explicit differentiation from the many sibling 'get' tools (e.g., provider_get_org_settings).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus related siblings such as provider_get_org_settings, provider_test_ldap, provider_search_ldap_users, or provider_update_org_ldap_settings. The agent must infer the scope from the resource name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_get_org_settingsC
Read-onlyIdempotent

Get all the organization settings accessible to the user. Get all organization settings accessible to the user. GET /cloudapi/v1/orgSettings

NameRequiredDescriptionDefault

No parameters

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=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is fully covered elsewhere. The description adds no behavioral context beyond that: it does not say what kinds of settings are returned, whether output is redacted by role, or how large the payload is. Repeating the sentence and printing the HTTP path does not compensate.

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 core sentence is front-loaded and short, which is good. But it is then repeated verbatim, and a raw route string 'GET /cloudapi/v1/orgSettings' is appended. That is pure padding against an otherwise one-line definition and hurts readability more than it helps.

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 zero-parameter, read-only list tool whose annotations already carry the safety profile, this is adequate but thin. With no output schema, the description still leaves the agent guessing what 'settings' actually contains, which matters for deciding whether to call this or the more specific org-ldap/notification-settings siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is a 4. The description correctly implies a no-argument call by describing a tenant-wide 'get all'. There is nothing to document beyond that.

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 all organization settings visible to the calling user. That is clear enough to act on. It does not distinguish this tool from closely named siblings such as provider_get_org, provider_get_org_ldap_settings, provider_get_notification_settings, or provider_update_org_settings, so the agent must infer the split from names 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 guidance about when to use this tool instead of the other org-settings and org-detail tools. The phrase 'accessible to the user' hints at a permission scoping but never says what to fall back to when the caller lacks access, nor when to prefer provider_get_org.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_get_preferenceB
Read-onlyIdempotent

Get specified user preference. GET /cloudapi/1.0.0/preferences/{classifier}

NameRequiredDescriptionDefault
classifierYes(path)

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as a read-only, idempotent, non-destructive, open-world GET operation. The description adds the endpoint path but does not disclose error behavior, authorization requirements, or response shape beyond what the annotations and schema already imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loads the operation. The raw endpoint line is somewhat redundant with the annotation title and adds little semantic value, but the overall text is not 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?

For a simple read-only tool with one required parameter, the definition is minimally viable. However, it leaves the classifier semantics vague and does not help an agent distinguish this tool from the similarly named 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 reported as 100%, so the baseline is 3 even though the description does not explain what the classifier value represents. The endpoint template shows classifier as a path parameter, but no format or examples are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description has a clear verb and resource: "Get specified user preference." However, it does not distinguish this tool from the closely related sibling provider_get_user_preference, nor from provider_query_user_preferences.

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. The presence of provider_get_user_preference and provider_query_user_preferences makes the lack of routing guidance especially costly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_get_rightA
Read-onlyIdempotent

Retrieve an individual right. Retrieves the requested Right by id. GET /cloudapi/1.0.0/rights/{id}

NameRequiredDescriptionDefault
idYes(path)

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 the concrete REST endpoint path, which is minor added context, but says nothing about not-found behavior, error responses, 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?

Three short lines, front-loaded with the action, and nothing wasteful. The second and third lines restate the first and the raw endpoint, which is mild redundancy but useful for developers matching against REST routes.

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 trivial single-parameter read with rich annotations and no output schema, the description supplies everything required to invoke it correctly. Only the return shape and error semantics are absent, which is acceptable given the simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single 'id' parameter, so the schema already carries the documentation burden. The description's endpoint template confirms id is a path segment, a marginal addition over the schema's '(path)' note, 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 ('Retrieve') and resource ('an individual right') scoped to a single item by id, which implicitly contrasts with the list-style sibling provider_query_rights. It does not explicitly name any sibling, but the singular scope 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 only implied: the agent can infer this is the single-item lookup versus provider_query_rights for listing, but nothing states when to prefer one over the other or any prerequisites such as needing a valid right id or read permissions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_get_rights_categoryC
Read-onlyIdempotent

Retrieve an individual Right category. Retrieves the requested Rights Category by id. GET /cloudapi/1.0.0/rightsCategories/{id}

NameRequiredDescriptionDefault
idYes(path)

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 that: the GET path it quotes is verbatim identical to the annotation title, and with no output schema there is no disclosure of the returned category shape or how a missing id is surfaced (e.g., 404).

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 sentence 2 ("Retrieves the requested Rights Category by id") merely restates sentence 1, and sentence 3 duplicates the annotation title. Roughly two-thirds of 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 single-parameter read-only lookup this is minimally sufficient to call correctly, and the annotations cover the side-effect profile. However, with no output schema the description never characterizes the returned category, and it offers no routing guidance among the several rights-related siblings, leaving real gaps for an agent operating in this namespace.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 required parameter at 100% schema description coverage, so the schema carries the burden and a 3 baseline is appropriate. The description only reiterates "by id" and contributes no format hints (URN vs numeric id) or error semantics beyond what the schema 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 ("Retrieve") and resource ("an individual Right category") and scopes it to a single id, which implicitly separates it from the plural sibling provider_query_rights_categories. It stops short of naming any sibling explicitly, so an agent must infer the distinction from the singular/plural naming.

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 provider_query_rights_categories, provider_query_rights, or provider_get_role. The only usable cue is the implied "you already have an id" condition carried by "by id"; no prerequisites, no exclusions, no alternatives are offered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_get_roleC
Read-onlyIdempotent

Get specified role GET /cloudapi/1.0.0/roles/{id}

NameRequiredDescriptionDefault
idYes(path)

TDQS

C2.6/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 fully covered elsewhere. The description contributes nothing beyond that — no note on whether the role is org-scoped, whether a 404 is expected for unknown ids, or what the payload roughly 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 line duplicates the annotation title verbatim (GET /cloudapi/1.0.0/roles/{id}) and consumes half the description with redundant text while useful guidance is absent.

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 documented one-parameter schema and safe annotations, this is minimally adequate. However, with no output schema the description could have sketched the returned role shape or identified the id source, and it leaves the agent unable to distinguish this from role-listing siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single required `id` (path) parameter, so the schema already documents the input. The description adds no meaning about the id's format (URN vs. numeric) or where to obtain it. Baseline 3 applies when the schema does the work.

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?

"Get specified role" states a verb and resource, but it essentially restates the tool name and adds no distinguishing information about what kind of role (provider role vs. tenant role) is returned. The only additional content is the raw REST path, which does not help an agent differentiate this from siblings such as provider_query_tenant_roles or provider_query_rights.

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 at all. There is no mention of when to call this single-role fetch versus provider_query_tenant_roles or provider_query_role_rights, and no statement of prerequisites or expected context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_get_service_accountB
Read-onlyIdempotent

Retrieves a specific service account GET /cloudapi/1.0.0/serviceAccounts/{id}

NameRequiredDescriptionDefault
idYesService account ID URN (path)

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 raw REST endpoint (GET /cloudapi/1.0.0/serviceAccounts/{id}), which is mild corroborating context, but says nothing about error behavior for missing/invalid IDs or what the 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?

Two short, front-loaded lines with zero filler — the verb-resource statement comes first and the endpoint follows as supporting detail. Slightly redundant since the endpoint path restates what the annotations already show as the title.

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 single-parameter read tool with full schema coverage and rich annotations, this is adequate to invoke correctly. It falls short on what the retrieved account representation looks like (no output schema exists) and on failure modes, so it is minimum-viable rather than complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter is documented as a "Service account ID URN (path)", so the schema does the heavy lifting. The description only repeats that an id is expected via the endpoint template and adds no format or sourcing guidance beyond it; 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 pairs a specific verb ("Retrieves") with a specific resource ("a specific service account") and even names the underlying endpoint, so the purpose is unambiguous. It does not, however, distinguish it from the sibling list tool provider_query_service_accounts or note that it requires a known ID rather than a search.

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: fetching "a specific" account signals the single-item case versus a collection query, but the description never says when to use this instead of provider_query_service_accounts, nor what to do if the ID is unknown. No exclusions or prerequisites are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_get_sessionB
Read-onlyIdempotent

Returns the specified session for current user GET /cloudapi/1.0.0/sessions/{id}

NameRequiredDescriptionDefault
idYes(path)

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 requires no description support. The description contributes the constraint that only the caller's own session is returned, but says nothing about behavior when the id belongs to another user or does not exist (error/404/403).

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: the purpose first, then the raw endpoint path, with no filler. The path line is somewhat redundant with the annotation title, but it aids mapping and does not bloat the definition.

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 single-parameter read tool with rich annotations, the essentials are present. With no output schema, however, the description could note what a session record contains (user, org, expiry, token) — without that, the agent cannot judge whether the response will answer its question.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 single 'id' parameter is documented structurally, which sets the baseline at 3. The description does not clarify whether the id is a session token, a numeric session id, or a URN — so it adds nothing 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 ('Returns the specified session') plus a scope qualifier ('for current user'), which is more than a tautology. It does not, however, disambiguate against close siblings such as provider_get_current_session or provider_get_current_sessions, so an agent must still infer which one 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 guidance on when to use this versus provider_get_current_session, provider_get_current_sessions, or provider_post_1_0_0_sessions. The only cue is the implicit 'for current user' scoping, leaving 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.

provider_get_theme_fileA
Read-onlyIdempotent

Load a file of a theme with the given id, if it exists. This resource is accessible without authentication and without the need to specify Accept header containing an api version. GET /cloudapi/v1/themes/files/{themeRootFolder}/{fileName}

NameRequiredDescriptionDefault
fileNameYesThe name of the theme file resource to fetch. (path)
themeRootFolderYesThe name of the folder holding all files of a theme. (path)

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely new behavioral context: the resource needs no authentication and no Accept header with an api version, which an agent could not infer from annotations or 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 sentences, front-loaded with the action and scope. The trailing raw GET path largely duplicates the annotation title, making it a small redundancy rather than a value-add.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description never says what is returned - raw file bytes, JSON, or a 404 behavior when the file is absent. For a file-fetch tool with zero output documentation, that is a meaningful gap, though the auth exemption note helps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 as path components. The description only restates that the file is identified by theme id/path and adds no format, encoding, or naming-convention 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: load a theme file identified by folder and file name. This is clearly distinguishable from siblings like provider_get_theme_flavor_file and provider_get_active_theme, though those alternatives are not 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?

Implied usage only: fetch a theme file when you know its root folder and file name. There is no explicit when-to-use guidance, no mention of how it differs from provider_get_active_theme or provider_get_theme_flavor_file, and no note on what to do when the file does not exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_get_theme_flavor_fileB
Read-onlyIdempotent

Load a file of a theme with the given id, if it exists. This resource is accessible without authentication and without the need to specify Accept header containing an api version. GET /cloudapi/v1/themes/files/{themeRootFolder}/{flavor}/{fileName}

NameRequiredDescriptionDefault
flavorYesFor example light or dark version of the resource in the theme. (path)
fileNameYesThe name of the theme file resource to fetch. (path)
themeRootFolderYesThe name of the folder holding all files of a theme. (path)

TDQS

B3.2/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 the safety profile is covered. The description does add genuinely useful context beyond annotations — no authentication required and no versioned `Accept` header needed — plus the 'if it exists' hint at missing-file behavior. However it says nothing about the returned content type or how a missing file surfaces.

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 route, front-loaded with the action and resource. The auth/Accept-header sentence earns its place as non-obvious operational context. Slight waste in the inaccurate 'with the given id' phrase.

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 file fetch with full schema coverage and rich annotations, the definition covers purpose, access conditions, and the underlying route. Missing only the shape of the response (raw file bytes vs. JSON) and missing-file error semantics, which are minor for this tool class.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 path parameters are already documented in the schema; baseline 3 applies. The description's path template restates the parameter ordering but adds no format, encoding, or default 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?

Specific verb ('Load a file') and resource ('a file of a theme') with the flavor dimension made explicit via the path template. Minor wording mismatch: it says 'with the given id' but no `id` parameter exists — the identifiers are themeRootFolder/flavor/fileName — which slightly muddies the mapping. It also doesn't distinguish itself from the sibling `provider_get_theme_file`.

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 related `provider_get_theme_file`, `provider_get_active_theme`, or `provider_get_active_theme_main_flavor`. The only usage signal is the auth/Accept-header note, which is environmental rather than a when-to-use rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_get_tokenB
Read-onlyIdempotent

Retrieves a specific token GET /cloudapi/1.0.0/tokens/{id}

NameRequiredDescriptionDefault
idYesToken ID URN (path)

TDQS

B3.4/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 that — the endpoint line merely restates the annotation title — and does not note token visibility/ownership scoping or whether expired tokens 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?

Extremely short and front-loaded with the action. The second line (the URL) duplicates the annotation title and earns little, but the overall brevity is not a problem.

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?

A simple single-resource read with a fully documented single required parameter, complete annotations and no output schema. Nothing an agent needs in order to call it correctly 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?

Only one parameter, and the schema documents it at 100% coverage ('Token ID URN (path)'). The description adds no extra meaning about the id 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+resource ('Retrieves a specific token') and the underlying endpoint, which implies single-resource retrieval as opposed to the sibling list tool provider_get_tokens. It does not explicitly name the sibling, so it stops short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'specific' implies this is the by-id lookup and provider_get_tokens is the list variant, but no when-to-use or when-not-to-use guidance is given, and no alternative tool is named. 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.

provider_get_tokensC
Read-onlyIdempotent

Retrieve tokens GET /cloudapi/1.0.0/tokens

NameRequiredDescriptionDefault
pageYesPage to fetch, zero offset.
filterNoFilter for a query. FIQL format.
sortAscNoField to use for ascending sort
pageSizeYesResults per page to fetch.
sortDescNoField to use for descending sort

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 covered. The description adds only the HTTP path, which is already present in the annotation title, and does not explain pagination, filtering, sorting, 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 no wasted prose. However, the endpoint path largely duplicates the annotation title, so it is efficient but not maximally informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema and the description does not describe the returned token list, pagination behavior, or filtering format. Because the input schema fully documents parameters and annotations cover safety, this is minimally adequate but still missing useful 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 all five parameters are already documented in the input schema. The description adds no additional meaning about pagination, FIQL filtering, or sorting semantics beyond what the schema provides, making the baseline score 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 clear verb and resource: 'Retrieve tokens', with the GET endpoint path. It does not explicitly distinguish this plural-list tool from the sibling singular `provider_get_token`, so it falls short of full sibling 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 guidance on when to use this list endpoint versus `provider_get_token`, `provider_update_token`, or `provider_delete_token`. The agent must infer usage entirely from the name and endpoint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_get_userA
Read-onlyIdempotent

Get a specified user by id. If the id of a service account is specified instead, a simplified view of the service account is returned instead. Get a specified user by id. GET /cloudapi/1.0.0/users/{userUrn}

NameRequiredDescriptionDefault
userUrnYesuserUrn (path)

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, destructiveHint=false and openWorldHint, so safety is covered. The description adds genuinely non-obvious behavior: the response shape changes when a service-account URN is supplied. It does not describe error behavior for unknown URNs or what 'simplified view' omits.

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 well front-loaded, but the description repeats 'Get a specified user by id.' verbatim on the second line and appends a raw REST route that duplicates the annotation title. Roughly half the text is redundant.

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-parameter GET with full annotation coverage, the description supplies what matters most: the service-account branch in the return behavior. With no output schema, it could say a bit more about the returned representation, but it is otherwise sufficient to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single required userUrn path parameter, so the baseline is 3. The description adds no format guidance (URN syntax, where to obtain the URN) and its phrase 'by id' slightly underspecifies the URN-vs-id distinction the schema 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?

The description names a specific verb and resource ('Get a specified user by id') and adds a real qualifier: if a service account URN is passed, a simplified service-account view is returned. That distinguishes it meaningfully from provider_get_service_account and provider_query_users, though it never names 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 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. There is no explicit statement of when to use this instead of provider_query_users, provider_get_service_account, or provider_get_user_preference, and no prerequisites are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_get_user_preferenceC
Read-onlyIdempotent

Get a preference for a specific user. GET /cloudapi/1.0.0/users/{userUrn}/preferences/{classifier}

NameRequiredDescriptionDefault
userUrnYes(path)
classifierYes(path)

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. The description adds only the REST path and repeats the read operation, without disclosing auth requirements, error behavior, or return characteristics beyond what annotations and schema already provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded, with the core purpose in the first sentence. The REST path is somewhat redundant with the annotation title, but the overall size is appropriate.

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, annotations cover safety and the schema covers invocation inputs, so the definition is minimally sufficient. It is still incomplete in two useful areas: return shape is not described, and no sibling routing guidance 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 the schema formally documents both parameters, establishing a baseline of 3. However, the schema descriptions are only '(path),' and the description does not clarify what userUrn format or classifier values mean beyond the URL template.

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 a preference' for 'a specific user,' and the path template identifies the user and classifier dimensions. It does not explicitly distinguish itself from nearby siblings such as provider_get_preference or provider_query_user_preferences, 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?

It implicitly indicates use for retrieving a named user's preference, but gives no when-to-use guidance, no exclusions, and no alternatives. With siblings like provider_get_preference and provider_query_user_preferences present, the lack of routing guidance is a real gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_grant_device_authorizationA

Grants a device authorization request Grants access to service account identified by the specified user code. Subsequent polling by the device will result in access token to be transmitted as per device code flow specification POST /cloudapi/1.0.0/deviceLookup/grant

NameRequiredDescriptionDefault
bodyYesDevice information for device authorization requests.

TDQS

A3.9/5.0
Behavior4/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 operation. The description adds meaningful behavioral context beyond annotations: access is granted to a service account, and subsequent device polling will transmit an access token according to the device code flow specification.

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 main action. It does contain some redundancy, since the first sentence largely restates the tool name and the second repeats 'Grants access,' but it remains efficient overall.

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 gives enough context about the device code flow and the resulting token transmission. It does not mention permission requirements, error behavior, or explicitly contrast with deny/find tools, so it is strong but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the userCode parameter is already well documented in the schema. The description references the specified user code but does not add syntax, format, or validation details 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.

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: granting a device authorization request. It also clarifies that access is granted to the service account identified by the user code, which distinguishes it from sibling operations such as provider_deny_device_authorization and provider_find_device_authorization_request.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The device code flow context implies this is used after a device authorization request has been created and when a user code is available. However, the description does not explicitly say when to use this instead of deny, find, or other device authorization-related tools, so usage 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.

provider_logout_current_sessionA
DestructiveIdempotent

Logout current session Logs out and terminates the current session identified by credentials supplied using the Authorization header DELETE /cloudapi/1.0.0/sessions/current

NameRequiredDescriptionDefault

No parameters

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 known. The description adds real context that the target session is derived from the Authorization header credentials, but says nothing about what is invalidated (tokens, service accounts) or what errors follow if the session is already gone.

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 leading line 'Logout current session' is a redundant restatement of the name and annotation title before the actual sentence, which adds no information. The remaining two lines are tight and front-load the termination semantics.

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 zero-parameter, fully annotated, no-output-schema tool, the description covers purpose, scope (current session only) and the credential source, which is the one thing an agent could get wrong. Only the post-logout consequences are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is no parameter space for the description to explain; the baseline for a no-arg tool applies. The description correctly notes the implicit input is the Authorization header rather than a body field.

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: logs out and terminates the CURRENT session, which distinguishes it from the many delete-by-id siblings such as provider_delete_1_0_0_sessions_by_id. The HTTP path reinforces the scope, 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?

Usage is only implied: an agent can infer this ends the caller's own session. There is no statement of when to prefer it over provider_delete_1_0_0_sessions_by_id (arbitrary session) or identity_post_auth_logout, and no mention that the caller's credentials stop working afterwards.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_modify_user_groupsB
Idempotent

Modifies the list of groups that the user with the given id belongs to. Adds a list of group references that the user with the given id belongs to. This endpoint allows for the group membership info to be pre-populated before a user logs in for the first time. PUT /cloudapi/1.0.0/users/{userUrn}/groups

NameRequiredDescriptionDefault
bodyYesA list of entity references.
userUrnYesuserUrn (path)

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, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered; the description usefully adds that this is a PUT to a collection endpoint and is meant for pre-login population. However, it never resolves the critical behavioral question for a PUT on a collection: whether existing memberships are replaced (removing groups) or merged, which the sentence 'Modifies the list … Adds a list' actively muddies. No auth requirements or failure modes are mentioned.

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?

Three sentences restate the same core idea ('modifies the list' / 'adds a list' / 'allows group membership to be pre-populated') with the phrase 'the user with the given id' repeated each time, and the raw PUT path duplicates the annotation title. The pre-login context is useful, but 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?

For a mutation with no output schema, the description covers intent but not the two things an agent most needs: replace-vs-merge semantics and how to handle the body, whose schema is a paged collection object (page, pageSize, pageCount, resultTotal, associations) even though only `values` is required. A sentence clarifying that only the `values` array of entity references matters would close the 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% and both parameters are described in the schema, so the baseline is 3. The description confirms userUrn identifies the target user and that the body is a list of group references, but it adds no format details (URN shape, how to obtain group references a la provider_resolve_entity) 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 names a concrete verb+resource: it modifies the group list of a specific user identified by userUrn, via PUT on /users/{userUrn}/groups. It is distinguishable from sibling reads such as provider_query_user_groups or provider_get_group, though it never says so explicitly and the internal tension between 'modifies the list' and 'adds a list' leaves the exact effect slightly fuzzy.

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?

There is one implied usage scenario: pre-populating group membership before the user first logs in. Beyond that it gives no when/when-not guidance and does not point to alternatives like provider_query_user_groups (to inspect memberships) or provider_update_group (to change a group's members).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_post_1_0_0_sessionsB

Logs in a user POST /cloudapi/1.0.0/sessions

NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose the mutating, non-idempotent, open-world nature of the call, so the description need not restate that. What it fails to disclose is the behavior that matters for a login endpoint: how credentials are supplied (the schema has zero parameters), whether a session token is returned or set as a cookie, and what errors look like. 'Logs in a user' leaves the entire auth mechanism unexplained.

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 plain-language purpose followed by the raw endpoint. Nothing is padded, though the endpoint string adds little for an agent beyond what the name already encodes.

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 annotations covering auth prerequisites and no output schema, the description carries the full burden and does not meet it. It says nothing about how authentication is transmitted, what a successful response yields, or how the resulting session is consumed by sibling tools — the exact information an agent needs to chain this call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline is 4. The notable oddity — a login operation with an empty input schema — is a gap better attributed to behavioral transparency than to parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Logs in a user', clarifying an otherwise opaque endpoint-style name (provider_post_1_0_0_sessions). It does not differentiate from sibling auth tools such as identity_post_login, identity_login_oauth, or provider_get_current_session, so an agent cannot tell from this text which login path is the right one.

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 preconditions, and no mention of the several sibling tools that also establish sessions or issue tokens. The agent must infer on its own that this is the session-creation call versus provider_get_current_session or provider_delete_1_0_0_sessions_by_id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_post_1_0_0_users_by_user_urn_take_ownershipB

Transfer ownership of this user's owned entities to the caller. Transfer ownership of this user's owned entities (vApps, media, etc) to the caller. POST /cloudapi/1.0.0/users/{userUrn}/takeOwnership

NameRequiredDescriptionDefault
userUrnYesUser URN (path)

TDQS

B3.2/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 largely covered structurally. The description adds useful context by naming what actually moves (vApps, media, etc.) and the destination (the caller), but omits reversibility, whether prior ownership is recorded, and permission requirements — notable given destructiveHint=false on an ownership-reassignment 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?

The core statement is front-loaded and clear, but the first two sentences are near-duplicates that say the same thing twice, and the raw HTTP path is repeated from the annotation title. Redundancy without added information costs it here.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter mutation endpoint with annotations covering the safety hints and no output schema, the description gives enough to call it correctly. The main shortfall is the absence of privilege/state preconditions, which matters for an ownership transfer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single required `userUrn`, so the schema already carries the parameter documentation. The description's phrase 'this user's owned entities' implicitly ties the URN to the affected user, which is modest added value but no format or sourcing 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?

Specific verb+resource: it transfers ownership of a user's owned entities (vApps, media, etc.) to the caller, and names the exact endpoint. It never mentions the sibling tool `provider_take_ownership`, which appears to cover very similar ground, so the agent gets no basis for choosing between 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 tool versus `provider_take_ownership`, no statement of required privileges (admin/org-level), and no prerequisites such as whether the user must be deactivated first. The agent must infer all preconditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_query_audit_trailC
Read-onlyIdempotent

Get list of audit trail events GET /cloudapi/1.0.0/auditTrail

NameRequiredDescriptionDefault
pageYesPage to fetch, zero offset.
filterNoFilter for a query. FIQL format.
sortAscNoField to use for ascending sort
pageSizeYesResults per page to fetch.
sortDescNoField to use for descending sort

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 nothing beyond restating the HTTP endpoint: no mention of pagination semantics, default result ordering, time-scope of the audit trail, or permissions required. Since openWorldHint=true and this is a cross-system audit surface, some scoping context would add real value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loaded with the operation, but the second line is a raw URL that adds little semantic information an agent can act on. It is tersely structured rather than genuinely efficient, with almost no substance to be concise about.

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 a fully described 5-param schema, complete annotations, and no output schema, the core requirements to call the tool are met. The gaps are what the returned audit events represent and any default time-window or ordering behavior, which an agent would need for correct interpretation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 page, pageSize, filter (FIQL), sortAsc, and sortDesc are already fully documented in the schema. The description adds no extra meaning (e.g., FIQL syntax example or typical sortable fields), 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 uses a specific verb+resource ("Get list of audit trail events") and adds the underlying endpoint, which is enough for an agent to know this retrieves audit trail records. It does not, however, distinguish the tool from any sibling (e.g., eventbroker_get_audit_log_filter_entry_by_id or eventbroker_get_events), so the ceiling of 4 applies.

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?

"Get list of audit trail events" gives no when-to-use context, no exclusions, and no named alternative among a very large sibling set that includes other audit/event log tools. 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.

provider_query_certificate_libraryC
Read-onlyIdempotent

Get the certificate library items Get a list of the certificate library items GET /cloudapi/1.0.0/ssl/certificateLibrary

NameRequiredDescriptionDefault
pageYesPage to fetch, zero offset.
filterNoFilter for a query. FIQL format.
sortAscNoField to use for ascending sort
pageSizeYesResults per page to fetch.
sortDescNoField to use for descending sort

TDQS

C2.4/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 the raw endpoint path, which merely restates the annotation title, and says nothing about pagination behavior, default page size, or whether the list is complete or truncated.

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 of the three lines are near-verbatim repetitions of each other and of the tool name, and the third is a bare URL. Nothing is front-loaded beyond the name restatement, and no sentence earns its place by adding 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 a paginated list operation with two required pagination parameters and no output schema, yet the description says nothing about what a certificate library item contains or how paging/result totals behave. The only real context comes from the annotations and schema, leaving the description inadequate for a tool whose return shape is undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 five parameters (page, pageSize, filter, sortAsc, sortDesc) documented in the schema itself. The description adds no meaning beyond that, so the baseline of 3 applies for schema-carried semantics.

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 does name a verb and resource ('Get a list of the certificate library items'), but it says the same thing twice and adds a raw HTTP path rather than clarifying scope. It never distinguishes itself from close siblings such as provider_get_certificate_library_item (singular), provider_query_cert_library_item_consumer_refs, or provider_add/delete_certificate_library_item.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no exclusion, and no named alternative. An agent cannot tell from the text whether this should be preferred over provider_get_certificate_library_item or when to reach for the consumer-refs query instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_query_cert_library_item_consumer_refsB
Read-onlyIdempotent

Gets a paged list of consumers (as references) of a particular certificate library item Get list of consumers (as references) of a particular certificate library item GET /cloudapi/1.0.0/ssl/certificateLibrary/{certLibraryItemId}/consumers

NameRequiredDescriptionDefault
pageYesPage to fetch, zero offset.
filterNoFilter for a query. FIQL format.
sortAscNoField to use for ascending sort
pageSizeYesResults per page to fetch.
sortDescNoField to use for descending sort
certLibraryItemIdYes(path)

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, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds only that results are paged and returned as references; it says nothing about pagination limits, sort/filter behavior, or what happens for an invalid item id.

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 purpose is front-loaded, but the first two sentences are near-verbatim duplicates and the third line is a raw endpoint path that adds little for an agent. Short overall, but a third of 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 no output schema, the description should carry more of the return-value burden; it does indicate a paged list of consumer references, which is the essential shape. It omits what a consumer reference contains and whether results can be empty, leaving a moderate gap for a read tool with six parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents page, pageSize, filter (FIQL), sortAsc, and sortDesc. The description contributes no additional meaning about pagination defaults or filter syntax, 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 and resource: a paged list of consumers (as references) of a particular certificate library item. It is unambiguous about what is returned, though it never distinguishes itself from siblings like provider_get_certificate_library_item or provider_replace_cert_library_item_consumer_refs.

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 the closely related sibling provider_replace_cert_library_item_consumer_refs or provider_add_consumer_ref_to_cert_library_item, nor any statement of prerequisites (e.g. that the certLibraryItemId must exist). 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.

provider_query_groupsC
Read-onlyIdempotent

Get a list of groups. GET /cloudapi/1.0.0/groups

NameRequiredDescriptionDefault
pageYesPage to fetch, zero offset.
filterNoFilter for a query. FIQL format.
sortAscNoField to use for ascending sort
pageSizeYesResults per page to fetch.
sortDescNoField to use for descending sort

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. The description adds no behavioral context such as pagination requirements, what a page contains, or the scope of groups 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?

Two short lines with the purpose front-loaded and no filler. The raw endpoint line largely duplicates the annotation title and earns little, but nothing is bloated.

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 paginated list tool with two required parameters and many overlapping group siblings, the description gives no indication of result shape, total counts, or which group domain is returned. Annotations and schema carry the safety and parameter story, but disambiguation—the main remaining burden—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 coverage is 100%, so page, pageSize, filter (FIQL), sortAsc, and sortDesc are all documented in the schema. The description adds nothing about parameter meaning, 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?

Specific verb (get/list) plus resource (groups), so the agent knows this is a read-only list operation. However it does not differentiate from the many group-related siblings (provider_get_group, identity_get_organization_groups, identity_search_groups, provider_search_ldap_groups), leaving ambiguity about which 'groups' source is queried.

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 provider_get_group (single group by id) or the search/org variants. The only extra text is the raw REST path, which is not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_query_group_usersC
Read-onlyIdempotent

Get a list of users of any type that belong to the specified group. GET /cloudapi/1.0.0/groups/{groupUrn}/users

NameRequiredDescriptionDefault
pageYesPage to fetch, zero offset.
filterNoFilter for a query. FIQL format.
sortAscNoField to use for ascending sort
groupUrnYesgroupUrn (path)
pageSizeYesResults per page to fetch.
sortDescNoField to use for descending sort

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, openWorld and non-destructive, so the safety profile is covered. Beyond that, the description only adds the phrase 'of any type' and the raw endpoint path; it says nothing about pagination behavior, how filter/sort affect results, or the shape of the returned user set, which are the real behavioral questions for a paged listing.

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 purpose and followed by the endpoint. Nothing is redundant, though the endpoint restatement consumes half the description's budget without adding agent-facing value.

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 paginated listing tool with three required parameters and no output schema needs at least a hint about pagination semantics, FIQL filter support and what a user record contains. None of that is present, so the description is not sufficient to call the tool 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%, so the schema already documents groupUrn, page, pageSize, filter, sortAsc and sortDesc. The description adds no meaning beyond the path parameter it echoes via the URL template, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: list users of any type belonging to the specified group. It is clear on its own, but it does not distinguish itself from near-identical siblings such as identity_get_paginated_group_users or the inverse provider_query_user_groups, leaving the agent to guess which 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 versus the closely related group/user-listing siblings, and no prerequisites or exclusions are given. The agent must infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_query_oidc_relying_partiesC
Read-onlyIdempotent

Retrieve OIDC relying parties. Get a list of all OIDC relying parties meeting the query parameters. GET /cloudapi/1.0.0/openIdProvider/relyingParties

NameRequiredDescriptionDefault
pageYesPage to fetch, zero offset.
filterNoFilter for a query. FIQL format.
sortAscNoField to use for ascending sort
pageSizeYesResults per page to fetch.
sortDescNoField to use for descending sort

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, and destructiveHint=false, so safety is fully covered; the description adds nothing beyond that. It restates the GET path already present in the annotation title and says nothing about pagination behavior, page-size limits, or what a 'relying party' record 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, but the first two sentences are redundant restatements ('Retrieve OIDC relying parties' / 'Get a list of all OIDC relying parties'), and the third is a verbatim endpoint already captured in the annotation title. Roughly half the content earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only paginated list with a fully documented schema and clear annotations, the description is minimally sufficient. It does not explain what the returned relying-party objects look like (no output schema exists to cover that), 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% and every parameter (page, pageSize, filter in FIQL, sortAsc, sortDesc) is documented in the schema. The description's only reference is the generic phrase 'meeting the query parameters', so baseline 3 applies with no added semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (OIDC relying parties) and a specific operation (retrieve/list), including the underlying endpoint. It implicitly distinguishes itself from the singular provider_get_oidc_relying_party by emphasizing 'a list of all', but never routes to or names that 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 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 provider_get_oidc_relying_party, provider_register_oidc_relying_party, or provider_query_* siblings, and no preconditions or exclusions. The only hint of usage is 'meeting the query parameters', which 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.

provider_query_orgsB
Read-onlyIdempotent

Get list of all orgs accessible to the user. GET /cloudapi/1.0.0/orgs

NameRequiredDescriptionDefault
pageYesPage to fetch, zero offset.
filterNoFilter for a query. FIQL format.
sortAscNoField to use for ascending sort
metadataNoMetadata filter for a query. FIQL format. A single statement is of the form namespace|key operator value. The namespace is optional, has to be separated by '|' from the key and therefore this character is not supported as part of the namespace or ke…
pageSizeYesResults per page to fetch.
sortDescNoField to use for descending sort

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is fully covered without the description. The description contributes only the scoping statement that results are limited to orgs the user can access; it says nothing about pagination behavior, whether filtering applies server-side, or result ordering.

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: the purpose comes first. The second line ('GET /cloudapi/1.0.0/orgs') merely restates the annotations title and is dead weight, which keeps it out of 5 territory.

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 and six parameters, including two required pagination fields, the description should at least signal that results are paged and that filter/metadata use FIQL. Without that, an agent must go entirely to the schema to call it correctly, making this adequate but with a clear 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%, with page, pageSize, filter, metadata, sortAsc and sortDesc all documented in the schema. The description adds no parameter 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?

States a specific verb plus resource ('Get list of all orgs') and adds a scope qualifier ('accessible to the user') that tells the agent whose orgs are returned. It does not distinguish itself from similar siblings such as provider_get_org (single org) or identity_get_user_orgs, 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?

No guidance on when to choose this over the many other org-related read tools in the sibling list. The only implicit cue is the 'accessible to the user' phrasing; there are no exclusions, prerequisites, or alternatives named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_query_preferences_vcfC
Read-onlyIdempotent

Query user preferences for the logged in user. Query user preferences for the logged in user with sorting, paging, and filtering support. GET /cloudapi/v1/preferences

NameRequiredDescriptionDefault
pageYesPage to fetch, zero offset.
filterNoFilter for a query. FIQL format.
sortAscNoField to use for ascending sort
pageSizeYesResults per page to fetch.
sortDescNoField to use for descending sort

TDQS

C2.8/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 the underlying REST semantics (GET /cloudapi/v1/preferences) and confirms this is a paged read surface, but says nothing about result shape, default page size behavior, or what happens with malformed FIQL filters.

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 first two sentences are redundant restatements of the same action, wasting roughly half of the available text. The endpoint line at the end is useful but the redundancy shows weak front-loading and editing.

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 agent gets no information about what a preference record looks like, and the description never clarifies the distinction between 'logged in user' preferences and org/user preferences exposed by siblings. Annotations carry the safety profile and the schema carries the parameters, so it is functional but leaves real 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 page, pageSize, filter (FIQL), sortAsc and sortDesc are already documented in the schema. The description's mention of 'sorting, paging, and filtering support' only paraphrases those parameters without adding format or constraint detail, 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 resource (user preferences) and scope (logged-in user) plus the HTTP endpoint, but the opening two sentences are near-duplicates, so half the text restates the same fact. It does not distinguish this from close siblings like provider_query_user_preferences, provider_get_user_preference, or provider_get_preference, so an agent cannot tell which one to pick from the description 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 guidance on when to use this versus the several sibling preference-getter and preference-updater tools. The only implied usage signal is the presence of paging/sorting/filtering parameters, 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.

provider_query_rightsB
Read-onlyIdempotent

Get list of rights visible to logged-in user Get list of rights GET /cloudapi/1.0.0/rights

NameRequiredDescriptionDefault
pageYesPage to fetch, zero offset.
filterNoFilter for a query. FIQL format.
sortAscNoField to use for ascending sort
pageSizeYesResults per page to fetch.
sortDescNoField to use for descending sort

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 elsewhere. The description adds useful scope context ('visible to logged-in user') and the underlying endpoint, but does not describe pagination behavior, filter semantics, or what the returned rights look like.

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 purpose, but it repeats the same idea twice ('Get list of rights visible to logged-in user' followed by 'Get list of rights') and then appends the raw endpoint. Each line is not maximally earning its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple read-only list endpoint with full schema coverage and annotations that communicate safety. The description states the visibility scope, and the schema covers paging, filtering, and sorting. A brief note on returned rights format would help, but the essential context is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters including page, pageSize, filter, sortAsc, and sortDesc are already documented in the schema. The description adds no parameter-specific meaning beyond what the schema provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names a specific verb ('Get') and resource ('list of rights') and adds the scope 'visible to logged-in user'. It is clear what the tool returns, though it does not explicitly distinguish itself from siblings like provider_get_right or provider_get_current_session_rights.

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 or alternatives. It does not explain why an agent should call this instead of provider_get_current_session_rights, provider_query_role_rights, or provider_get_right, leaving 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.

provider_query_rights_categoriesC
Read-onlyIdempotent

Get a list of Rights Categories visible to the logged in user Get list of Rights Categories GET /cloudapi/1.0.0/rightsCategories

NameRequiredDescriptionDefault
pageYesPage to fetch, zero offset.
filterNoFilter for a query. FIQL format.
sortAscNoField to use for ascending sort
pageSizeYesResults per page to fetch.
sortDescNoField to use for descending sort

TDQS

C2.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 one real addition is the visibility scoping to the current user's rights, which is genuinely useful behavior context, but pagination behavior and result volume are unaddressed.

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 statement is repeated three times ('Get a list of Rights Categories visible to the logged in user' / 'Get list of Rights Categories' / 'GET /cloudapi/1.0.0/rightsCategories'). The endpoint line duplicates the annotation title, so roughly two-thirds of the text is 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?

With read-only annotations and no output schema, the definition is minimally sufficient to call the tool, but it leaves out the result shape, pagination implications, and how it differs from the neighboring rights 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%, with page, pageSize, filter (FIQL), sortAsc and sortDesc all documented in the schema. The description adds nothing about the required page/pageSize values or the available filter fields, so it lands at 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 name-plus-description pair clearly states a read operation returning Rights Categories scoped to the logged-in user. It does not explicitly contrast with provider_query_rights or provider_get_rights_category, so the agent must infer the difference from the noun alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to choose this over provider_query_rights, provider_get_rights_category, or provider_create_custom_rights_category. The only implied guidance is 'logged in user' scope; there are no exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_query_role_rightsB
Read-onlyIdempotent

Gets a paged list of rights (as references) contained by a particular role Get list of rights (as references) contained by a particular role GET /cloudapi/1.0.0/roles/{id}/rights

NameRequiredDescriptionDefault
idYes(path)
pageYesPage to fetch, zero offset.
filterNoFilter for a query. FIQL format.
sortAscNoField to use for ascending sort
pageSizeYesResults per page to fetch.
sortDescNoField to use for descending sort

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, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds two genuine facts beyond that: results are paginated, and rights come back as references rather than expanded entities. It says nothing about page-size limits, sort/filter interaction, or authorization requirements for reading a role's rights.

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 sentence appears twice back-to-back with no added information, followed by a raw HTTP path that duplicates the annotation title. Roughly half the text is pure repetition, and the useful detail ('as references', 'paged') is buried in the duplicated 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?

For a read-only paged list with full schema coverage and no output schema, the description is minimally adequate: it conveys scope, pagination and that results are references. It leaves the agent guessing about the reference shape and about how to distinguish this from the general rights query.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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%, documenting id (path), page, pageSize, filter (FIQL), sortAsc and sortDesc, so the schema carries the parameter burden. The description adds only implicit meaning for id ('a particular role') and nothing on paging or FIQL syntax, 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: a paged list of rights contained by a particular role. The parenthetical 'as references' signals the return shape, which is useful. It never names sibling provider_query_rights (the un-scoped equivalent), so the boundary between the two must be inferred from 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied only: 'contained by a particular role' tells the agent a role id is needed and that this is the role-scoped variant. There is no explicit statement of when to prefer provider_query_rights or provider_get_role, 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.

provider_query_service_accountsC
Read-onlyIdempotent

Retrieve service accounts Get a list of all service accounts. GET /cloudapi/1.0.0/serviceAccounts

NameRequiredDescriptionDefault
pageYesPage to fetch, zero offset.
filterNoFilter for a query. FIQL format.
sortAscNoField to use for ascending sort
pageSizeYesResults per page to fetch.
sortDescNoField to use for descending sort

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds nothing beyond the raw HTTP path, and 'all service accounts' is mildly misleading given that page and pageSize are required — the call returns one page, not the full set.

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 but redundant: the title, first line and second line all restate the same fact, and the raw HTTP path adds little value to an agent that already has the name. No front-loaded constraint about paging or filtering.

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 paginated list endpoint with two required parameters, the description omits the pagination requirement, default page size, and the availability of FIQL filtering — the exact things an agent would otherwise get wrong. With no output schema and no annotations covering paging, 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?

Schema description coverage is 100%, including FIQL filter syntax and sort fields, so the schema carries the parameter burden. The description contributes no additional semantics (no rate limits, no default paging behavior) beyond the endpoint string.

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 service accounts', 'Get a list of all service accounts') and the underlying endpoint, which distinguishes it from the singular sibling provider_get_service_account. It does not, however, name any sibling or clarify where it sits among provider_query_users / provider_query_groups.

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 provider_get_service_account (single lookup) or the other provider_query_* list endpoints. Nothing tells the agent that pagination parameters are mandatory or that filtering is possible, so selection 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.

provider_query_tenant_rolesC
Read-onlyIdempotent

Get list of roles for an organization GET /cloudapi/1.0.0/roles

NameRequiredDescriptionDefault
pageYesPage to fetch, zero offset.
filterNoFilter for a query. FIQL format.
sortAscNoField to use for ascending sort
pageSizeYesResults per page to fetch.
sortDescNoField to use for descending sort

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 externally. The description adds nothing beyond that — no statement about which organization scope is used, how results are paged, or whether all roles or only tenant-scoped roles are returned. It also doesn't contradict 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 no filler and the purpose front-loaded. The raw HTTP endpoint is marginal value for an agent, but it does not bloat the 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?

With 5 parameters, pagination and no output schema, the description should say what a role object contains at a high level and how results are paged. It says nothing about return values or pagination behavior, leaving the agent to infer everything from the schema. Adequate but with clear gaps for a list endpoint whose output shape is undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 page, pageSize, filter (FIQL), sortAsc and sortDesc are all documented in the schema itself. The description contributes no additional parameter meaning — notably it doesn't explain FIQL syntax or the interaction between page/pageSize and the required-ness of those fields. 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 ('Get list of roles for an organization'), which is clearly distinguishable from mutation siblings like provider_create_role-style tools. However, it does not differentiate from the very similar identity_get_org_roles or provider_query_role_rights siblings, so the agent cannot tell which role-listing endpoint 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 guidance on when to use this versus the many other role/right listing tools, no prerequisites, and no exclusions. The only context is the raw endpoint path 'GET /cloudapi/1.0.0/roles', which is a routing hint rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_query_trusted_certificatesB
Read-onlyIdempotent

Get currently trusted certificates GET /cloudapi/1.0.0/ssl/trustedCertificates

NameRequiredDescriptionDefault
pageYesPage to fetch, zero offset.
filterNoFilter for a query. FIQL format.
sortAscNoField to use for ascending sort
pageSizeYesResults per page to fetch.
sortDescNoField to use for descending sort

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 only the 'currently trusted' qualifier and the REST endpoint, with nothing about pagination behavior, result ordering, or auth scope.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and resource in one short line. The appended raw endpoint path is mildly redundant with the annotation title but does convey the API route; there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description should ideally indicate what a certificate entry looks like or at least that results are paged lists. With annotations and a fully documented schema, the definition is workable but leaves the agent guessing at return shape and pagination 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% and all five parameters (page, pageSize, filter, sortAsc, sortDesc) are documented in the schema, so the baseline of 3 applies. The description adds no meaning beyond that, e.g. it doesn't mention that filter uses FIQL or that results are paged.

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 currently trusted certificates'), which is clearly distinct from mutation siblings like provider_trust_certificate or provider_delete_certificate. It does not explicitly differentiate from read siblings such as provider_query_certificate_library, but the resource is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus provider_query_certificate_library, provider_get_certificate, or the trust/delete certificate tools. The agent must infer the 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.

provider_query_user_groupsC
Read-onlyIdempotent

Get a list of groups that the user with the given id belongs to. Get a list of references of groups that the user with the given id belongs to. GET /cloudapi/1.0.0/users/{userUrn}/groups

NameRequiredDescriptionDefault
pageYesPage to fetch, zero offset.
filterNoFilter for a query. FIQL format.
sortAscNoField to use for ascending sort
userUrnYesuserUrn (path)
pageSizeYesResults per page to fetch.
sortDescNoField to use for descending sort

TDQS

C2.8/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. The description adds only the underlying REST path; it says nothing about pagination behavior, what a 'group reference' contains, permissions required, or size of the result set for a user in many groups.

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 two sentences are near-duplicates ('list of groups' vs 'list of references of groups'), which risks confusing whether full group objects or bare references are returned. The trailing raw endpoint is boilerplate already present in the annotation title, so roughly a third of the text is redundant.

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 six parameters, the description carries responsibility for explaining the return shape, but 'references of groups' is left undefined and pagination semantics (page is 'zero offset' yet defaults to 1) are never reconciled. For a paginated enumeration tool this leaves too much for the agent to guess.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 filter (FIQL), sortAsc/sortDesc and page/pageSize are documented in the schema itself. The description adds nothing beyond the schema — it references 'the given id' without discussing userUrn's URN format or how filter/sort interact with the paged result.

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?

Stated as a specific verb+resource: 'Get a list of groups that the user with the given id belongs to', which an agent can map directly onto a query operation. However, it offers no differentiation from related siblings such as provider_query_group_users (the inverse direction), provider_modify_user_groups, or identity_get_logged_in_user_groups_on_org, so the agent must infer which one applies.

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 mention of the directly comparable siblings the agent must choose between (query_group_users, get_group, approvals_get_logged_in_user_groups). Usage is only implied by the tool name and the raw HTTP path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_query_user_preferencesC
Read-onlyIdempotent

Query user preferences for a specific user. Query user preferences for a specific user GET /cloudapi/1.0.0/users/{userUrn}/preferences

NameRequiredDescriptionDefault
pageYesPage to fetch, zero offset.
filterNoFilter for a query. FIQL format.
sortAscNoField to use for ascending sort
userUrnYes(path)
pageSizeYesResults per page to fetch.
sortDescNoField to use for descending sort

TDQS

C2.9/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 little beyond the endpoint already present in the annotation title and does not mention pagination 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated verbatim, and the endpoint restates the annotation title. It is short but contains clear waste, making the structure less efficient than it should 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?

For a simple read-only query tool, the annotations and fully described schema carry most of the needed context. However, the description omits what the preferences response contains and does not distinguish this listing operation from similar preference 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 all six parameters are already documented in the input schema. The description only implies the userUrn scope and adds no filter, sort, or pagination 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: querying user preferences for a specific user. It is clear at a glance, but it does not differentiate this tool from close siblings such as provider_get_user_preference or provider_query_preferences_vcf.

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 about when to use this tool versus its many siblings, nor any prerequisites or exclusions. It only restates the tool's name and endpoint without usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_query_usersC
Read-onlyIdempotent

Get a list of users. GET /cloudapi/1.0.0/users

NameRequiredDescriptionDefault
pageYesPage to fetch, zero offset.
filterNoFilter for a query. FIQL format.
sortAscNoField to use for ascending sort
pageSizeYesResults per page to fetch.
sortDescNoField to use for descending sort

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. The description adds only the raw path and nothing about scope (which organization's users are listed), pagination behavior, or result ordering — no value 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 lines, front-loaded with the action; no filler. It is terse to the point of omitting scope information, but nothing 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?

With a fully documented schema and rich annotations, the description need not explain return values or safety. However, for a list endpoint it never states the scope of users returned, which matters when dozens of similar user-listing siblings exist.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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, pageSize, filter (FIQL), sortAsc and sortDesc all documented in the schema. The description adds nothing about parameters, which is acceptable at full coverage but not enriching; 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 names a specific verb and resource ('Get a list of users') and gives the underlying endpoint, so the operation is unambiguous. It does not distinguish the tool from nearby siblings such as provider_get_user, provider_query_group_users, or identity_search_users.

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 versus the many other user-related siblings (search, group users, LDAP search, get-by-id). The agent is left to infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_regenerate_oidc_relying_party_secretC

Regenerate the client secret of an OIDC relying party. Regenerates the client secret of an OIDC relying party. POST /cloudapi/1.0.0/openIdProvider/relyingParties/{id}/regenerateSecret

NameRequiredDescriptionDefault
idYesOIDC relying party's ID (path)

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare non-read-only, non-idempotent, non-destructive, open-world behavior. The description adds no behavioral context beyond the operation: it does not say the previous secret stops working immediately, whether the new secret is returned once, or what permissions are required. It is consistent with the annotations but contributes nothing.

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 two sentences are near-identical restatements ('Regenerate...' vs 'Regenerates...'), so one is redundant. It is short and front-loaded, but the duplication and raw POST path are not fully earning their 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 security-sensitive mutation with no output schema, the description should disclose consequences such as old secret invalidation and one-time secret return. It only names the operation and endpoint, leaving the agent without the context needed to call it safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 sole 'id' parameter is documented as the relying party's path ID. The description does not explain the ID format or source, so it adds no meaning beyond the schema; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: regenerate the client secret of an OIDC relying party. It distinguishes this operation from siblings such as provider_get_oidc_relying_party or provider_update_oidc_relying_party through the 'secret' and 'regenerate' terms, but it never explicitly contrasts them or states scope. Clear, but no sibling 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 statement of when to use this versus update/delete/register, no prerequisites such as admin role, and no warning that the old secret becomes invalid. The only implied usage is the action itself, which is tautological.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_register_oidc_relying_partyB

Register an OIDC relying party. Registers a new OIDC relying party. POST /cloudapi/1.0.0/openIdProvider/relyingParties

NameRequiredDescriptionDefault
bodyYesInformation about a OIDC relying party.

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, openWorldHint=true, idempotentHint=false, and destructiveHint=false. The description adds that this is specifically a creation operation for a new relying party and repeats the POST endpoint, but it does not add details about auth requirements, side effects, or how the generated client secret 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?

The description is short and front-loaded with the action, but it is repetitive: the second sentence restates the first, and the third repeats the POST endpoint already present in annotations/title. It could be tightened to a single clear 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?

For a mutation with a nested body and no output schema, the schema supplies detailed field semantics and annotations supply the safety profile. The description is minimally adequate but omits useful context such as registration side effects, permissions, and why the generated client secret is only returned on this 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%, and the single body parameter is richly documented, including nested fields and their meanings. The description adds no parameter-level 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Register an OIDC relying party' and explicitly says it registers a new one. It is clearly a create operation, though it does not explicitly differentiate itself from siblings such as provider_update_oidc_relying_party or provider_query_oidc_relying_parties.

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 when-to-use guidance, prerequisites, or alternatives. It implies creation by saying 'Registers a new' but does not explain when to choose this over update/query tools or what conditions are required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_replace_cert_library_item_consumer_refsC
Idempotent

Replaces the existing consumer refs with the used by references supplied. Replaces the existing consumer refs with the consumer references supplied. PUT /cloudapi/1.0.0/ssl/certificateLibrary/{certLibraryItemId}/consumers

NameRequiredDescriptionDefault
bodyYesA list of entity references.
certLibraryItemIdYes(path)

TDQS

C2.6/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. The description does add real behavioral information beyond that: this is a full-set replacement, so previously present consumer refs are dropped — a fact an agent could not derive from the annotations. It still omits permission requirements and whether removal of refs is reversible, and the 'replace' semantics sit in mild tension with destructiveHint=false without being explained.

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 two sentences say the same thing twice; the duplication wastes roughly a third of the text and signals machine-generated boilerplate. The HTTP path at the end is useful metadata but is not front-loaded and is already surfaced in the annotation title.

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 on a nested, paged-list body with no output schema, the description gives no return information, no permissions or auth context, and no explanation of the paged wrapper. An agent could invoke it, but it cannot predict the effect on refs that are omitted from the payload.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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: both certLibraryItemId and the body wrapper are documented in the schema. The description adds nothing about the critical ambiguity that the body is a paged-list envelope where page/pageSize/pageCount/resultTotal seem irrelevant for a PUT and only 'values' carries the actual references — clarifying that would have been the description's job.

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 'replaces' and the resource (consumer refs of a certificate library item) are identifiable, and the PUT path confirms it is a full-set overwrite. However, the two opening sentences restate the same fact twice in slightly different, inconsistent terminology ('used by references' vs 'consumer references'), which muddies rather than sharpens the purpose, and nothing distinguishes it from siblings like provider_add_consumer_ref_to_cert_library_item.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use a bulk replace versus the sibling add-single-consumer-ref tool, no mention of required permissions, and no note about when a replace is inappropriate. The agent must infer selection criteria 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.

provider_resolve_entityC
Read-onlyIdempotent

Get specified entity object GET /cloudapi/1.0.0/entity/{id}

NameRequiredDescriptionDefault
idYesthe URN of the entity to be resolved (path)

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already state readOnlyHint, idempotentHint and openWorldHint, so safety is covered. The description adds nothing beyond the raw HTTP path: it doesn't say what a resolve returns, how it behaves for unknown/ambiguous IDs, or that it spans arbitrary domains (openWorld).

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 line merely restates the title/annotation (the same GET path), so it spends space without adding 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 an open-world generic entity resolver with no output schema, the description should explain what kind of object comes back and what 'entity' covers here. It leaves the agent unable to decide between this and the dozens of typed get-by-id siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single `id` parameter is documented as "the URN of the entity to be resolved (path)", so the schema does the work. The description adds no extra meaning about URN format or where such a URN comes from — 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?

"Get specified entity object" gives a verb and a resource, but "entity" is undefined and generic in a server with dozens of get_* siblings. An agent cannot tell whether this fetches a user, a deployment, a network, or a catalog item, nor how it differs from the more specific get tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no indication of when this generic resolver should be preferred over the many typed provider_get_* / iaas_get_* siblings. No prerequisites, no exclusions, no alternative named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_revoke_service_accountB

Revokes the token associated with the given service account. Revokes the token associated with given service account URN, invalidates any existing sessions. POST /cloudapi/1.0.0/serviceAccounts/{id}/revoke

NameRequiredDescriptionDefault
idYesService account ID URN (path)

TDQS

B3.3/5.0
Behavior4/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 partly covered. The description adds genuinely new behavioral context by stating that existing sessions are invalidated, which tells the agent the effect cascades beyond the token itself. There is mild tension with destructiveHint=false for an operation that kills live sessions, but it is not a direct contradiction of a stated claim.

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 with the action, but the first two sentences say essentially the same thing ('Revokes the token...' repeated), wasting one of only three lines. The endpoint is useful; the duplication is 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 one-parameter mutation with no output schema, the definition covers purpose and the session-invalidation side effect, which is the key risk. It omits what state the service account is left in after revocation (does it still exist? must a new token be generated?) and what permissions are required, leaving a meaningful gap for a state-changing 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% for the single 'id' parameter, so the schema already explains it is a service account URN used in the path. The description only echoes that ('given service account URN') without adding format examples or lookup guidance, which is the expected baseline when 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 names a specific verb and resource ('Revokes the token associated with the given service account') and even gives the underlying endpoint, so the operation is unambiguous. It does not, however, differentiate itself from close siblings such as provider_delete_service_account or provider_delete_token, which an agent must still disambiguate by 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 use this versus provider_delete_service_account (removes the account) or provider_delete_token (removes a specific token), nor any prerequisites or exclusions. The agent must infer the choice 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.

provider_search_ldap_groupsC
Read-onlyIdempotent

Search LDAP Groups Searches LDAP for given group(s) GET /cloudapi/1.0.0/ldap/search/group

NameRequiredDescriptionDefault
qNoString to search for via LDAP

TDQS

C2.8/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 covered. The description adds nothing beyond restating the operation and the raw endpoint path — no mention of LDAP configuration requirements, whether matching is exact/substring/wildcard, or what the results look like.

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 first two lines are redundant restatements of the tool name, and the raw endpoint path is already mirrored in the annotation title. Roughly half the text is duplicated 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?

There is no output schema, so the description should indicate that matching LDAP groups are returned (and in what form), and it should note the prerequisite that LDAP must be configured. For a search endpoint whose value depends on the returned group records, this leaves a meaningful 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% for the single 'q' parameter, so the schema already documents it as a search string, and the baseline of 3 applies. The description says 'group(s)' (plural) while the schema accepts one string, but it adds no matching 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?

States a clear verb+resource: 'Search LDAP Groups' / 'Searches LDAP for given group(s)', which unambiguously identifies the operation and implicitly separates it from provider_search_ldap_users. It does not, however, explicitly contrast itself with sibling group-lookup tools such as provider_query_groups or identity_search_groups, so the sibling differentiation is only name-based.

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 LDAP search versus the local group query tools (provider_query_groups, identity_search_groups) or on prerequisites such as LDAP being configured for the organization. The only hint of usage is the phrase 'for given group(s)', leaving the agent to infer context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_search_ldap_usersC
Read-onlyIdempotent

Search LDAP Users Searches LDAP for given user(s) GET /cloudapi/1.0.0/ldap/search/user

NameRequiredDescriptionDefault
qNoString to search for via LDAP

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds little beyond the name and endpoint, and does not explain LDAP configuration requirements, result limits, pagination, or search 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 description is short and front-loaded, but it repeats the title line and endpoint already present in the annotations. It is not verbose, but the repetition means not every line adds unique value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only search tool with one optional parameter, rich annotations, and no output schema, the description is minimally adequate. It still lacks usage context and any sense of what the search returns or how results should be interpreted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 single parameter 'q' is documented as the LDAP search string. The description does not add syntax, matching behavior, or format details 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 description states a specific verb and resource: searching LDAP users. It is distinguishable from the sibling provider_search_ldap_groups by the word 'users', but it does not explicitly call out that distinction or name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus related siblings such as provider_search_ldap_groups, provider_query_users, identity_search_users, or provider_sync_ldap. The description only restates the search operation without context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_sync_ldapA

Synchronize LDAP users/settings Begins the LDAP sync task POST /cloudapi/1.0.0/ldap/sync

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/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, so the safety profile is covered. The description adds meaningful context in 'Begins the ... task', signalling a kickoff/async operation that does not itself wait for completion, but it says nothing about what gets modified, side effects on existing users, or how to observe sync progress.

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 lines, front-loaded with the purpose before the mechanics. The raw 'POST /cloudapi/1.0.0/ldap/sync' line adds little for an agent and duplicates the annotation title, but nothing is padded.

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 fire-and-forget mutation with no parameters and no output schema needs only a little context, and the description supplies the core of it. However, it omits how to verify the sync result or whether the operation is asynchronous, and no sibling tool obviously provides LDAP sync status.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 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: 'Synchronize LDAP users/settings' plus 'Begins the LDAP sync task'. This clearly separates it from read-only LDAP siblings such as provider_search_ldap_users, provider_search_ldap_groups and provider_test_ldap, 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 'Begins the LDAP sync task' implies this is the trigger action to run once LDAP settings are configured, but there is no statement of when to prefer it over provider_test_ldap or provider_update_org_ldap_settings, and no preconditions (e.g., LDAP must already be configured).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_take_ownershipC

Transfer ownership of this service account's owned entities to the caller. Transfer ownership of this service account's owned entities (vApps, media, etc) to the caller. POST /cloudapi/1.0.0/serviceAccounts/{id}/takeOwnership

NameRequiredDescriptionDefault
idYesService account ID URN (path)

TDQS

C2.9/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 agent knows this is a non-idempotent, real-world mutation. The description adds the useful scope detail that vApps and media are among the entities transferred. However, it does not say whether the original owner loses access, whether the transfer is reversible, or what permissions the caller needs — significant gaps for an ownership mutation flagged as non-destructive.

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 two sentences say the same thing twice with only a parenthetical added, and the raw POST path is appended as a third line. The action is front-loaded, but one of three lines is pure duplication and the endpoint path 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 one well-described parameter and no output schema, the definition is minimally sufficient, and the annotations cover the safety profile. Still missing for a non-idempotent ownership transfer are the success outcome, reversibility, and required privileges.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 single 'id' parameter is documented as a Service account ID URN path parameter. The description adds nothing beyond that, which is acceptable at this coverage level but earns no extra credit.

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: transferring ownership of a service account's owned entities (vApps, media, etc.) to the caller. That is clear enough to act on, but it never distinguishes itself from the closely related sibling provider_post_1_0_0_users_by_user_urn_take_ownership (the user-owned variant) or from provider_revoke_service_account.

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 the user takeOwnership variant, the revoke/delete service account siblings, or what precondition must hold (e.g. an offline/departing user's service account). The agent must infer all of that 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.

provider_testB

Test a connection Tests a connection, including SSL handshake and hostname verification. POST /cloudapi/1.0.0/testConnection

NameRequiredDescriptionDefault
bodyYesConnection to test.

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, openWorldHint=true and idempotentHint=false, so the safety profile is largely covered. The description contributes real behavioral context by naming what the test actually performs (SSL handshake, hostname verification), but says nothing about outbound-network requirements, expected latency/timeout behavior, or whether a failed test raises an error versus returning a failure payload — meaningful for a probing tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first line 'Test a connection' is immediately restated by the second line, and the third line repeats the endpoint path that already appears verbatim in the annotations title. The SSL/hostnameVerification detail earns its place, but roughly half the text is duplication and the useful content is not front-loaded ahead of the redundant first line.

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 annotations present, the input side is well covered. The critical omission is the result side: there is no output schema and the description never says what a test returns (boolean, structured diagnostic, thrown error on TLS failure), which is the single most important thing an agent needs to interpret a connection test.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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%: host, port, secure, timeout, proxyConnection, preConfiguredProxy, additionalCAIssuers and hostnameVerificationAlgorithm are all documented in the schema, including the mutual exclusion between proxyConnection and preConfiguredProxy. The description only echoes the TLS aspects (SSL handshake, hostname verification) without adding syntax, defaults, or constraints, 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 and resource (test a connection) and adds scope that narrows it: SSL handshake and hostname verification, i.e. a raw host/port reachability + TLS test rather than an application-protocol test. It does not explicitly distinguish itself from the sibling provider_test_ldap, which is the nearest confusable tool, 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?

There is no guidance on when to use this versus alternatives (e.g. provider_test_ldap for directory endpoints, or the various create/update cloud-account tools where a connectivity pre-check would be useful), no stated prerequisites (network egress from the appliance, credentials for the proxy), and no exclusions. Usage has to be inferred entirely from the parameter names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_test_ldapB

Tests LDAP Connection and Settings Tests that custom LDAP settings are valid, and that the system can use them to search for a user or group POST /cloudapi/1.0.0/ldap/test

NameRequiredDescriptionDefault
bodyYesLDAP Settings Specification — LDAP Settings to use for testing connection
usernameNoUsername to use when testing LDAP search

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 usefully discloses that it exercises an external LDAP server by performing a user/group search, which explains the openWorld flag. However, it says nothing about credential requirements, whether any state is modified, or what a failed test returns; the POST endpoint does not contradict the annotations since destructive is 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?

Three short lines, front-loaded with the action and its validation purpose, followed by the endpoint. Minor redundancy between the title line 'Tests LDAP Connection and Settings' and the following 'Tests that custom LDAP settings are valid' phrase, but nothing extraneous beyond that.

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?

There is no output schema, and for a test/validation tool the return semantics (boolean pass/fail vs. error detail vs. sample search results) matter to an agent interpreting the outcome. The description covers intent and the external-search behavior but leaves the result contract and any prerequisites unstated. Adequate but with a clear gap for this tool type.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the body and username documented in the schema (the body spec includes nested userAttributes/groupAttributes descriptions). The description adds no parameter-level meaning — in particular it does not flag which settings are essential for a successful test versus optional tuning (pageSize, maxResults, pagedSearchDisabled). Baseline 3 applies when the schema carries the 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: it validates LDAP connection settings and verifies the system can search for a user or group, plus the endpoint. This clearly distinguishes it from CRUD siblings like provider_update_org_ldap_settings. It does not explicitly contrast with near neighbors such as provider_search_ldap_users, provider_sync_ldap, or provider_test, 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 use case (validate custom LDAP settings before relying on them) is implied by 'Tests that custom LDAP settings are valid', but there is no explicit when-to-use/when-not guidance or named alternative such as provider_search_ldap_users for an actual search. An agent must infer it is a pre-flight validation call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_trust_certificateC

Add to list of currently trusted certificates POST /cloudapi/1.0.0/ssl/trustedCertificates

NameRequiredDescriptionDefault
bodyYesSSL certificate in PEM format.

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, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds no behavioral context beyond that — notably it doesn't warn that non-idempotent means re-adding the same certificate/alias may create a duplicate or conflict, nor does it describe side effects 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?

One short sentence with the endpoint appended, front-loaded and waste-free. It is efficient, though the brevity is part of the under-specification problem rather than a virtue.

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 state-mutating, non-idempotent operation with no output schema, yet the description covers only what the tool does at the highest level. Missing are the mutation's consequences (duplicate handling, effect on existing trusted certificates), required authorization, and what the call returns or how failures surface.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the nested body properties alias ('Name, case insensitive') and certificate ('PEM encoded certificate...') are documented in the schema, and the optional id is typed. The description adds nothing 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 ('Add to list of currently trusted certificates') plus the underlying POST endpoint, so the agent can tell this is a trust-store write operation. However, it does not differentiate itself from the visible sibling provider_query_trusted_certificates, 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 guidance on when to use this versus provider_query_trusted_certificates or provider_add_certificate_library_item, and no prerequisites (permissions, org scope, whether the cert must be pre-validated) are stated. The usage is only implied by the verb 'Add'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_update_certificateC
Idempotent

Updates an existing trusted certificate PUT /cloudapi/1.0.0/ssl/trustedCertificates/{trustedCertificate}

NameRequiredDescriptionDefault
bodyYesSSL certificate in PEM format.
trustedCertificateYes(path)

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=true, destructiveHint=false and openWorldHint=true, so safety is covered. The description adds essentially nothing beyond restating the operation; the only real signal is the verb PUT, which implies full replacement of the certificate object rather than a partial patch, but this is never spelled out. No mention of required privileges, whether the alias must be re-supplied, or what happens to the existing entry on failure.

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 lines, front-loaded with the action, no filler. It is arguably under-specified rather than verbose, but nothing in it is wasted.

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 on a security-sensitive object with a nested body and no output schema, so the description should say more: whether the body replaces the whole certificate record, whether the PEM is validated, and what is returned. With zero annotation-level detail on those points and no return-value information available elsewhere, the definition is thin for the operation's 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% and the nested body fields (alias, certificate) are documented in-schema, so the schema carries the semantics. The description adds nothing about the trustedCertificate path parameter or the body, 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 ("Updates an existing trusted certificate") and adds the exact endpoint, which pins down the REST resource. It is clearly distinguishable from provider_trust_certificate (create) and provider_query_trusted_certificates (list), but the description never names those siblings to make the 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 Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Beyond the word "existing" there is no guidance on when to use this versus provider_trust_certificate or provider_update_certificate_library_item, and no stated preconditions. The agent must infer both the create-vs-update split and the trusted-certificate-vs-certificate-library split from tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_update_certificate_library_itemB
Idempotent

Update the specified certificate library item. Updates the specified certificate library item. Only the alias and description fields may be edited Note: This API also supports a former (erroneously spelt) alternate path /cetificateLibrary/{id} as a Deprecated API (deprecated-in and removed after API version 36.0) PUT /cloudapi/1.0.0/ssl/certificateLibrary/{id}

NameRequiredDescriptionDefault
idYes(path)
bodyYesA certificate library item.

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=true and destructive=false, so the safety profile is covered. The description adds useful behavior context (only alias/description are effectively editable, plus a deprecated alternate path) but omits what happens to body fields it says are not editable.

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 immediately repeated in near-identical form ('Update the specified certificate library item. Updates the specified certificate library item.'), wasting the front-loaded position. The deprecation note and raw HTTP path are useful but could be trimmed to one line.

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 annotations covering safety, the description covers the essentials for a simple update. However, it lacks any mention of response behavior or failure modes, and its editability claim conflicts with the required 'certificate' field, leaving an agent uncertain about a valid body.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 contributes a real constraint (editability limited to alias and description), but that statement sits awkwardly against the schema, which marks 'certificate' as required in the body, creating ambiguity about what must actually be sent.

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 certificate library item) and even names the affected fields. It is unambiguous without opening the schema, though it does not differentiate itself from nearby siblings like provider_update_certificate or provider_replace_cert_library_item_consumer_refs.

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 'update' — an agent can infer this mutates an existing item rather than adding or deleting one. There is no explicit statement of when to choose this over provider_add_certificate_library_item or provider_update_certificate, and no prerequisites are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_update_groupC
Idempotent

Modify the details of the specified group. Modify details of the specified group. PUT /cloudapi/1.0.0/groups/{groupUrn}

NameRequiredDescriptionDefault
bodyYesGroup Spec object.
groupUrnYesgroupUrn (path)

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, destructiveHint=false, and idempotentHint=true, so the safety profile is covered. The description adds nothing beyond that: it does not say whether PUT replaces the whole group spec (clearing omitted fields), what happens to role/source entity refs not supplied, or what permissions are required. The only extra content is the raw endpoint path, which merely restates the title annotation.

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 substantive sentence is duplicated verbatim, wasting space with zero added information, and the trailing PUT path is redundant with the title annotation. Brevity here reflects 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?

For a mutation tool with a nested group-spec body, idempotent semantics, and no output schema, the description omits the details that matter most: full-replacement vs. partial-update behavior, treatment of omitted optional fields, and required authorization. Given the complexity of the nested body, this is inadequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so groupUrn and the nested body fields are already documented in the schema, which sets the baseline at 3. The description says nothing about which body fields are meaningful to modify or which are read-only representations, so it adds no value over 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 names a specific verb and resource ("Modify the details of the specified group"), which is clear enough for an agent to know this is an update operation on a group identified by URN. It does not distinguish itself from siblings such as provider_update_user, provider_modify_user_groups, or provider_create_group, 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 guidance on when to use this versus provider_create_group, provider_delete_group, provider_get_group, or provider_modify_user_groups. No prerequisites, no exclusions, no mention that the group must already exist or that the caller needs provider-level rights.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_update_notification_settingsB
Idempotent

Updates notification settings. PUT /cloudapi/1.0.0/orgNotificationSettings

NameRequiredDescriptionDefault
bodyYesNotification settings for a given org.

TDQS

B3.1/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, idempotent, non-destructive, open-world mutation, so the description's main behavioral contribution is just the PUT endpoint. It does not disclose whether the update replaces the entire org notification configuration, what permissions are required, or what happens to omitted settings.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short and front-loads the action before the endpoint. There is no filler or redundant explanation, though the terseness leaves behavioral and usage gaps for other dimensions.

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 fully describes the body structure and annotations cover the safety profile, so an agent can invoke the tool. However, the description does not clarify org-level scope, replacement semantics, or the relationship to provider_get_notification_settings and other settings-update 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%, and the nested body fields are already well documented in the schema. The description adds no parameter-level meaning beyond the operation name, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it updates notification settings, and the included PUT path identifies the org notification settings endpoint. It is clear enough to understand the operation, but it does not distinguish it from nearby settings-related siblings such as provider_update_org_settings or provider_get_notification_settings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, when not to use it, or what prerequisites apply. The description only identifies the operation and endpoint, leaving usage decisions entirely to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_update_oidc_relying_partyC
Idempotent

Updates a specific OIDC relying party. Updates an OIDC relying party. PUT /cloudapi/1.0.0/openIdProvider/relyingParties/{id}

NameRequiredDescriptionDefault
idYesOIDC relying party's ID (path)
bodyYesInformation about a OIDC relying party.

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=true, destructiveHint=false and openWorldHint=true; the description adds no behavioral context whatsoever. Critically, it does not disclose that this is a PUT (full replacement) on a nested body where omitted fields like scope or isPublic may be reset, and it does not mention 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three lines where one short clause would suffice: the opening sentence is duplicated and the raw endpoint path is repeated from the annotations' title. The wording is not front-loaded with anything actionable.

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 on a nested object with required fields (clientName, redirectUris) and no output schema; the description should say that the body replaces the relying party and which fields are immutable on update. As written, an agent could send a partial body and unknowingly clear configuration.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents the id path parameter and every body property, including the note that isGlobal is read-only on update. The description contributes nothing beyond restating the path template.

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 is nominally clear ('Updates a specific OIDC relying party'), but the same sentence is repeated verbatim and then the raw HTTP path is dumped, adding no scope or distinction. Nothing separates it from siblings like provider_register_oidc_relying_party, provider_get_oidc_relying_party, provider_regenerate_oidc_relying_party_secret, or provider_query_oidc_relying_parties.

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 use this versus provider_register_oidc_relying_party (create), provider_regenerate_oidc_relying_party_secret (rotate secret), or provider_get_oidc_relying_party (read). The agent must infer usage purely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_update_orgA
Idempotent

Updates an organization. Updates an organization. If the managedBy field is being updated, the operation is asynchronous and a task is returned in the location header. Otherwise, the operation is synchronous. PUT /cloudapi/1.0.0/orgs/{orgUrn}

NameRequiredDescriptionDefault
bodyYesAn Organization.
orgUrnYesorgUrn (path)

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (which already declare idempotent=true, destructive=false, readOnly=false), the description adds real value: updating managedBy makes the call asynchronous and returns a task via the location header, otherwise it is synchronous. That distinction is not derivable from the annotations or schema. It stops short of explaining PUT replace semantics or required permissions.

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 'Updates an organization.' is immediately duplicated verbatim, wasting space before the useful async/sync distinction. The rest is tight and appropriately front-loaded with the behavioral nuance and endpoint path.

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 2-parameter mutation with fully documented schema and safety annotations, the description covers the essential unknown — that the call may return a task instead of completing synchronously. No output schema exists to explain, and the endpoint path is included, so an agent has what it needs.

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 meaning the schema does not: the managedBy field is the one that switches the call to asynchronous mode. No guidance is given on whether the body fully replaces the existing org (PUT) versus partially updating it, which is the main remaining ambiguity.

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 ('Updates an organization') and the HTTP endpoint, so the operation is unambiguous. It does not differentiate itself from close siblings such as provider_update_org_settings or provider_update_org_ldap_settings, which would require a sentence about which org aspects this endpoint covers.

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 provider_update_org_settings, provider_update_org_ldap_settings, or identity_patch_org. The conditional sentence explains a behavioral consequence of one field, not when the tool should be selected, so usage must be inferred 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.

provider_update_org_ldap_settingsC
Idempotent

Updates the organization LDAP settings. PUT /cloudapi/v1/orgSettings/ldap

NameRequiredDescriptionDefault
bodyYesThe organization LDAP settings. — The updated organization LDAP settings.

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the write/idempotent/non-destructive profile, but the description adds nothing on top of that. For a PUT that replaces an entire nested settings object, it does not say whether unspecified fields are cleared, that 'enabled' is mandatory, or that omitting the password leaves it unchanged — a meaningful gap for a mutation of this 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?

Two short sentences with no bloat, and the purpose leads. However, the second sentence is only the raw HTTP path, which duplicates the annotation title and adds no interpretive value.

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 deeply nested, mutation-heavy tool with no output schema, and the description does not cover replacement semantics, required 'enabled', or how it relates to sync/test/get LDAP siblings. The schema is rich but the description leaves the agent without operational 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 the nested LDAP settings are thoroughly documented in-schema, so the schema does the heavy lifting. The description contributes nothing about the single 'body' parameter or how settingsSource/definedSettings interact.

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: it updates the organization's LDAP settings, distinct from provider_update_org_settings and provider_get_org_ldap_settings. It does not name those siblings explicitly, so an agent must infer the boundary from the tool name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No indication of when to use this rather than provider_update_org_settings, provider_sync_ldap, provider_test_ldap, or provider_get_org_ldap_settings. No prerequisites (admin rights, org scope) or configuration-flow context are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_update_org_settingsC
Idempotent

Updates the organization settings accessible to the user. PUT /cloudapi/v1/orgSettings

NameRequiredDescriptionDefault
bodyYesThe organization settings. — The updated organization settings.

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=true, destructiveHint=false, so safety is covered. The description adds nothing beyond restating the endpoint path (already in the annotation title) and notably omits the critical PUT behavior — whether omitted boolean fields are reset to their false defaults — plus 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Only two short sentences, with the purpose stated first. The second sentence is a raw endpoint path that duplicates the annotation title and earns little, but the overall text is not bloated.

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 an org-wide settings mutation with a nested body object and no output schema, the description should clarify replace-vs-merge semantics and required authorization. It leaves both unaddressed, so an agent cannot safely predict the effect of submitting a partial body.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 single nested body parameter's three boolean flags are fully documented inline, so the schema does the work. The description contributes no additional parameter meaning, which is the expected baseline for full-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?

The description states a specific verb and resource ("Updates the organization settings") and scopes it with "accessible to the user," which hints at the difference from provider_update_org and provider_update_org_ldap_settings. It does not explicitly name those siblings, so an agent must infer the distinction from names 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 guidance on when to use this versus provider_update_org, provider_update_org_ldap_settings, or provider_get_org_settings, nor any prerequisite or exclusion stated. The only usage signal is the implicit verb, leaving routing entirely to sibling-name guessing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_update_preferenceC
Idempotent

Update specified user preference PUT /cloudapi/1.0.0/preferences/{classifier}

NameRequiredDescriptionDefault
bodyYesDefinition of Preference.
classifierYes(path)

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, idempotent=true, destructive=false, and openWorld=true, so the safety profile is covered structurally. The description adds nothing beyond that: no auth/permission requirements, no statement of which user's preference is affected (caller vs another user), and no note on overwrite semantics. The PUT path line merely restates the annotation title.

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 line (the raw PUT path) duplicates the annotation title and earns nothing. Brevity here comes at the cost of substance rather than from 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?

One of the two parameters is a nested object with three required fields, and this is a mutation, yet the description is a single clause. Annotations and the rich schema carry most of the burden, but the description omits who the preference belongs to and how this differs from the other preference-update 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 the schema already explains classifier, name, and value. The description only echoes the {classifier} path parameter in passing and adds no semantics about how path classifier relates to the body classifier duplicated in the payload. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a verb and resource ('Update specified user preference'), so the basic action is understandable. But 'specified' is filler, and the description does nothing to separate this from near-identical siblings such as provider_update_user_preference and identity_update_user_preferences. An agent cannot tell which update tool to pick from the text alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not-to-use, or alternative routing is given. Given a sibling literally named provider_update_user_preference plus provider_query_user_preferences and provider_get_user_preference for reads, the absence of any selection guidance is a real gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_update_service_accountC
Idempotent

Updates a service account PUT /cloudapi/1.0.0/serviceAccounts/{id}

NameRequiredDescriptionDefault
idYesService account ID URN (path)
bodyYesAn account to be used for non-interactive VMware Cloud Director access.

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=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds essentially nothing beyond the annotation title, which is itself the same PUT path: no mention of required roles/permissions, that the body replaces the account definition, or what happens to fields omitted from the body.

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 verb and resource. The second line largely duplicates the annotation title, so it is close to waste, but the definition is not padded.

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 supply the safety profile and the schema is fully described, so the minimum is met. However, for a mutation on a security-sensitive resource with a large nested body (roles, tokenRotation, requireRotation), the description leaves unclear whether omitted fields are reset, whether roles can be changed here, and whether the updated entity is returned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 (id URN and the nested body) are already documented, establishing a baseline of 3. The description contributes no additional meaning about the id format or which body fields are mutable.

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 ("Updates a service account") plus the underlying endpoint PUT /cloudapi/1.0.0/serviceAccounts/{id}, so the operation is unambiguous. It does not distinguish itself from nearby siblings such as provider_query_service_accounts, provider_revoke_service_account, or provider_update_user, which is what would be needed for 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 guidance is given: nothing says whether this is a full replace or a merge, what preconditions exist (account must exist, must be ACTIVE/GRANTED), or which sibling to use for read/revoke flows. The PUT method weakly implies mutation, but the agent must infer everything else.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_update_tokenC
Idempotent

Update a specific token Update a token PUT /cloudapi/1.0.0/tokens/{id}

NameRequiredDescriptionDefault
idYesToken ID URN (path)
bodyYesSpecifies a user, the user's organization, and the user assigned token that can be used to access proxies as well as the expiration timestamp of the token (in UTC). Parameters cannot be edited once a token is created.

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds zero behavioral context beyond the name and path. While the annotations provide helpful hints (readOnlyHint: false, destructiveHint: false), the description itself fails to disclose any unique behavioral constraints, risks, or operational details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is extremely concise, using only three sentences (two redundant ones plus the path) to convey its identity. While slightly repetitive, its brevity is appropriate for a standard API operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the token body (containing fields like rotation, types, and expiration dates), the description is slightly lacking. It functions adequately only because the input schema is 100% complete, but the text itself does not provide a holistic view of the operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema coverage is 100%, meaning the schema fully defines all parameters. Since the structured data does the heavy lifting, the description serves as a baseline minimum viable explanation and does not provide specific semantic meaning beyond the verb 'Update'.

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 clearly identifies the action (Update) and the resource (Token), which is adequate. However, it relies heavily on the API path (PUT /cloudapi/1.0.0/tokens/{id}) rather than providing a specific, descriptive business use case, making it minimally distinguishing from other provider operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There are no usage guidelines provided. It does not specify when this tool should be used, nor does it suggest alternatives for specific tasks (e.g., 'Use this to extend expiration time' vs. 'Use provider_delete_token to invalidate').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_update_userB
Idempotent

Modify the details of a user. A non-administrator user may only modify their own password. An administrator can edit any user. Modify basic details of the specified user. PUT /cloudapi/1.0.0/users/{userUrn}

NameRequiredDescriptionDefault
bodyYesUser Spec object.
userUrnYesuserUrn (path)

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, idempotentHint=true, destructiveHint=false and openWorldHint=true, and the title already carries the PUT endpoint, so the description's endpoint restatement adds little. The role-based restriction ('non-administrator may only modify their own password') is genuine added context, but it omits that PUT replaces the whole user spec (username is required and omitted fields may be cleared) and says nothing about the response.

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 restriction is stated first, which is good, but 'Modify the details of a user' is immediately restated as 'Modify basic details of the specified user', and the raw 'PUT /cloudapi/1.0.0/users/{userUrn}' line duplicates the annotation title. Meaningful content could fit in half the 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?

For a mutation tool with a large nested user-spec body and no output schema, the description covers permissions but leaves the most operationally risky behavior unstated: PUT semantics (full replacement vs partial update), and what a successful call returns. An agent could call it correctly but might unintentionally wipe 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 coverage is 100% and the nested body schema documents every field in detail, so the schema does the heavy lifting (baseline 3). The description's role restriction hints at which fields are actually writable by a given caller, but never maps that to specific body fields such as locked, enabled, providerType or roleEntityRefs.

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+resource ('Modify the details of a user') and adds the PUT endpoint path, so the operation is unambiguous. It does not, however, differentiate itself from overlapping siblings such as provider_change_password or provider_modify_user_groups, which also alter a user's state.

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 real authorization context: a non-administrator may only modify their own password, while an administrator can edit any user. That establishes who may call it, but there is no guidance on when to prefer this tool over provider_change_password or provider_modify_user_groups for password/group changes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provider_update_user_preferenceC
Idempotent

Update a preference for a specific user. PUT /cloudapi/1.0.0/users/{userUrn}/preferences/{classifier}

NameRequiredDescriptionDefault
bodyYesDefinition of Preference.
userUrnYes(path)
classifierYes(path)

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=true and destructiveHint=false, so safety is covered externally. The description adds only the raw REST path and omits meaningful behavior: that 'classifier' is immutable and must match between path and body, and what happens if the preference does not exist (404 vs create).

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 no filler and the purpose statement front-loaded. The raw HTTP path is marginally useful as routing context but borders on noise since it restates the parameter names.

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, full schema coverage and rich annotations, the minimal description is nearly adequate. However, it leaves the path/body classifier redundancy and the immutability constraint unexplained, which are the details an agent is most likely to get wrong.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 including the nested body fields are documented in the schema, making 3 the baseline. The description adds nothing beyond the path echo, and notably fails to explain the duplication of 'classifier' as both a path parameter and a required body field, which is the one ambiguity an agent would need help with.

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 a preference for a specific user') and reinforces it with the REST path, so the operation is unambiguous. It does not, however, distinguish itself from closely-named siblings like provider_update_preference, identity_update_user_preferences, or provider_get_user_preference, so an agent must guess which one 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 guidance on when to use this tool versus the near-identical siblings (provider_update_preference, identity_update_user_preferences), no prerequisites, and no note that the preference must already exist. The agent gets a verb and a path, nothing about selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vcfa_connection_statusA
Read-only

Show the VCF Automation connection: host, org, auth mode in use, token expiry, read-only flag and how many operation tools are loaded per service. Pass test=true to log in now and call GET /iaas/api/about.

NameRequiredDescriptionDefault
testNoAuthenticate and call GET /iaas/api/about

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true is already declared, so the bar is lower, and the description still adds real value: it lists the exact fields surfaced (including auth mode, token expiry, read-only flag, tool counts) and warns that test=true performs an actual login and outbound GET /iaas/api/about. It does not say what happens when no connection exists or when authentication fails.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero filler, front-loading what the tool reveals and following with the one optional behavior. Every clause carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only diagnostic with no output schema, the description covers what is returned and what the flag does. The remaining gap is failure behavior — whether it reports a disconnected/expired state gracefully or errors out — which matters for a status tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter, and the schema description already reads 'Authenticate and call GET /iaas/api/about'. The description's 'Pass test=true to log in now' restates that with only marginal extra nuance, 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 (Show) and resource (the VCF Automation connection), then enumerates exactly what is reported: host, org, auth mode, token expiry, read-only flag, and loaded operation-tool counts per service. That enumeration makes it distinguishable from neighboring diagnostics such as vcfa_describe_operation or iaas_get_about.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a diagnostics/health-check use case and specifies the condition for the only parameter (test=true triggers login plus a /iaas/api/about call). It never states when to prefer this over the overlapping sibling tools (iaas_get_about, provider_get_current_session, identity_get_logged_in_user) or when not to call it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vcfa_describe_operationA
Read-only

Return the full, untruncated request schema (all nesting levels) and parameter list for any operation tool by name. Use it before calling a create/update tool whose body schema is summarised.

NameRequiredDescriptionDefault
toolYesOperation tool name, e.g. iaas_create_machine

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the agent knows this is a safe read. The description adds that the returned schema is 'full, untruncated' with 'all nesting levels,' which is useful behavioral context about the output, but it does not cover rates, errors, or other operational details. With annotations covering safety, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no waste; the primary action is front-loaded and the usage guidance follows immediately. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, one-parameter meta-tool without an output schema, the description fully explains what is returned and when to use it. Nothing an agent needs to call it correctly is missing, and annotations cover the safety profile.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 the single 'tool' parameter with an example. The description adds no additional meaning beyond 'by name,' which is already implied. Baseline 3 is correct 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Return) and resource (full, untruncated request schema and parameter list) for any operation tool by name. It clearly distinguishes itself from sibling operation tools, which perform actions, by being a meta-tool that describes them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to 'Use it before calling a create/update tool whose body schema is summarised,' providing a clear when-to-use condition. It does not mention when not to use it or name alternative tools, but the context is sufficiently clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vro_run_workflowC

Start Workflow Run Starts Workflow Run. POST /vro/runs

NameRequiredDescriptionDefault
bodyYesRequest body

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=false, destructiveHint=false, and openWorldHint=true, so the mutation and non-idempotency profile is covered structurally. The description adds nothing on top — no mention of what state a run creates, whether it executes synchronously or asynchronously, or how to retrieve results afterwards, all of which matter for a non-idempotent start 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 and front-loaded, so nothing is bloated, but the first two lines are pure duplication of the title and the third is a raw HTTP verb/path. Every sentence is redundant rather than earning 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 non-idempotent start operation taking a complex nested request body and returning no output schema, the description is far too thin — an agent cannot tell what fields to supply, whether the run executes immediately, or what identifier comes back to poll with vro_workflow_run_get_by_run_id. The only thing conveyed is the endpoint path.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 reported at 100% for the single top-level body parameter, so the baseline of 3 applies even though the description contributes nothing. The caveat is that the nested body fields (projectId, actionName, workflowId, executionId, parameters, constraint) carry almost no per-field descriptions, so which identifier is actually required for a run is genuinely ambiguous and the description does not resolve it.

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 says only 'Start Workflow Run' and then repeats 'Starts Workflow Run' — it restates the tool name rather than specifying what starting a run means in VMware Aria Automation Orchestrator terms. Nothing distinguishes it from siblings like vro_workflow_run_get_all or vro_workflow_run_get_by_run_id beyond the obvious, and the POST path adds no semantic value.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/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, no mention of what to do before starting a run (e.g., looking up a workflowId via vro_workflow_get_all), and no exclusion relative to the get-a-run siblings. The agent is left to 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.

vro_workflow_get_aggregatedC
Read-onlyIdempotent

Get aggregated list of workflows for all configurations Get aggregated list of workflows, grouped by id and name, along with information for all configurations in which each workflow is present GET /vro/aggregated-workflows

NameRequiredDescriptionDefault
pageYes

TDQS

C2.9/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. The description adds genuine value by disclosing the aggregation/grouping semantics and that each entry carries data for all configurations containing the workflow, which matters for interpretation. It says nothing about pagination behavior even though a page parameter is required, so the return-size behavior is opaque.

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 first two lines are largely duplicative ('Get aggregated list of workflows...' repeated twice), and the raw HTTP path adds little for an agent. The useful content (grouping by id/name, per-configuration info) is buried 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?

For a read-only list tool with four sibling workflow query tools and no output schema, the description does enough to convey what comes back at a high level. Missing pagination semantics and the absence of any routing guidance against siblings leave real gaps for an agent choosing among get_all, get_aggregated, and get_aggregated_one.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the parameter is a nested object with page/size/sort sub-fields, yet the description says nothing about them. An agent gets no information on page indexing base, default or maximum size, or accepted sort keys. The property names are self-describing, but the description does not compensate for the coverage gap.

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 aggregated list of workflows) and adds the key differentiator that results span all configurations, grouped by id and name. That is more than a restatement of the name. However, it never names the nearest sibling (vro_workflow_get_all) that presumably covers a single configuration, so the agent must infer 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 explicit statement of when to choose this over vro_workflow_get_all, vro_workflow_get_one, or vro_workflow_get_aggregated_one. The phrase 'for all configurations' hints at the selection criterion but never states it as guidance. No prerequisites, no exclusions, no alternative named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vro_workflow_get_aggregated_oneC
Read-onlyIdempotent

Get aggregated information for a workflow Get a workflow with a specific ID GET /vro/aggregated-workflows/{id}

NameRequiredDescriptionDefault
idYes(path)

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, and non-destructive behavior. The description adds only a REST endpoint that is already repeated in the annotation title, and it does not explain what 'aggregated' includes or what the caller should expect beyond a normal workflow fetch.

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 slightly redundant: 'Get aggregated information for a workflow' and 'Get a workflow with a specific ID' largely restate each other, and the endpoint line duplicates the annotation title.

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 read-only retrieval tool with no output schema, the description should clarify what the aggregated response contains and why it differs from vro_workflow_get_one. It does not, leaving a meaningful gap for tool selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has full description coverage for the single id parameter, and the description confirms it is a workflow ID. It adds little beyond the schema, so the baseline of 3 is appropriate for a fully covered one-parameter tool.

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 ('Get aggregated information for a workflow') and mentions retrieval by specific ID. However, 'aggregated' is never defined, and it does not distinguish this operation from close siblings such as vro_workflow_get_one, vro_workflow_get_aggregated, and vro_workflow_get_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?

There is no guidance on when to use this tool versus alternatives. With siblings like vro_workflow_get_one and vro_workflow_get_aggregated present, the agent is left to infer which retrieval variant is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vro_workflow_get_allC
Read-onlyIdempotent

Get a list of workflows GET /vro/workflows

NameRequiredDescriptionDefault
pageYes
expandNo

TDQS

C2.6/5.0
Behavior2/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 fully covered without the description. The description adds nothing beyond that — it does not disclose pagination semantics, default page size, whether the list is scoped to a tenant/organization, or what the response envelope looks like.

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 line is a raw HTTP path that merely duplicates the annotation title, so one of two sentences carries no incremental information. Not verbose, just partly wasted.

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 list tool with a nested required parameter object, no output schema, and 0% schema coverage, an agent still lacks pagination behavior, default sizing, sort syntax, and response shape. Annotations cover safety but not the operational details needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description says nothing about any parameter. The nested required `page` object (page.page, page.size, page.sort) is genuinely ambiguous and would benefit from explanation, as would the `expand` flag, but the description offers no clarification beyond self-describing field names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ("Get a list of workflows"), so the agent knows exactly what the tool returns. It does not, however, distinguish itself from near-siblings such as vro_workflow_get_aggregated or vro_workflow_get_aggregated_one, so the agent must guess which listing endpoint is intended.

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 list endpoint should be used versus vro_workflow_get_one or the aggregated variants, and no prerequisites or exclusions are given. The only guidance is the raw path "GET /vro/workflows", which restates the operation rather than advising usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vro_workflow_get_oneC
Read-onlyIdempotent

Get a workflow definition GET /vro/workflows/{workflowId}

NameRequiredDescriptionDefault
expandNo
workflowIdYes(path)
endpointConfigurationLinkNo

TDQS

C2.9/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 fully covered. The description adds only the endpoint path and the word "definition," which mildly clarifies that this returns a definition rather than an execution record; it says nothing about error behavior for a bad workflowId or what the payload contains. Adequate but thin given annotations carry the load.

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 lines, front-loaded with the action and free of filler. The second line (the REST path) is largely redundant with the annotation title, but it costs almost nothing.

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?

Three parameters, only one documented, no output schema, and the description does not explain return shape, whether `expand` changes the response, or how failures surface. For a definition-fetch tool whose value lies in what fields come back, this leaves real gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%: workflowId is marked "(path)" and the two optional parameters, expand and endpointConfigurationLink, have no descriptions anywhere. The description text provides zero parameter guidance, so the agent cannot tell what `expand` expands or whether endpointConfigurationLink scopes the lookup.

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 a workflow definition") and the REST path reinforces it, so the agent knows this retrieves a single workflow by ID. However, nothing distinguishes it from close siblings like vro_workflow_get_aggregated_one or vro_workflow_get_all, and the word "definition" vs. a workflow *run* is only implicitly contrasted with vro_workflow_run_get_by_run_id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives — no mention of when to prefer vro_workflow_get_all, vro_workflow_get_aggregated, or the run-oriented siblings. The agent must infer from the name alone that this is the single-item lookup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vro_workflow_run_get_allC
Read-onlyIdempotent

List Workflow Runs Retrieves list of Workflow Runs possibly filtered by eventId and workflowId. GET /vro/runs

NameRequiredDescriptionDefault
pageYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as a read-only, idempotent, non-destructive, open-world GET operation. The description adds that the result is a list and mentions optional filtering, but it does not explain pagination behavior, authentication, rate limits, or the filtering semantics in a verifiable way.

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 resource and action. It wastes some space by repeating the list concept and the endpoint path, but it remains easy to parse.

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 list tool with no output schema and a required pagination object, the description should explain pagination or return behavior. It instead references unsupported filter parameters and leaves the actual schema parameters undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the required page object containing page, size, and sort. Instead, it mentions eventId and workflowId filters that do not appear in the schema, which is misleading because additionalProperties is false.

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 Workflow Runs. It is clear it retrieves runs rather than workflow definitions, but it does not explicitly distinguish itself from run-specific siblings such as vro_workflow_run_get_by_run_id or vro_workflow_run_logs_get_by_run_id.

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 the tool is used to list Workflow Runs and that filtering by eventId/workflowId is possible. However, it gives no explicit when-to-use guidance versus alternatives like retrieving a single run or run logs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vro_workflow_run_get_by_run_idB
Read-onlyIdempotent

Find Workflow Run by run ID Retrieves the Workflow Run for the specific run ID GET /vro/runs/{runId}

NameRequiredDescriptionDefault
runIdYes(path)

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 fully covered. The description adds only the HTTP route GET /vro/runs/{runId}; it says nothing about what a run object contains, whether missing IDs error or return empty, or pagination/expansion 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?

Three short lines with no bloat in length, but line two is a pure restatement of line one and line three is just the route already visible in the title/annotations, so the content-to-length ratio is mediocre rather than wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter read with rich annotations this is minimally sufficient to call correctly. It still leaves the agent guessing about the returned run payload and failure behavior for a bad runId, which matters since there is no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with a single required runId parameter, so the baseline is 3. The description confirms runId selects one specific run but adds no format, source, or provenance detail (e.g. where a runId comes from) 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 Workflow Run) scoped to a single run ID, which is enough to distinguish it from vro_workflow_run_get_all. However, it never name-checks the near-siblings vro_workflow_run_get_all or vro_workflow_run_logs_get_by_run_id, and the second line simply restates the first rather than sharpening the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use, when-not-to-use, or alternative routing. The only implicit guidance is 'by run ID', which an agent has to infer from the name and parameter rather than from the description text.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vro_workflow_run_logs_get_by_run_idC
Read-onlyIdempotent

Find Workflow Run logs by run ID Retrieves the Workflow Run logs for the specific run ID GET /vro/runs/{runId}/logs

NameRequiredDescriptionDefault
runIdYes(path)
severityNoDEBUG
localOnlyNo
olderThanNo

TDQS

C2.6/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 structurally. The description adds nothing beyond restating the endpoint path — no mention of log volume, pagination, ordering, or truncation behavior for what is a potentially large log payload.

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 first two sentences are near-duplicates ('Find Workflow Run logs by run ID' / 'Retrieves the Workflow Run logs for the specific run ID'), so a third of the text is redundant filler.

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 log-retrieval tool with no output schema and three undocumented filter parameters, the description should say what the response contains and how filters behave. It defers entirely to the schema and annotations, leaving the agent without enough to call it correctly with non-default parameters.

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 only 25%: runId is marked '(path)' and severity/localOnly/olderThan have no descriptions at all in either schema or description. The filtering parameters (severity, olderThan) materially change results yet the description never explains them, leaving a real gap.

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 ('Retrieves the Workflow Run logs for the specific run ID') and includes the HTTP route, so the operation is unambiguous. It does not, however, differentiate itself from the sibling 'vro_workflow_run_get_by_run_id', which an agent could easily confuse with 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?

There is no guidance on when to call this versus the closely-named sibling run-retrieval tools, and no mention of prerequisites such as a valid run ID having been obtained from 'vro_workflow_run_get_all'. Usage is only inferable from the name.

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. 698 tool updatesv0.2.0
    • First observedabx_cancel_action_run
    • First observedabx_create_action_version
    • First observedabx_delete_action
    • First observedabx_delete_action_runs
    • First observedabx_delete_action_runs_by_id
    • First observedabx_delete_action_secret
    • First observedabx_delete_action_version
    • First observedabx_delete_multiple_actions
    • First observedabx_export
    • First observedabx_get_action_by_id
    • First observedabx_get_action_run_by_id
    • First observedabx_get_action_runs_by_action_id
    • First observedabx_get_action_secrets
    • First observedabx_get_action_secrets_by_id
    • First observedabx_get_action_template_by_id
    • First observedabx_get_all_action_run_projections
    • First observedabx_get_all_action_templates
    • First observedabx_get_all_actions
    • First observedabx_get_all_flows_using_action
    • First observedabx_get_all_provisioning_endpoints
    • First observedabx_get_all_versions
    • First observedabx_get_provisioning_endpoints_by_id
    • First observedabx_import_actions
    • First observedabx_patch_actions_by_id
    • First observedabx_post_action_runs
    • First observedabx_post_action_secrets
    • First observedabx_post_actions
    • First observedabx_post_actions_by_id_action_runs
    • First observedabx_put_action_secrets_by_id
    • First observedabx_put_actions_by_id
    • First observedabx_release_action_version
    • First observedabx_restore_action_version
    • First observedabx_unrelease_action_version
    • First observedapprovals_answer_work_item
    • First observedapprovals_execute_action_on_approval_request
    • First observedapprovals_get_about
    • First observedapprovals_get_approval_request_v3
    • First observedapprovals_get_approval_requests_v3
    • First observedapprovals_get_logged_in_user_groups
    • First observedapprovals_get_work_item_by_id
    • First observedapprovals_get_work_items
    • First observedapprovals_get_work_items_for_deployment
    • First observedapprovals_get_work_items_for_deployment_request
    • First observedapprovals_reject_work_item
    • First observedblueprint_cancel_blueprint_request
    • First observedblueprint_create_blueprint
    • First observedblueprint_create_blueprint_from_mapping
    • First observedblueprint_create_blueprint_mapping
    • First observedblueprint_create_blueprint_request
    • First observedblueprint_create_blueprint_version
    • First observedblueprint_create_property_group
    • First observedblueprint_create_terraform_version
    • First observedblueprint_delete_blueprint
    • First observedblueprint_delete_blueprint_request
    • First observedblueprint_delete_property_group
    • First observedblueprint_delete_terraform_version
    • First observedblueprint_get_about
    • First observedblueprint_get_blueprint
    • First observedblueprint_get_blueprint_inputs_schema
    • First observedblueprint_get_blueprint_request
    • First observedblueprint_get_blueprint_request_execution
    • First observedblueprint_get_blueprint_requests_by_request_id_resources_plan
    • First observedblueprint_get_blueprint_resources_plan
    • First observedblueprint_get_blueprint_version
    • First observedblueprint_get_blueprint_version_inputs_schema
    • First observedblueprint_get_configuration_source_tree
    • First observedblueprint_get_property_group
    • First observedblueprint_get_resource_type
    • First observedblueprint_get_terraform_configuration_source_commit_list
    • First observedblueprint_get_terraform_configuration_sources
    • First observedblueprint_get_terraform_version
    • First observedblueprint_list_blueprint_requests
    • First observedblueprint_list_blueprint_versions
    • First observedblueprint_list_blueprints
    • First observedblueprint_list_property_groups
    • First observedblueprint_list_resource_types
    • First observedblueprint_list_terraform_versions
    • First observedblueprint_release_blueprint_version
    • First observedblueprint_restore_blueprint_version
    • First observedblueprint_un_release_blueprint_version
    • First observedblueprint_update_blueprint
    • First observedblueprint_update_property_group
    • First observedblueprint_update_terraform_version
    • First observedblueprint_validate_blueprint
    • First observedcatalog_change_metering_assignment_strategy
    • First observedcatalog_create_metering_assignment_strategy
    • First observedcatalog_create_metering_policy_assignment
    • First observedcatalog_create_or_update
    • First observedcatalog_create_policy
    • First observedcatalog_delete_admin_sources_by_source_id
    • First observedcatalog_delete_icons_by_id
    • First observedcatalog_delete_metering_policy_assignment
    • First observedcatalog_delete_policy
    • First observedcatalog_delete_scenario_branding
    • First observedcatalog_delete_scenario_configs_by_scenario_id
    • First observedcatalog_download
    • First observedcatalog_get_admin_sources_by_source_id
    • First observedcatalog_get_all_metering_policy_assignments
    • First observedcatalog_get_all_scenario_configs
    • First observedcatalog_get_catalog_item
    • First observedcatalog_get_catalog_item_for_admin
    • First observedcatalog_get_catalog_items
    • First observedcatalog_get_catalog_items_for_admin
    • First observedcatalog_get_metering_assignment_strategy
    • First observedcatalog_get_metering_policy_assignment
    • First observedcatalog_get_page
    • First observedcatalog_get_policies
    • First observedcatalog_get_policy
    • First observedcatalog_get_scenario
    • First observedcatalog_get_scenario_config
    • First observedcatalog_get_type_by_id
    • First observedcatalog_get_types
    • First observedcatalog_get_upfront_price_response_for_catalog_item
    • First observedcatalog_get_version_by_id
    • First observedcatalog_get_version_by_id_for_admin
    • First observedcatalog_get_versions
    • First observedcatalog_get_versions_for_admin
    • First observedcatalog_patch_config
    • First observedcatalog_patch_metering_policy_assignment
    • First observedcatalog_post
    • First observedcatalog_post_scenario_configs
    • First observedcatalog_preview_notification_config
    • First observedcatalog_request_catalog_item_instances
    • First observedcatalog_send_test_notification
    • First observedcatalog_submit_upfront_price_request_for_catalog_item
    • First observedcatalog_update_catalog_item
    • First observedcatalog_update_catalog_item_version
    • First observedcatalog_update_policy
    • First observedcatalog_upload
    • First observedcontent_create_content_source
    • First observedcontent_delete_content_source
    • First observedcontent_get_about
    • First observedcontent_get_content_source
    • First observedcontent_get_sync_request
    • First observedcontent_list_content_source
    • First observedcontent_list_content_sources
    • First observedcontent_schedule_sync
    • First observedcontent_schedule_sync_all
    • First observedcontent_sync_history
    • First observedcontent_update_content_source
    • First observeddeployment_action_deployment_request
    • First observeddeployment_check_deployment_name
    • First observeddeployment_check_deployment_name_exists
    • First observeddeployment_create_resource
    • First observeddeployment_delete_deployment
    • First observeddeployment_delete_resource
    • First observeddeployment_get_billing_metrics
    • First observeddeployment_get_deployment_action
    • First observeddeployment_get_deployment_actions
    • First observeddeployment_get_deployment_by_id
    • First observeddeployment_get_deployment_expense_history_by_id
    • First observeddeployment_get_deployment_filter_by_id
    • First observeddeployment_get_deployment_filters
    • First observeddeployment_get_deployment_requests
    • First observeddeployment_get_deployment_resources
    • First observeddeployment_get_deployments
    • First observeddeployment_get_deployments_for_project
    • First observeddeployment_get_event_logs
    • First observeddeployment_get_event_logs_content
    • First observeddeployment_get_request
    • First observeddeployment_get_request_events
    • First observeddeployment_get_resource_action
    • First observeddeployment_get_resource_actions
    • First observeddeployment_get_resource_by_id
    • First observeddeployment_get_resource_filter_by_id
    • First observeddeployment_get_resource_filters
    • First observeddeployment_get_resource_type
    • First observeddeployment_get_resources
    • First observeddeployment_get_resources_by_resource_id
    • First observeddeployment_get_resources_by_resource_id_actions
    • First observeddeployment_get_resources_by_resource_id_actions_by_action_id
    • First observeddeployment_get_user_events
    • First observeddeployment_list_resource_requests
    • First observeddeployment_list_resource_types
    • First observeddeployment_patch_deployment
    • First observeddeployment_post_resources_by_resource_id_requests
    • First observeddeployment_submit_deployment_action_request
    • First observeddeployment_submit_resource_action_request
    • First observedeventbroker_delete_subscription
    • First observedeventbroker_get_all_event_topics
    • First observedeventbroker_get_audit_log_filter_entry_by_id
    • First observedeventbroker_get_event
    • First observedeventbroker_get_event_topic
    • First observedeventbroker_get_events
    • First observedeventbroker_get_subscription
    • First observedform_create_form
    • First observedform_create_or_update_custom_resource_type
    • First observedform_create_or_update_resource_action
    • First observedform_delete_custom_resource_type
    • First observedform_delete_form
    • First observedform_delete_forms_delete_by_source_and_type
    • First observedform_delete_resource_action
    • First observedform_execute_external_action
    • First observedform_execute_external_actions
    • First observedform_fetch_customized_form
    • First observedform_fetch_form
    • First observedform_fetch_model
    • First observedform_generate
    • First observedform_generate_elements
    • First observedform_generate_elements_runnable_item
    • First observedform_generate_json_schema
    • First observedform_get_action_form
    • First observedform_get_action_runnable_item
    • First observedform_get_binding_action
    • First observedform_get_custom_resource_type
    • First observedform_get_external_value
    • First observedform_get_form
    • First observedform_get_form_layout_schema
    • First observedform_get_forms_provider_by_ref
    • First observedform_get_forms_versions
    • First observedform_get_forms_versions_by_id
    • First observedform_get_json_object_schema
    • First observedform_get_r_esource_action_for_custom_resource
    • First observedform_get_resource_action
    • First observedform_get_resource_action_form_data
    • First observedform_get_resource_type
    • First observedform_list_actions
    • First observedform_list_custom_resource_types
    • First observedform_list_resource_types
    • First observedform_lookup_external_resource
    • First observedform_lookup_external_resources
    • First observedform_perform_external_validation
    • First observedform_post_forms_versions
    • First observedform_restore
    • First observedform_search_by_source_and_type
    • First observedform_search_form_definitions
    • First observedform_search_form_status
    • First observediaas_allocate_network_ips_by_user
    • First observediaas_attach_machine_disk
    • First observediaas_change_security_groups
    • First observediaas_create_avi_lb_cloud_account_async
    • First observediaas_create_aws_cloud_account_async
    • First observediaas_create_aws_storage_profile
    • First observediaas_create_azure_cloud_account_async
    • First observediaas_create_azure_storage_profile
    • First observediaas_create_block_device
    • First observediaas_create_block_device_snapshot
    • First observediaas_create_cloud_account_async
    • First observediaas_create_compute_gateway
    • First observediaas_create_compute_nat
    • First observediaas_create_custom_name
    • First observediaas_create_data_collector
    • First observediaas_create_deployment
    • First observediaas_create_flavor_profile
    • First observediaas_create_gcp_cloud_account_async
    • First observediaas_create_gcp_storage_profile
    • First observediaas_create_image_profile
    • First observediaas_create_integration_async
    • First observediaas_create_internal_network_ip_range
    • First observediaas_create_load_balancer
    • First observediaas_create_machine
    • First observediaas_create_machine_snapshot
    • First observediaas_create_network
    • First observediaas_create_network_profile
    • First observediaas_create_nsx_t_cloud_account_async
    • First observediaas_create_on_demand_security_group
    • First observediaas_create_project
    • First observediaas_create_storage_profile
    • First observediaas_create_tag
    • First observediaas_create_vcf_cloud_account_async
    • First observediaas_create_vmc_cloud_account_async
    • First observediaas_create_vsphere_cloud_account_async
    • First observediaas_create_vsphere_storage_profile
    • First observediaas_create_zone
    • First observediaas_delete_avi_lb_account_async
    • First observediaas_delete_aws_cloud_account
    • First observediaas_delete_aws_storage_profile
    • First observediaas_delete_azure_cloud_account
    • First observediaas_delete_azure_storage_profile
    • First observediaas_delete_block_device
    • First observediaas_delete_block_device_snapshot
    • First observediaas_delete_cloud_account
    • First observediaas_delete_cloud_account_nsx_t
    • First observediaas_delete_compute_gateway
    • First observediaas_delete_compute_nat
    • First observediaas_delete_configuration_property
    • First observediaas_delete_customname
    • First observediaas_delete_data_collector
    • First observediaas_delete_deployment
    • First observediaas_delete_flavor_profile
    • First observediaas_delete_gcp_cloud_account
    • First observediaas_delete_gcp_storage_profile
    • First observediaas_delete_image_profile
    • First observediaas_delete_integration
    • First observediaas_delete_internal_network_ip_range
    • First observediaas_delete_load_balancer
    • First observediaas_delete_load_balancer_operation
    • First observediaas_delete_machine
    • First observediaas_delete_machine_disk
    • First observediaas_delete_machine_snapshot
    • First observediaas_delete_network
    • First observediaas_delete_network_profile
    • First observediaas_delete_project
    • First observediaas_delete_request
    • First observediaas_delete_security_group
    • First observediaas_delete_storage_profile
    • First observediaas_delete_tag
    • First observediaas_delete_vcf_cloud_account
    • First observediaas_delete_vmc_cloud_account
    • First observediaas_delete_vsphere_cloud_account
    • First observediaas_delete_vsphere_storage_profile
    • First observediaas_delete_zone
    • First observediaas_enumerate_aws_regions_async
    • First observediaas_enumerate_azure_regions_async
    • First observediaas_enumerate_gcp_regions_async
    • First observediaas_enumerate_private_images
    • First observediaas_enumerate_private_images_aws
    • First observediaas_enumerate_private_images_azure
    • First observediaas_enumerate_private_images_gcp
    • First observediaas_enumerate_private_images_vcf
    • First observediaas_enumerate_private_images_vmc
    • First observediaas_enumerate_private_images_vsphere
    • First observediaas_enumerate_regions_async
    • First observediaas_enumerate_vcf_regions_async
    • First observediaas_enumerate_vmc_regions_async
    • First observediaas_enumerate_vsphere_regions_async
    • First observediaas_get_about
    • First observediaas_get_all_custom_names
    • First observediaas_get_allocated_and_released_ip_addresses
    • First observediaas_get_allocated_or_released_ip_address
    • First observediaas_get_avi_lb_cloud_account
    • First observediaas_get_avi_lb_cloud_accounts
    • First observediaas_get_aws_cloud_account
    • First observediaas_get_aws_cloud_accounts
    • First observediaas_get_aws_storage_profile
    • First observediaas_get_aws_storage_profiles
    • First observediaas_get_azure_cloud_account
    • First observediaas_get_azure_cloud_accounts
    • First observediaas_get_azure_disk_encryption_sets
    • First observediaas_get_azure_storage_profile
    • First observediaas_get_azure_storage_profiles
    • First observediaas_get_block_device
    • First observediaas_get_block_devices
    • First observediaas_get_certificate_info
    • First observediaas_get_cloud_account
    • First observediaas_get_cloud_accounts
    • First observediaas_get_compute_gateway
    • First observediaas_get_compute_gateways
    • First observediaas_get_compute_nat
    • First observediaas_get_compute_nats
    • First observediaas_get_computes
    • First observediaas_get_configuration_properties
    • First observediaas_get_configuration_property
    • First observediaas_get_custom_name
    • First observediaas_get_custom_name_by_project_id
    • First observediaas_get_data_collector
    • First observediaas_get_data_collectors
    • First observediaas_get_deployments
    • First observediaas_get_disk_snapshot
    • First observediaas_get_disk_snapshots
    • First observediaas_get_event_logs
    • First observediaas_get_external_ip_block
    • First observediaas_get_external_ip_blocks
    • First observediaas_get_external_network_ip_range
    • First observediaas_get_external_network_ip_ranges
    • First observediaas_get_fabric_aws_volume_types
    • First observediaas_get_fabric_azure_storage_account
    • First observediaas_get_fabric_azure_storage_accounts
    • First observediaas_get_fabric_compute
    • First observediaas_get_fabric_computes
    • First observediaas_get_fabric_flavors
    • First observediaas_get_fabric_image
    • First observediaas_get_fabric_images
    • First observediaas_get_fabric_network
    • First observediaas_get_fabric_network_ip_ranges
    • First observediaas_get_fabric_network_vsphere_ip_ranges
    • First observediaas_get_fabric_networks
    • First observediaas_get_fabric_vsphere_datastore
    • First observediaas_get_fabric_vsphere_datastores
    • First observediaas_get_fabric_vsphere_storage_policies
    • First observediaas_get_fabric_vsphere_storage_policy
    • First observediaas_get_flavor_profile
    • First observediaas_get_flavor_profiles
    • First observediaas_get_flavors
    • First observediaas_get_folders
    • First observediaas_get_gcp_cloud_account
    • First observediaas_get_gcp_cloud_accounts
    • First observediaas_get_gcp_storage_profile
    • First observediaas_get_gcp_storage_profiles
    • First observediaas_get_image_profile
    • First observediaas_get_image_profiles
    • First observediaas_get_images
    • First observediaas_get_integration
    • First observediaas_get_integrations
    • First observediaas_get_internal_network_ip_range
    • First observediaas_get_internal_network_ip_ranges
    • First observediaas_get_load_balancer
    • First observediaas_get_load_balancer_network_interface
    • First observediaas_get_load_balancers
    • First observediaas_get_machine
    • First observediaas_get_machine_disk
    • First observediaas_get_machine_disks
    • First observediaas_get_machine_network_interface
    • First observediaas_get_machine_snapshot
    • First observediaas_get_machine_snapshots
    • First observediaas_get_machines
    • First observediaas_get_network
    • First observediaas_get_network_domain
    • First observediaas_get_network_domains
    • First observediaas_get_network_ip_ranges_result
    • First observediaas_get_network_profile
    • First observediaas_get_network_profiles
    • First observediaas_get_networks
    • First observediaas_get_nsx_t_cloud_account
    • First observediaas_get_nsx_t_cloud_accounts
    • First observediaas_get_project
    • First observediaas_get_project_resource_metadata
    • First observediaas_get_projects
    • First observediaas_get_projects_by_id_zones
    • First observediaas_get_region
    • First observediaas_get_region_enumeration_result
    • First observediaas_get_regions
    • First observediaas_get_request_graph
    • First observediaas_get_request_tracker
    • First observediaas_get_request_trackers
    • First observediaas_get_security_group
    • First observediaas_get_security_groups
    • First observediaas_get_single_deployment
    • First observediaas_get_storage_profile
    • First observediaas_get_storage_profile_associations
    • First observediaas_get_storage_profiles
    • First observediaas_get_tags
    • First observediaas_get_tags_usage
    • First observediaas_get_vcf_cloud_account
    • First observediaas_get_vcf_cloud_accounts
    • First observediaas_get_vmc_cloud_account
    • First observediaas_get_vmc_cloud_accounts
    • First observediaas_get_vsphere_cloud_account
    • First observediaas_get_vsphere_cloud_accounts
    • First observediaas_get_vsphere_fabric_network
    • First observediaas_get_vsphere_fabric_networks
    • First observediaas_get_vsphere_storage_profile
    • First observediaas_get_vsphere_storage_profiles
    • First observediaas_get_zone
    • First observediaas_get_zones
    • First observediaas_import_package
    • First observediaas_import_package_http_method_override
    • First observediaas_patch_configuration_property
    • First observediaas_patch_machine_network_interface
    • First observediaas_power_off_machine
    • First observediaas_power_on_machine
    • First observediaas_promote_disk
    • First observediaas_reboot_machine
    • First observediaas_reconfigure_nat
    • First observediaas_reconfigure_security_group
    • First observediaas_release_network_ips_by_user
    • First observediaas_release_unregistered_network_ips
    • First observediaas_replace_storage_profile
    • First observediaas_reserve_package
    • First observediaas_reset_machine
    • First observediaas_resize_block_device
    • First observediaas_resize_machine
    • First observediaas_restart_machine
    • First observediaas_retrieve_auth_token
    • First observediaas_revert_disk_snapshot
    • First observediaas_revert_machine_snapshot
    • First observediaas_run_endpoint_health_check
    • First observediaas_scale_load_balancer
    • First observediaas_shutdown_machine
    • First observediaas_suspend_machine
    • First observediaas_unregister
    • First observediaas_update_avi_lb_cloud_account_async
    • First observediaas_update_aws_cloud_account_async
    • First observediaas_update_aws_storage_profile
    • First observediaas_update_azure_cloud_account_async
    • First observediaas_update_azure_storage_profile
    • First observediaas_update_cloud_account_async
    • First observediaas_update_custom_name
    • First observediaas_update_external_network_ip_range
    • First observediaas_update_fabric_compute
    • First observediaas_update_fabric_network
    • First observediaas_update_fabric_vsphere_datastore
    • First observediaas_update_flavor_profile
    • First observediaas_update_gcp_cloud_account_async
    • First observediaas_update_gcp_storage_profile
    • First observediaas_update_image_profile
    • First observediaas_update_integration_async
    • First observediaas_update_internal_network_ip_range
    • First observediaas_update_machine
    • First observediaas_update_network_profile
    • First observediaas_update_nsx_t_cloud_account_async
    • First observediaas_update_project
    • First observediaas_update_project_resource_metadata
    • First observediaas_update_project_zone_assignments
    • First observediaas_update_security_group
    • First observediaas_update_storage_profile_associations
    • First observediaas_update_vcf_cloud_account_async
    • First observediaas_update_vmc_cloud_account_async
    • First observediaas_update_vsphere_cloud_account_async
    • First observediaas_update_vsphere_storage_profile
    • First observediaas_update_zone
    • First observediaas_updatevsphere_fabric_network
    • First observedidentity_check_id_token
    • First observedidentity_get_access_token_info
    • First observedidentity_get_access_token_pkce_flow
    • First observedidentity_get_access_token_with_authorization_request
    • First observedidentity_get_access_token_with_refresh_token
    • First observedidentity_get_all_by_org_service_definitions
    • First observedidentity_get_all_service_definitions
    • First observedidentity_get_group_roles_on_organization
    • First observedidentity_get_keys
    • First observedidentity_get_logged_in_user
    • First observedidentity_get_logged_in_user_details
    • First observedidentity_get_logged_in_user_groups_on_org
    • First observedidentity_get_openid_configuration
    • First observedidentity_get_org_roles
    • First observedidentity_get_org_sub_orgs
    • First observedidentity_get_organization_groups
    • First observedidentity_get_orgs_by_org_id
    • First observedidentity_get_orgs_by_org_id_users
    • First observedidentity_get_paged_service_definition_orgs
    • First observedidentity_get_paginated_group_users
    • First observedidentity_get_paginated_org_users_info
    • First observedidentity_get_principal_user_profile
    • First observedidentity_get_role_by_org_id_and_role_id
    • First observedidentity_get_user_default_org
    • First observedidentity_get_user_in_any_organization
    • First observedidentity_get_user_info_in_organization
    • First observedidentity_get_user_org_info
    • First observedidentity_get_user_org_roles
    • First observedidentity_get_user_org_service_roles
    • First observedidentity_get_user_orgs
    • First observedidentity_get_user_roles_in_organization
    • First observedidentity_get_user_roles_on_org_with_group_info
    • First observedidentity_get_user_service_roles_in_organization
    • First observedidentity_get_users_by_acct
    • First observedidentity_get_users_by_acct_orgs_by_org_id_info
    • First observedidentity_get_users_by_user_id_orgs_by_org_id_roles
    • First observedidentity_get_users_by_user_id_orgs_by_org_id_service_roles
    • First observedidentity_login_oauth
    • First observedidentity_patch_org
    • First observedidentity_patch_org_roles
    • First observedidentity_patch_user_roles_in_organization
    • First observedidentity_patch_user_roles_on_organization
    • First observedidentity_patch_user_service_roles_in_organization
    • First observedidentity_post_auth_logout
    • First observedidentity_post_login
    • First observedidentity_remove_groups_from_organization
    • First observedidentity_search_groups
    • First observedidentity_search_org_groups
    • First observedidentity_search_users
    • First observedidentity_search_users_in_idp_by_names_and_email
    • First observedidentity_update_group_roles_on_organization
    • First observedidentity_update_user_preferences
    • First observedidentity_update_user_profile
    • First observedmetrics_get_qp_resource_details
    • First observedmetrics_get_resource_criteria
    • First observedmetrics_get_resource_usage_metrics
    • First observedmetrics_get_resource_usage_metrics_by_project
    • First observedmetrics_get_resource_usage_metrics_by_user
    • First observedonboarding_delete_blueprint_by_id
    • First observedonboarding_delete_deployment_by_id
    • First observedonboarding_delete_plan_by_id
    • First observedonboarding_delete_resource_by_id
    • First observedonboarding_delete_wo_execute_plan_by_id
    • First observedonboarding_get_blueprint
    • First observedonboarding_get_blueprint_by_id
    • First observedonboarding_get_deployment
    • First observedonboarding_get_deployment_by_id
    • First observedonboarding_get_plan
    • First observedonboarding_get_plan_by_id
    • First observedonboarding_get_resource
    • First observedonboarding_get_resource_by_id
    • First observedonboarding_get_wo_execute_plan
    • First observedonboarding_get_wo_execute_plan_by_id
    • First observedonboarding_patch_blueprint_by_id
    • First observedonboarding_patch_deployment_by_id
    • First observedonboarding_patch_plan_by_id
    • First observedonboarding_patch_resource_by_id
    • First observedonboarding_post_blueprint
    • First observedonboarding_post_deployment
    • First observedonboarding_post_plan
    • First observedonboarding_post_resource
    • First observedonboarding_post_task_create_deployment
    • First observedonboarding_post_task_create_deployment_bulk
    • First observedonboarding_post_wo_execute_plan
    • First observedonboarding_post_wo_query_unmanaged_machine
    • First observedpolicy_create_policy
    • First observedpolicy_delete_policy
    • First observedpolicy_get_decision_by_id
    • First observedpolicy_get_decisions
    • First observedpolicy_get_policies
    • First observedpolicy_get_policy
    • First observedpolicy_get_policy_type_by_id
    • First observedpolicy_get_policy_type_scope_schema
    • First observedpolicy_get_types
    • First observedproject_delete_project
    • First observedproject_get_about
    • First observedproject_get_all_projects
    • First observedproject_get_project
    • First observedproject_get_projects_by_id_resource_metadata
    • First observedproject_modify_project
    • First observedproject_modify_project_costs
    • First observedproject_modify_project_principals
    • First observedproject_patch_projects_by_id_resource_metadata
    • First observedproject_post_projects
    • First observedproject_sync_projects_principals
    • First observedprovider_add_certificate_library_item
    • First observedprovider_add_consumer_ref_to_cert_library_item
    • First observedprovider_change_password
    • First observedprovider_create_custom_rights_category
    • First observedprovider_create_group
    • First observedprovider_create_right
    • First observedprovider_create_user
    • First observedprovider_delete_1_0_0_sessions_by_id
    • First observedprovider_delete_certificate
    • First observedprovider_delete_certificate_library_item
    • First observedprovider_delete_custom_rights_category
    • First observedprovider_delete_group
    • First observedprovider_delete_oidc_relying_party
    • First observedprovider_delete_right
    • First observedprovider_delete_service_account
    • First observedprovider_delete_token
    • First observedprovider_delete_user
    • First observedprovider_deny_device_authorization
    • First observedprovider_find_device_authorization_request
    • First observedprovider_get_active_theme
    • First observedprovider_get_active_theme_main_flavor
    • First observedprovider_get_certificate
    • First observedprovider_get_certificate_library_item
    • First observedprovider_get_current_session
    • First observedprovider_get_current_session_rights
    • First observedprovider_get_current_sessions
    • First observedprovider_get_group
    • First observedprovider_get_notification_settings
    • First observedprovider_get_oidc_relying_party
    • First observedprovider_get_org
    • First observedprovider_get_org_ldap_settings
    • First observedprovider_get_org_settings
    • First observedprovider_get_preference
    • First observedprovider_get_right
    • First observedprovider_get_rights_category
    • First observedprovider_get_role
    • First observedprovider_get_service_account
    • First observedprovider_get_session
    • First observedprovider_get_theme_file
    • First observedprovider_get_theme_flavor_file
    • First observedprovider_get_token
    • First observedprovider_get_tokens
    • First observedprovider_get_user
    • First observedprovider_get_user_preference
    • First observedprovider_grant_device_authorization
    • First observedprovider_logout_current_session
    • First observedprovider_modify_user_groups
    • First observedprovider_post_1_0_0_sessions
    • First observedprovider_post_1_0_0_users_by_user_urn_take_ownership
    • First observedprovider_query_audit_trail
    • First observedprovider_query_cert_library_item_consumer_refs
    • First observedprovider_query_certificate_library
    • First observedprovider_query_group_users
    • First observedprovider_query_groups
    • First observedprovider_query_oidc_relying_parties
    • First observedprovider_query_orgs
    • First observedprovider_query_preferences_vcf
    • First observedprovider_query_rights
    • First observedprovider_query_rights_categories
    • First observedprovider_query_role_rights
    • First observedprovider_query_service_accounts
    • First observedprovider_query_tenant_roles
    • First observedprovider_query_trusted_certificates
    • First observedprovider_query_user_groups
    • First observedprovider_query_user_preferences
    • First observedprovider_query_users
    • First observedprovider_regenerate_oidc_relying_party_secret
    • First observedprovider_register_oidc_relying_party
    • First observedprovider_replace_cert_library_item_consumer_refs
    • First observedprovider_resolve_entity
    • First observedprovider_revoke_service_account
    • First observedprovider_search_ldap_groups
    • First observedprovider_search_ldap_users
    • First observedprovider_sync_ldap
    • First observedprovider_take_ownership
    • First observedprovider_test
    • First observedprovider_test_ldap
    • First observedprovider_trust_certificate
    • First observedprovider_update_certificate
    • First observedprovider_update_certificate_library_item
    • First observedprovider_update_group
    • First observedprovider_update_notification_settings
    • First observedprovider_update_oidc_relying_party
    • First observedprovider_update_org
    • First observedprovider_update_org_ldap_settings
    • First observedprovider_update_org_settings
    • First observedprovider_update_preference
    • First observedprovider_update_service_account
    • First observedprovider_update_token
    • First observedprovider_update_user
    • First observedprovider_update_user_preference
    • First observedvcfa_connection_status
    • First observedvcfa_describe_operation
    • First observedvro_run_workflow
    • First observedvro_workflow_get_aggregated
    • First observedvro_workflow_get_aggregated_one
    • First observedvro_workflow_get_all
    • First observedvro_workflow_get_one
    • First observedvro_workflow_run_get_all
    • First observedvro_workflow_run_get_by_run_id
    • First observedvro_workflow_run_logs_get_by_run_id

TDQS

C2.4/5.0

Scored across 698 tools

Disambiguation1/5

The 698-tool surface contains many overlapping or duplicate-looking operations across services: for example iaas_get_deployments vs deployment_get_deployments, iaas_get_projects vs project_get_all_projects, multiple cloud-account CRUD variants, and deprecated identity endpoints duplicating provider/cloudapi tools. An agent will struggle to choose the correct endpoint without deep knowledge of VCF service boundaries.

Naming Consistency2/5

Names are mostly snake_case and service-prefixed, but the verb conventions are highly inconsistent: get vs retrieve vs query vs list vs fetch, create vs post, update vs modify vs patch, and path-derived names such as provider_delete_1_0_0_sessions_by_id and provider_post_1_0_0_sessions. The mix of deprecated names, odd abbreviations, and generated endpoint labels makes selection unpredictable.

Tool Count1/5

A 698-tool server is far beyond a reasonable tool surface for an agent-facing MCP server, even for a broad platform. The count includes many deprecated, admin, and duplicate endpoints that should be filtered or consolidated.

Completeness4/5

Coverage is extremely broad across IaaS, catalog, deployments, blueprints, ABX, approvals, identity/provider, projects, policy, onboarding, vRO, event broker, forms, and content. There are likely minor gaps and lifecycle inconsistencies, but the surface appears to cover most VCF Automation workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to access a unified catalog of tools from various APIs (OpenAPI, GraphQL, MCP, Google Discovery) through the MCP protocol.
    2 npm
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables LLM clients to browse and manage VCF Automation projects, catalog items, and deployments through MCP tools, including provisioning, day-2 actions, and deleting infrastructure.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to discover and invoke backend tools over MCP JSON-RPC while enforcing 3-legged OAuth 2.0 identity propagation, role-based access control, and protocol transcoding to REST APIs.
    1
    Apache 2.0