Skip to main content
Glama

arvancai

ArvanCloud MCP server + Agent Skill — manage ArvanCloud from any MCP-capable agent/IDE
(Cursor, Windsurf, Claude Desktop/Code, Codex, OpenCode, and more).

npm GitHub

npm install -g arvancai

Repository: https://github.com/0xamirreza/arvancai
npm: https://www.npmjs.com/package/arvancai
Version: 0.6.1

Requires Node.js ≥ 20 and an ArvanCloud Machine User API key:
https://docs.arvancloud.ir/en/accounts/iam/machine-user

Any Agent / IDE  ──►  Skill (workflows)  +  MCP tools
                              │
                              ▼
                    arvancai (stdio MCP server)
                     │                      │
                     ▼                      ▼
          napi / OpenAPI (local)    mcp.arvancloud.ir (bridged)
          CDN · DNS · IaaS · …      Cloud Logs mgmt (+ future toolsets)

1) Install (auto-wires clients)

export ARVANCLOUD_API_KEY="your-machine-user-key"   # optional but recommended
npm install -g arvancai

On global install, arvancai automatically:

  • merges itself into Cursor ~/.cursor/mcp.json (keeps your other MCP servers)

  • copies the Agent Skill to ~/.cursor/skills/arvancai/

  • wires Windsurf / Claude Desktop / Codex / OpenCode when their config directories already exist

Re-run anytime (e.g. after setting the API key):

export ARVANCLOUD_API_KEY="your-machine-user-key"
arvancai setup

Force every known host path (even if the app is not installed yet):

arvancai setup --all

Skip auto-setup during install:

ARVANCAI_SKIP_SETUP=1 npm install -g arvancai

Check CLI (this must print help — it must not hang):

arvancai --help
which arvancai

Then reload Cursor (or reopen MCP settings) so arvancai shows up under MCP and Skills.

With no arguments, arvancai speaks MCP over stdio (for IDEs). Do not use it as a chat CLI.


Related MCP server: @willpowell8/cursor-cloud-agent-mcp

2) API key & extras

export ARVANCLOUD_API_KEY="your-machine-user-key"

The env may be a bare UUID or already prefixed (Apikey … / apikey … / Bearer …).
Local tools always send Authorization: Apikey <uuid>.
The official MCP bridge sends Arvancloud-Api-Key: apikey <uuid>.

Optional Object Storage (S3 HMAC):

export ARVANCLOUD_S3_ACCESS_KEY_ID="..."
export ARVANCLOUD_S3_SECRET_ACCESS_KEY="..."

Useful flags:

# Inventory / diagnosis only — blocks POST/PUT/PATCH/DELETE + S3 writes + bridged write tools
export ARVANCLOUD_READ_ONLY=1

# Disable hosted MCP bridge (Cloud Logs management)
export ARVANCLOUD_OFFICIAL_MCP=0

# Restrict bridged toolsets (default: all)
export ARVANCLOUD_OFFICIAL_MCP_TOOLSETS=logs

See .env.example. If setup ran without a key, configs keep <MU-KEY> until you re-run arvancai setup with the env set.


3) Manual MCP (optional)

Auto-setup is enough for most users. Manual shape (also under examples/):

{
  "mcpServers": {
    "arvancai": {
      "command": "arvancai",
      "env": {
        "ARVANCLOUD_API_KEY": "<MU-KEY>"
      }
    }
  }
}

You do not need a separate arvancloud remote MCP entry for Logs — arvancai bridges mcp.arvancloud.ir by default. Official docs: developer-tools/mcp.

GUI apps that lack your shell PATH are fine: arvancai setup writes an absolute node + bin/arvancai.js path.


4) Skill vs MCP

Piece

Role

Portability

MCP (arvancai)

Tools / resources / prompts over the MCP protocol

Works on all MCP clients

Skill (skill/SKILL.md)

Agent playbook (tool choice, TLS/acme.sh, Iran DNS gotchas, safety)

Best on Cursor-style Agent Skills; elsewhere paste/link as project instructions

MCP alone is enough for tool calling. Skill improves agent behavior where the host supports skills/rules.


Coverage (short)

Official portal: https://www.arvancloud.ir/fa/dev/api

Area

Status

CDN / DNS / Security / reports

Yes (+ invoke_cdn_api)

DNS zone import/export

import_dns_zone / export_dns_zone

Cloud Server (ECC) / partial DBaaS

Yes

IaaS region quota

get_region_quota (limits, not wallet)

Object Storage (S3 + management API)

Yes

VOD / LIVE / Video Ads

Yes

Edge Computing

Yes

Cloud Container (CaaS)

Yes

AI-as-a-Service

Yes

CloudLogs ingest

write_cloud_logs (local)

CloudLogs management (spaces / sinks / forwarders)

Official hosted MCP bridge (mcp.arvancloud.ir)

Let's Encrypt DNS-01 (acme.sh)

Documented in Skill (skill/references/dns.md)

Drive / Accounts / Changelog

No public REST OpenAPI

Details: ARCHITECTURE.md, docs/bridge-official-mcp.md, CHANGELOG.md, docs/, skill/SKILL.md.


Security

  • Never commit API keys.

  • Prefer READ tools first; destructive tools need exact IDs.

  • Use ARVANCLOUD_READ_ONLY=1 for audit-only agents.

  • See SECURITY.md.


Local development

git clone https://github.com/0xamirreza/arvancai.git
cd arvancai
npm install
npm run build
npm test
export ARVANCLOUD_API_KEY=...
npm start
# wire this checkout into clients:
ARVANCAI_AUTO_SETUP=1 node scripts/postinstall.mjs
# or:
node dist/index.js setup

See DEVELOPMENT.md.

License

MIT

Available Tools

130 tools
check_domain_nameserversCheck domain nameserversB
Read-only

[READ] Check whether domain NS keys indicate activation. Official: GET /cdn/4.0/domains/{domain}/ns-keys/check

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the '[READ]' tag is largely redundant. The description does add the useful context of the official API endpoint mapping, but says nothing about return format or what happens when the domain is not activated.

Agents need to know what a tool does to the world before 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 fragments with little waste. The endpoint string is mildly extraneous 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 one-parameter read tool with no output schema, the description is near-adequate, but 'indicate activation' is never clarified and no notion of the result is given, leaving an agent to guess what a useful outcome looks like.

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% for the single required 'domain' parameter, and the description adds no meaning about the parameter beyond the API path placeholder. 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?

States a specific verb (check) and resource (domain NS keys) with a stated purpose (activation status). It distinguishes from siblings like set_domain_nameservers and use_optional_nameservers by being the read-only check counterpart, though 'indicate activation' is somewhat cryptic.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 context, no prerequisite information, and no named alternative. The agent must infer that this is the verification step after setting nameservers, which is never stated.

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

create_bucketCreate Object Storage bucketC

[WRITE] S3 CreateBucket. Official API Usage curl + SDK create-bucket docs. ACL may be private|public-read per SDK sample.

ParametersJSON Schema
NameRequiredDescriptionDefault
aclNo
bucketYes

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 and openWorldHint=true, so the '[WRITE]' prefix merely duplicates structured data. Nothing is said about global bucket-name uniqueness, required permissions, or side effects of creation, which is where added value would lie for a create 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?

Very short and front-loaded with the '[WRITE] S3 CreateBucket' core, but the middle sentence about official docs is filler that 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 write tool with no output schema and minimal annotations, the description omits bucket naming constraints, uniqueness semantics, and permission requirements an agent needs to invoke it correctly. It is materially under-specified.

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%, so the description must carry the parameter burden, yet it only repeats the ACL enum values (private|public-read) already present in the schema. The required 'bucket' parameter gets no naming/format constraints at 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+resource ('S3 CreateBucket') and flags it as a write, which is enough to separate it from list_buckets, head_bucket, and delete_bucket. However, the trailing references to 'curl + SDK docs' add no purpose information and no explicit 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 list_buckets/put_object_text or any prerequisites, region choice, or naming rules. The only implied usage ('S3 CreateBucket') is the tool's own name restated.

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

create_databaseCreate DBaaS instanceB

[WRITE] OpenAPI IaaS 1.0 CreateDatabaseRequest: POST /regions/{region}/databases with datastoreType + flavorRef from list_database_flavors — do not invent values.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYesCloud Server region id from official docs, e.g. ir-thr-c2
flavorRefYes
datastoreTypeYes

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 openWorldHint=true, so the write and open-world nature is covered structurally. The '[WRITE]' prefix reinforces mutation but adds nothing beyond the annotation. The description does add the useful constraint that values must come from list_database_flavors rather than being invented, but it says nothing about side effects, idempotency, or what happens 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?

A single compact sentence (despite the bracket tag) front-loads the write marker and endpoint, then gives the parameter sourcing rule. No filler, though the OpenAPI/spec reference is somewhat technical noise 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 3-required-parameter write tool with no output schema and only 33% schema coverage, the description is thin. It identifies the endpoint and points to a sibling for valid values, which is genuinely helpful, but omits what the call returns, error conditions, region format specifics (left to schema), and consequences of creation.

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

Parameters3/5

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

Schema coverage is only 33% (only region has a description), so the description must compensate. It specifies that datastoreType and flavorRef should be obtained from list_database_flavors, which adds sourcing guidance for two otherwise undocumented parameters. This partially compensates but leaves the actual formats, allowed values, and constraints for both parameters unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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: 'CreateDatabaseRequest: POST /regions/{region}/databases' and the '[WRITE]' marker makes the operation type unambiguous. It doesn't differentiate itself from siblings by name, but the verb+resource pairing is clear enough for an agent to identify the tool.

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

Usage Guidelines3/5

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

It implies prerequisites ('datastoreType + flavorRef from list_database_flavors — do not invent values'), which is a useful directive to consult a sibling first. However, it doesn't state when to use this tool vs. alternatives or what conditions warrant creating a database; the guidance is limited to parameter sourcing rather than usage context.

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

create_dns_recordCreate DNS recordA

[WRITE] Create a DNS record. Official: POST /cdn/4.0/domains/{domain}/dns-records. value shape depends on type (see docs/adding-records). Inspect current records before creating duplicates.

ParametersJSON Schema
NameRequiredDescriptionDefault
ttlNo
nameYes
typeYes
cloudNo
usageNo
valueYesType-specific value object/array as documented for the record type
domainYes
selectorNo
matching_typeNo
ip_filter_modeNo
upstream_httpsNo

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, openWorldHint=true, so the agent knows this is a mutating but non-destructive external-facing write. The description adds that value shape depends on type and references docs, plus a duplicate-avoidance workflow. However, it doesn't disclose auth requirements, success/failure semantics, or what the response contains for a complex 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.

Conciseness4/5

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

Three short, front-loaded clauses: a write marker, endpoint, and a usage hint. No wasted words, though the docs reference is somewhat terse. Efficient for the space given.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 11 params, nested objects, no output schema, and a 9% schema description coverage, the description is far too sparse. It fails to explain the excluded/mutually-exclusive nature of parameters, type-specific value requirements, or return behavior, leaving the agent underinformed 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 9% for 11 parameters, so the description must compensate. It only addresses 'value shape depends on type' and omits any meaning for the many undocumented parameters (ttl, cloud, usage, selector, matching_type, ip_filter_mode, upstream_https) and even the base ones. Most parameters remain opaque to the agent.

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

Purpose5/5

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

States a specific verb+resource ('Create a DNS record'), names the exact API endpoint, and is clearly distinguishable from siblings like update_dns_record, delete_dns_record, and set_dns_record_cloud. The '[WRITE]' tag and endpoint make the operation unambiguous.

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

Usage Guidelines4/5

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

Gives a clear directive ('Inspect current records before creating duplicates') which implies using list_dns_records first, and points to docs for value shape. It provides usage context but doesn't explicitly name the sibling tools or state when NOT to use this (e.g., use update_dns_record for existing records).

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

create_edge_routeCreate Edge Computing routeB

[WRITE] OpenAPI Route schema: POST /edge-computes/{edgeComputeId}/routes — required domain, url, status (active|inactive).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPath pattern / uri-template e.g. /app/*
domainYes
statusYes
edge_compute_idYes

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 and openWorldHint=true, and the [WRITE] tag is consistent with that. The description adds the HTTP method/endpoint and the required fields, but says nothing about permissions, side effects, or what happens to an existing route on the same domain.

Agents need to know what a tool does to the world before 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 dense sentence with the [WRITE] signal front-loaded and no filler. It is efficient, though the telegraphic OpenAPI-style phrasing borders on under-explanation rather than 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 4-required-param write tool with no output schema and only partial schema descriptions, the description gives the endpoint and required fields but leaves auth, error behavior, and the role of edge_compute_id unaddressed. It is adequate but not complete for a mutation 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 only 25%, so the description must compensate, and it partially does by naming three of the four required parameters (domain, url, status) and the status enum values. However, it omits edge_compute_id, and the url path-pattern format is already supplied by the schema, so it adds only moderate 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 (create) and resource (Edge Computing route) and pins it to the concrete endpoint POST /edge-computes/{edgeComputeId}/routes, so it is clearly distinguishable from update_edge_route, delete_edge_route, and list_edge_routes by name alone. It stops short of explicitly naming 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?

The [WRITE] tag signals a mutation, but there is no when-to-use guidance, no prerequisites (e.g. the edge compute must already exist), and no mention of the update/delete alternatives. An agent must infer usage purely 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.

create_firewall_ruleCreate CDN firewall ruleC

[WRITE] POST /domains/{domain}/firewall/rules. Official FA samples: name, note, is_enabled, action (allow|deny|challenge|bypass), action_details, filter_expr.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
noteNo
actionYesallow | deny | challenge | bypass (FA samples)
domainYes
is_enabledNo
filter_exprYes
action_detailsNo

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 and openWorldHint=true, so the write and open-world nature is known. The description adds the HTTP method and endpoint path, plus the action enum values, but does not disclose permissions, side effects, idempotency, or conflict 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 compact and front-loads the write method and endpoint before listing sample fields. 'Official FA samples' is cryptic, but the overall structure is efficient and not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 7 parameters, 4 required, low schema coverage, no output schema, and minimal annotations. The description omits required-parameter guidance, detailed parameter semantics, side effects, and error or return behavior, leaving significant 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 description coverage is only 14%, so the description must compensate. It lists several field names—name, note, is_enabled, action, action_details, filter_expr—and implies domain via the URL, but does not explain filter_expr syntax, action_details structure, required status, or the meaning of most fields.

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

Purpose4/5

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

The [WRITE] tag and POST /domains/{domain}/firewall/rules endpoint make it clear this creates a firewall rule. The resource path is specific, though the description does not explicitly distinguish it from update_firewall_rule or delete_firewall_rule beyond the verb/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 guidance on when to use this tool versus alternatives such as update_firewall_rule, nor any prerequisites or conditions. The endpoint alone implies creation but does not tell the agent when creation is appropriate.

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

create_rate_limit_ruleCreate rate-limit ruleC

[WRITE] POST /domains/{domain}/rate-limit/rules. Official samples include url_pattern, rate, time_duration, is_enabled, description, exclude_sources, burst, block_duration, allowed_methods, action, action_details.

ParametersJSON Schema
NameRequiredDescriptionDefault
rateYes
burstNo
actionNo
domainYes
is_enabledNo
descriptionNo
url_patternYes
time_durationYes
action_detailsNo
block_durationNo
allowed_methodsNo
exclude_sourcesNo

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 and openWorldHint=true, so the '[WRITE]' tag is redundant with structured data. Beyond that the description adds nothing about side effects, idempotency, permission requirements, whether the rule takes effect immediately, or interaction with existing rules — meaningful gaps for a mutating 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 sentences, front-loaded with the operation type and endpoint, with no filler. The brevity is efficient even though the content is thin.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 mutation tool with a nested object (action_details), zero schema descriptions, and no output schema, the description is far too sparse. It names fields but never equips the agent to supply valid values, and it omits any indication of what the call returns or what happens on success.

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% across 12 parameters, so the description carries the full burden — and it only recites parameter names ('Official samples include url_pattern, rate, time_duration...') without any semantics. Units for rate/time_duration/burst/block_duration, the meaning of action and action_details, and the format of exclude_sources/allowed_methods are all unexplained.

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 identifies a write operation against a specific REST endpoint (POST /domains/{domain}/rate-limit/rules), which does convey the resource and the mutation intent. However, it never explains what a rate-limit rule is or what creating one accomplishes, so it largely restates the tool name plus the URL. The create_ prefix in the name already does most of the 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 tool versus update_rate_limit_rule, list_rate_limit_rules, or update_rate_limit_settings, nor any prerequisites (domain existence, plan limits, ordering relative to reprioritize_rate_limit_rules). 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.

create_serverCreate Cloud Server instanceA

[WRITE] Offline FA API Usage + OpenAPI IaaS 1.0: POST /ecc/v1/regions/{region}/servers with name, network_id, flavor_id, image_id, security_groups[{name}], ssh_key, key_name, count. Obtain IDs from list tools — never invent UUIDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
countNo
regionYesCloud Server region id from official docs, e.g. ir-thr-c2
ssh_keyNo
image_idYes
key_nameNo
flavor_idYes
network_idYes
security_groupsYesSecurity group entries: [{ "name": "<sg-id-or-name>" }]

TDQS

A3.8/5.0
Behavior3/5

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

The [WRITE] tag and the guidance to never invent UUIDs add useful behavioral context. Annotations already declare readOnlyHint=false, openWorldHint=true, and destructiveHint=false, so the safety profile is partly covered. The description does not disclose whether creation requires elevated permissions, what happens if the name already exists, or what the response returns.

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

Conciseness4/5

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

Single compact sentence with the operation marker front-loaded and the endpoint and parameters in one line. Dense but readable, no filler.

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

Completeness3/5

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

No output schema, no annotations covering return format, and only 22% schema coverage. The description covers the call well enough to invoke it, but for a write operation creating a server with 9 parameters, it omits success criteria, error behavior, and any response shape an agent would need to confirm 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 low (22%), with only the region and security_groups parameters having descriptions. The description lists the parameters inline (name, network_id, flavor_id, image_id, security_groups[{name}], ssh_key, key_name, count), which maps the names to the API call but adds no syntax or format details beyond the schema. It does compensate a bit for the low coverage by enumerating parameters, but not enough to reach 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (create) and resource (Cloud Server instance) and even the exact HTTP endpoint, POST /ecc/v1/regions/{region}/servers. It is clearly distinguishable from sibling read tools like list_servers, get_server, and power_on_server.

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

Usage Guidelines4/5

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

Explicitly says to obtain IDs from list tools and never invent UUIDs, which is strong guidance for required params. It doesn't spell out when-not-to-use or reference specific sibling list tools by name, but the context is clear.

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

create_troubleshootCreate CDN troubleshootA

[WRITE] Start a new troubleshoot for a domain. Official: POST /domains/{domain}/troubleshoots. Body fields beyond empty POST are UNKNOWN / NOT DOCUMENTED in product samples — send empty object unless you have verified fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoOptional JSON body if documented for your use case
domainYes

TDQS

A4.2/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-destructive, open-world operation. The description reinforces the write nature with '[WRITE]' and adds important behavioral context that body fields are undocumented, so the agent should send an empty object unless fields are verified.

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

Conciseness5/5

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

Extremely concise and front-loaded: the write nature, action, endpoint, and body caveat are all stated without filler. Every sentence carries actionable 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 write tool with annotations covering safety and no output schema, the description is largely complete: it identifies the action, endpoint, required domain path, and undocumented body behavior. It could be slightly richer by noting how to retrieve the resulting troubleshoot, but that is partly covered by sibling tools.

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 50%, and the description compensates by clarifying that the official endpoint takes the domain in the path and that the optional body is effectively unknown beyond an empty object. This adds meaningful constraint beyond the schema's generic body description.

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

Purpose5/5

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

States a specific verb and resource ('Start a new troubleshoot for a domain') and gives the official endpoint. It clearly distinguishes creation from sibling read operations like list_troubleshoots and get_latest_troubleshoot.

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

Usage Guidelines3/5

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

The description implies when to use it by saying it starts a new troubleshoot, but it does not explicitly name alternatives or when-not to use it. The body guidance ('send empty object unless you have verified fields') is useful invocation guidance 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.

create_vod_channelCreate VOD channelC

[WRITE] Official FA/EN API Usage + OpenAPI: POST /vod/2.0/channels with documented fields (title, description, secure_link_*, ads_enabled, present_type, campaign_id).

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
ads_enabledNo
campaign_idNo
descriptionNo
present_typeNo
secure_link_keyNo
secure_link_enabledNo
secure_link_with_ipNo

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 and destructiveHint=false, so the [WRITE] tag is largely redundant. Beyond that the description says nothing about side effects, permissions required, or what happens on partial field sets, leaving the mutation profile mostly uncovered.

Agents need to know what a tool does to the world before 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-loaded with the [WRITE] tag and the operation, then the field list. The 'Official FA/EN API Usage + OpenAPI' preamble is boilerplate that consumes 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?

A write tool with 8 parameters at 0% schema coverage and no output schema needs substantially more: field semantics, required-vs-optional cues, and any post-creation behavior. The description is far too thin for the complexity.

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 0%, so the description must carry parameter meaning. It only enumerates field names (title, description, secure_link_*, ads_enabled, present_type, campaign_id) without explaining types, allowed values, defaults, or the interaction between secure_link_key/enabled/with_ip. Naming is not 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 [WRITE] marker plus the endpoint POST /vod/2.0/channels make it clear this creates a VOD channel, and the name matches. It implicitly distinguishes itself from the read siblings (get_vod_channel, list_vod_channels) by being the write variant, though it never states the differentiation explicitly.

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

Usage Guidelines2/5

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

No guidance on when to use this versus list_vod_channels, get_vod_channel, or the generic invoke_vod_api sibling. No prerequisites, no notes on what makes a channel valid, no mention of alternatives.

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

delete_bucketDelete Object Storage bucketA
Destructive

[DESTRUCTIVE] S3 DeleteBucket (FA SDK delete-bucket). Bucket must be empty per product docs.

ParametersJSON Schema
NameRequiredDescriptionDefault
bucketYes

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, readOnlyHint=false and openWorldHint=true, so the danger profile is carried by structured data. The description adds a genuinely useful operational constraint (bucket must be empty), but says nothing about irreversibility, required permissions, or the error surfaced on a non-empty bucket.

Agents need to know what a tool does to the world before 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 destructive flag first and the precondition second. The 'FA SDK delete-bucket' parenthetical is mildly redundant with the tool name but costs little.

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

Completeness3/5

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

For a single-parameter destructive tool with full annotation coverage and no output schema, the precondition note is the key addition. Still missing are failure behavior (non-empty bucket), confirmation/permission expectations, and any hint about the identifier the agent must 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?

Only one parameter and schema description coverage is 0%, so the description must compensate and it does not — no indication of the identifier format, naming rules, or whether it is a name or an ID. The parameter name 'bucket' is self-evident, keeping this at the minimum-viable baseline.

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

Purpose5/5

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

States a specific verb and resource ('Delete Object Storage bucket') and pins the underlying operation ('S3 DeleteBucket'). The bucket-level scope cleanly separates it from the object-level sibling delete_object without the reader needing either schema.

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

Usage Guidelines3/5

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

It gives a precondition ('Bucket must be empty per product docs'), which implies when the call will succeed, but offers no explicit when-to-use vs alternatives guidance and never points at delete_object for the empty-the-bucket-first workflow.

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

delete_dns_recordDelete DNS recordA
Destructive

[DESTRUCTIVE] Permanently delete one DNS record. Official: DELETE /cdn/4.0/domains/{domain}/dns-records/{id}. Requires exact record_id — never infer or delete multiple.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
record_idYesExact DNS record id returned by list_dns_records / get_dns_record

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered; the description reinforces it with '[DESTRUCTIVE] Permanently delete'. It adds genuinely new behavioral context by forbidding inference of record_id and forbidding multi-delete, which no annotation conveys. It does not describe failure modes or post-delete effects on CDN behavior.

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

Conciseness5/5

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

Three short, front-loaded fragments: destructive flag first, action second, constraint third. No filler and every clause carries operational 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 destructive mutation with annotations and no output schema, the description covers the safety profile, the id precondition, and the endpoint. It is nearly complete; only edge behavior (irreversibility confirmation, effect on related records/domain resolution) is left implicit.

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

Parameters3/5

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

Schema coverage is 50% (record_id documented, domain only constrained by pattern), so the schema carries part of the load. The description adds meaning for record_id ('exact... never infer'), but says nothing about the domain parameter or id format beyond that. Baseline 3 fits a 2-param tool where the schema does most of the work.

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

Purpose5/5

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

States a specific verb and resource (permanently delete one DNS record), flags it as destructive up front, and gives the exact API endpoint. It is trivially distinguishable from the sibling DNS tools (list/get/create/update_dns_record) without opening any schema.

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

Usage Guidelines4/5

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

Provides a clear guardrail — 'Requires exact record_id — never infer or delete multiple' — plus the note that the id comes from list/get_dns_record (in the schema). It does not explicitly name a sibling tool or describe prerequisites/escalation paths, so it stops short of full when/when-not guidance.

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

delete_edge_routeDelete Edge Computing routeC
Destructive

[DESTRUCTIVE] OpenAPI: DELETE /edge-computes/{edgeComputeId}/routes/{route_id}

ParametersJSON Schema
NameRequiredDescriptionDefault
route_idYes
edge_compute_idYes

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 and openWorldHint=true, so the '[DESTRUCTIVE]' tag merely repeats structured data with no added value. The description does not disclose irreversibility, permission requirements, or downstream effects on live traffic — the context an agent needs for a delete 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?

A single compact line with the destructive marker front-loaded. Nothing is wasted, though the 'OpenAPI:' prefix is largely noise for an agent that already has the tool name and schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 and zero parameter documentation, the description is far too thin. It should at minimum state whether deletion is irreversible, what state/impact results, and how to identify the correct route and edge compute.

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%, so both required parameters are undocumented anywhere. The OpenAPI path template does map edgeComputeId and route_id to their positions, which is marginally useful, but it adds no format, constraint, or lookup guidance 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 specific verb and resource (DELETE edge route) and the exact REST path, so the operation identity is clear. However, it offers no differentiation from siblings like update_edge_route beyond the verb, and never explains what an edge route is or what its removal implies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 update_edge_route, list_edge_routes, or whether prerequisites exist (e.g., route must be detached from a deployment). Context is left entirely to inference.

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

delete_firewall_ruleDelete CDN firewall ruleB
Destructive

[DESTRUCTIVE] DELETE /domains/{domain}/firewall/rules/{id}. Requires exact rule_id — never delete multiple.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
rule_idYesExact rule id from list/get — never invent

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false and openWorldHint=true, so the "[DESTRUCTIVE]" tag is largely redundant. The description does add a genuine behavioral constraint — one rule per call, exact id required — but says nothing about reversibility, error behavior for a nonexistent id, or permission requirements. With annotations carrying the safety profile, this is an adequate but not rich addition.

Agents need to know what a tool does to the world before 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 clauses, front-loaded with the destructive warning and the endpoint, with no filler. The bracketed tag duplicates the annotation rather than adding information, which 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?

For a destructive mutation with no output schema, the annotations cover the safety profile and the description covers the id requirement, but it omits whether the deletion is irreversible, what happens when the id does not exist, and which tool to use to obtain the id. An agent can call it correctly but must infer the surrounding 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 coverage is 50%: rule_id is documented in the schema ("Exact rule id from list/get — never invent") and the description reinforces it with "Requires exact rule_id", but the domain parameter has only a regex pattern and no prose anywhere. The description compensates for the documented half but adds nothing for domain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid 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 CDN firewall rule) and even gives the exact endpoint path, which is more than the tool name alone conveys. It is distinguishable from list_firewall_rules, get_firewall_rule, create_firewall_rule and update_firewall_rule, though the differentiation comes mostly from the name rather than from the description explicitly contrasting 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?

"Requires exact rule_id" and "never delete multiple" imply the caller must first resolve the id via list/get, which is useful usage guidance. However, it never names the alternative tools (e.g. update_firewall_rule to modify, list_firewall_rules to find the id) or states when-not to use it, 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.

delete_objectDelete objectC
Destructive

[DESTRUCTIVE] S3 DeleteObject (FA SDK delete-object). Requires exact bucket+key.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes
bucketYes

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, readOnlyHint=false and openWorldHint=true, and the '[DESTRUCTIVE]' tag merely restates that. The description adds nothing beyond annotations and schema: no note on overwrite/recoverability, permission requirements, or behavior when the key 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?

Very compact and front-loaded: the destructive tag, the operation, and the key constraint come in one line with no filler. It is efficient, though its terseness is partly under-specification rather than pure 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 two-parameter delete with annotations covering the safety profile, this is minimally viable. However, with 0% schema description coverage and no output schema, the agent gets no bucket naming rules, key path format, or post-deletion/error semantics from 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 0%, so the description must carry parameter meaning. It names both parameters (bucket, key) and adds the semantic that matching must be exact (no prefix/pattern), but supplies no format, naming constraints, or examples for either required 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+resource (S3 DeleteObject on an object) and maps it to the SDK operation 'delete-object', which distinguishes it from sibling deletes like delete_bucket or delete_edge_route. It doesn't explicitly contrast with list_objects/put_object_text, but the resource 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?

No when-to-use or when-not-to-use guidance, no alternatives named (delete_bucket, put_object_text, head_object are all adjacent siblings). The only conditional information is the precondition 'requires exact bucket+key', which is a requirement, not usage routing.

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

delete_rate_limit_ruleDelete rate-limit ruleC
Destructive

[DESTRUCTIVE] DELETE /domains/{domain}/rate-limit/rules/{id}

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
rule_idYesExact rule id from list/get — never invent

TDQS

C2.6/5.0
Behavior2/5

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

The '[DESTRUCTIVE]' tag merely restates the already-declared destructiveHint=true annotation, adding no new information. The description does not disclose consequences (permanent removal, effect on live rate-limiting traffic), required permissions, or reversibility, which is the kind of context that would earn 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.

Conciseness4/5

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

A single short line that is front-loaded with the destructive marker and the endpoint, with zero filler. It is efficient, though its brevity borders on under-specification rather than conciseness.

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

Completeness2/5

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

For a destructive mutation tool with no output schema, the description is far too thin: it omits irreversibility warnings, permission requirements, and any behavioral detail beyond what the annotations already state. An agent can guess the action but has no basis to confirm 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?

With 50% schema description coverage, the rule_id parameter is well documented in the schema ('Exact rule id from list/get — never invent'), while domain is only implicitly specified. The path template shows where each parameter is placed, which is modest added value, but no format or sourcing guidance is given for domain, so the description neither compensates nor detracts.

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 (DELETE) and resource (rate-limit rule) via the REST path, so the basic action is unambiguous. However, it adds nothing beyond the tool name and does not distinguish this tool from its close siblings delete_firewall_rule, delete_dns_record, or delete_edge_route, which follow the same pattern.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 rule versus disabling, updating, or reprioritizing it, nor any mention of prerequisites such as obtaining the rule id first. The agent is left to infer usage purely from the name and path template.

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

deploy_edge_computeDeploy Edge ComputeC

[WRITE] OpenAPI: POST /edge-computes/deploy — required name, bundled_code; optional namespace, tag.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNo
nameYes
namespaceNo
bundled_codeYes

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 and openWorldHint=true, consistent with the [WRITE] tag, so no annotation is contradicted. But the description adds nothing about deployment behavior - whether it is synchronous, what side effects occur, whether redeployment replaces an existing compute, or what auth is needed - which is a gap for an open-world write 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?

A single front-loaded line with the [WRITE] marker and endpoint first, then parameters. There is no filler, though the terse API-doc style sacrifices explanatory value for brevity.

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

Completeness2/5

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

For a mutating, open-world tool with no output schema and 0% schema description coverage, the description is too thin - it omits deployment semantics, side effects, and return expectations. It conveys only the endpoint shape and parameter 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 0%, so the description must compensate, and it does enumerate all four parameters with required (name, bundled_code) vs optional (namespace, tag) marked. That said, the required/optional split duplicates the schema's 'required' array, and it gives no meaning for what bundled_code or namespace represent, so it only partially fills the 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 verb 'deploy' plus the resource 'edge compute' identifies the operation, and the [WRITE] marker plus the POST endpoint are useful. However, it never explains what deploying an edge compute actually is or how it differs from siblings like create_edge_route, list_edge_computes, or get_edge_deployment, so the purpose is only minimally distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 prerequisites, and no reference to alternatives despite a large sibling set containing list_edge_computes, get_edge_compute, and various create_* tools. The description reads as an endpoint stub rather than a usage instruction.

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

get_accelerationGet CDN acceleration settingsC
Read-only

[READ] GET /domains/{domain}/acceleration (CDN Go SDK). Offline FA documents PATCH bodies for CSS/JS optimization.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, openWorldHint, and destructiveHint. The description adds only the [READ] tag, which echoes readOnlyHint, and a confusing sentence about PATCH bodies that does not clarify behavior of this read operation (e.g., return format, 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?

Two sentences, front-loaded with the essential HTTP method and endpoint. The second sentence about offline FA documents is cryptic and does not clearly earn its place, making the structure slightly noisy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn 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 tool with annotations and no output schema, the description gives the endpoint and a hint that the settings relate to CSS/JS optimization. However, it lacks parameter semantics and does not describe what the response contains, leaving some gaps for an agent to fill.

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 single domain parameter has no description. The path template GET /domains/{domain}/acceleration implies the parameter is the domain name, but no format details or constraints are added beyond what the schema pattern already provides.

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

Purpose4/5

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

The description states a specific verb and resource with the [READ] tag and GET /domains/{domain}/acceleration, making it clear this retrieves CDN acceleration settings for a domain. It implicitly distinguishes from the sibling update_acceleration by being read-only, but does not explicitly name the alternative.

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

Usage Guidelines2/5

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

No when-to-use guidance, prerequisites, or alternatives are given. The only contextual hint is a cryptic mention of offline FA documents for PATCH bodies, which does not tell the agent when to select this tool over siblings like get_caching_settings.

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

get_ai_endpointGet AI endpointC
Read-only

[READ] OpenAPI: GET /endpoints/{endpoint_id}

ParametersJSON Schema
NameRequiredDescriptionDefault
endpoint_idYes

TDQS

C2.1/5.0
Behavior2/5

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

The [READ] marker and GET path restate readOnlyHint=true rather than adding behavioral context. Nothing is said about permissions, error behavior (e.g. what happens with an unknown or unauthorized endpoint_id), or the response shape, so the description adds no value beyond the existing 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 a single short line with no waste and the read tag is front-loaded, but the brevity reflects under-specification rather than disciplined concision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, no parameter documentation, and annotations covering only read-only/open-world safety, the description leaves an agent without what an AI endpoint is or what the call returns. For a single-resource getter it is barely adequate.

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?

There is exactly one parameter, endpoint_id, with 0% schema description coverage, so the description carries the burden. The path template hints that endpoint_id identifies the resource, but no format, origin, or lookup semantics are given.

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 name and title: "OpenAPI: GET /endpoints/{endpoint_id}" with a [READ] tag. It confirms a single-resource read, but "endpoints" is generic and it never explains what an AI endpoint is or how it differs from list_ai_endpoints or get_ai_model beyond the HTTP verb and 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?

No guidance on when to call this versus list_ai_endpoints or other get_* siblings is given. An agent must infer that a single endpoint_id lookup is the distinguishing condition, which is never stated.

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

get_ai_modelGet AI modelC
Read-only

[READ] OpenAPI: GET /models/{model_id}

ParametersJSON Schema
NameRequiredDescriptionDefault
model_idYes

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 and openWorldHint=true, and the bracketed "[READ]" merely repeats that safety profile. No additional behavior is disclosed: no auth requirements, rate limits, error semantics, or meaning of the returned model.

Agents need to know what a tool does to the world before 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 line is maximally brief and front-loaded, with no wasted words, but that brevity stems from under-specification rather than disciplined 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 and a bare one-line description, an agent gets no picture of what an AI model object contains or what a successful call returns. Deferring entirely to the external "OpenAPI" spec leaves the definition 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 0%, so the schema alone leaves model_id undocumented. The path template /models/{model_id} does tie the parameter to the resource identifier, adding marginal meaning, but no format or sourcing guidance is given.

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 name and title ("Get AI model") plus the raw HTTP verb and path. It conveys retrieval of a model by ID only implicitly, and does not distinguish this tool from the sibling list_ai_models.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 alternative list_ai_models. The only hint is the GET verb, which an agent must infer means read-one rather than read-many.

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

get_bucket_metricsGet Object Storage bucket metricsC
Read-only

[READ] OpenAPI storage/1.0.0 + FA metrics: GET https://storage.arvanapis.ir/v1/buckets/{bucketName}/metrics

ParametersJSON Schema
NameRequiredDescriptionDefault
bucketYes

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 and openWorldHint=true, and the '[READ]' tag merely repeats that. The description adds only the API base URL and version, which is mildly useful for endpoint context but says nothing about what metrics are returned, time ranges, authentication, or rate limits. No contradiction with annotations.

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

Conciseness3/5

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

A single compact line with no filler, and the read/endpoint information is front-loaded. However, brevity here reflects under-specification rather than disciplined 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?

With no output schema and 0% parameter coverage, the description should explain what metrics are returned and what the bucket parameter expects; it does neither. For a metrics retrieval endpoint, the return-value semantics are the single most important thing an agent needs, and they are absent.

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%, so the schema only says 'bucket' is a non-empty string. The URL template '{bucketName}' is the sole hint that the parameter is a bucket name, with no format, example, or namespace/account qualification. This barely compensates for the coverage gap.

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 in URL form ('GET .../buckets/{bucketName}/metrics'), with no statement of what the metrics actually are or what they measure. It identifies the resource and verb only implicitly through the endpoint path, and does nothing to distinguish it from siblings like get_storage_report or list_storage_api_buckets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 get_storage_report. The endpoint reference implies this returns metrics for one bucket, but nothing tells the agent when this is the right tool versus other storage reporting tools.

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

get_caas_deploymentGet CaaS deploymentC
Read-only

[READ] OpenAPI: GET /apis/apps/v1/namespaces/{namespace}/deployments/{name}

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
zoneYesCaaS zone from OpenAPI servers, e.g. ir-tbz-sh1 (Shahriar) or ir-thr-ba1 (Bamdad)
namespaceYesKubernetes namespace / project name

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 and openWorldHint=true, so the safety profile is covered. The '[READ]' prefix is redundant with readOnlyHint and the description adds no further context such as required permissions, error behavior for missing deployments, 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.

Conciseness3/5

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

It is a single terse line with no filler, which satisfies conciseness. But brevity here reflects under-specification rather than efficient communication, since the single sentence is essentially a raw API 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?

For a read tool with no output schema, the description should carry more: what the deployment represents, whether the response is a single object, and any scoping constraints. None of that is present, leaving the definition only marginally usable.

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%; zone and namespace carry their own schema descriptions, but 'name' has no description and the tool description does not explain what the deployment name is or how it relates to namespace. The description adds zero parameter 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 conveys a read of a single deployment resource via the raw HTTP path GET .../deployments/{name}, which implies verb+resource. However it relies entirely on the REST path rather than stating in plain terms what a 'CaaS deployment' is or how it differs from the sibling list_caas_deployments (the get/list distinction is only inferable from the path shape).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 list_caas_deployments, get_caas_pod, list_caas_services, or the generic invoke_caas_api sibling. The agent must infer that this fetches one deployment by namespace+name from the path alone.

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

get_caas_podGet CaaS podC
Read-only

[READ] OpenAPI: GET /api/v1/namespaces/{namespace}/pods/{name}

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
zoneYesCaaS zone from OpenAPI servers, e.g. ir-tbz-sh1 (Shahriar) or ir-thr-ba1 (Bamdad)
namespaceYesKubernetes namespace / project name

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 and openWorldHint=true, so the safety profile is covered by structured data. The description's only contribution is the redundant [READ] tag — it adds no context about what is returned, whether the zone must be reachable, or any failure/auth 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 a single line with no wasted words and the resource is front-loaded, which is structurally clean. However, the brevity is under-specification rather than genuine conciseness, so it cannot score higher.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 explanatory prose, the description leaves the agent without any sense of what a pod retrieval returns or what 'CaaS pod' means in this API surface. For a three-required-parameter read tool this is substantially incomplete, even though the operation itself is simple.

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 67%: zone and namespace are documented in the schema but name is not. The description adds no parameter meaning at all — it only echoes the path template, leaving the bare 'name' parameter unexplained.

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 line names a verb (GET) and a resource (pods/{name} under a namespace), so an agent can infer it fetches a single pod. But it is framed as a raw OpenAPI path rather than a plain-language statement of purpose, and it does nothing to distinguish itself from siblings like list_caas_pods or get_caas_pod_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 when-to-use guidance whatsoever: no mention of when to call this instead of list_caas_pods, get_caas_pod_logs, or invoke_caas_api, and no prerequisites or context. The only cue is the bracketed [READ] tag, 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.

get_caas_pod_logsGet CaaS pod logsD
Read-only

[READ] OpenAPI: GET /api/v1/namespaces/{namespace}/pods/{name}/log

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
zoneYesCaaS zone from OpenAPI servers, e.g. ir-tbz-sh1 (Shahriar) or ir-thr-ba1 (Bamdad)
namespaceYesKubernetes namespace / project name

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the '[READ]' prefix adds nothing. The description discloses nothing beyond the annotations — no note on log retention, container selection, tail/since behavior, or what happens when the pod has multiple containers.

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 that brevity is under-specification rather than conciseness — the single fragment carries no actionable content beyond the endpoint string, so no sentence earns its place in a useful way.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 only two annotations, the description should at minimum say what is returned (raw log text, which container, how much history). None of that is present, leaving the agent unable to predict the call's result.

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 67% (zone and namespace documented, name not). The description contributes no parameter meaning beyond echoing the path template, so it fails to compensate for the uncovered parameter or to explain log-specific options (container, tailLines, sinceSeconds) that a logs endpoint typically needs.

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 only an endpoint reference plus a redundant '[READ]' tag; it never states in prose that it retrieves logs for a named pod. The GET path does imply the resource (pod log under a namespace), so it is slightly more than a pure restatement of the title, but it is essentially a tautology with 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 Guidelines1/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 close siblings like get_caas_pod, list_caas_pods, and invoke_caas_api, the agent gets no help deciding which one applies, nor any prerequisite (e.g. pod must exist/running) for fetching logs.

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

get_caching_settingsGet CDN caching settingsA
Read-only

[READ] Get caching settings for a domain. Official: GET /cdn/4.0/domains/{domain}/caching

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations cover readOnlyHint and destructiveHint so safety is clear. The [READ] tag and official GET endpoint add routing context but don't explain auth, output format, or rate limits 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.

Conciseness5/5

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

Two precise sentences with no waste, front-loaded with the key verb and resource followed by the official endpoint for reference.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 1-param read tool with annotations covering safety, the description is adequately complete, though it could briefly note the response returns caching configuration details.

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

Parameters3/5

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

Schema coverage is 0% for the single domain parameter, but the required domain is clearly indicated in both schema and endpoint path. The description doesn't significantly enrich meaning beyond what the schema enforces, making baseline 3 appropriate for 1 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 (Get) and resource (caching settings for a domain), clear enough to distinguish from update_caching_settings and purge_cache among siblings.

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

Usage Guidelines3/5

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

The [READ] prefix and GET endpoint imply usage contexts but no explicit when-to-use guidance or named alternatives beyond what the description states.

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

get_cdn_geo_reportCDN geo traffic map reportC
Read-only

[READ] OpenAPI + ar-prometheus-exporter: GET /domains/{domain}/reports/traffics/map?period=

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
periodNoReport period (ar-prometheus-exporter METRICS_PERIOD)3h

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 and openWorldHint=true; the '[READ]' tag merely echoes readOnlyHint rather than adding new behavioral context. There is no disclosure of return shape, pagination, aggregation granularity, or auth/rate-limit considerations for this report endpoint.

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

Conciseness3/5

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

It is a single compact line with no wasted words and front-loads the [READ] marker, but its brevity stems from under-specification rather than efficiency. Every word is 'used' but little useful information is 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?

For a report tool with no output schema, the description should describe what the report returns (geo traffic distribution over a period). Instead it gives only the HTTP route, leaving the agent unable to know what data or aggregation to expect.

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%: 'period' is documented in the schema (including the METRICS_PERIOD note), but 'domain' carries only a pattern with no description. The description's endpoint string mentions {domain} and ?period= but adds no semantic meaning (e.g., what a geo map aggregation returns per period) beyond the schema.

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

Purpose2/5

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

The description is essentially a raw endpoint reference ('GET /domains/{domain}/reports/traffics/map?period='), restating technical routing rather than stating in plain language what the tool produces. Only the name/title ('CDN geo traffic map report') convey the geo/map scope, and the description does not differentiate it from siblings like get_cdn_traffic_report, get_cdn_visitors_report, or get_cdn_response_time_report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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, or alternative guidance is given. With several sibling CDN report tools (traffic, visitors, response-time, status), the description offers no signal about when the geo/map report is the right choice versus those.

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

get_cdn_high_request_ipsCDN high-request IPs reportB
Read-only

[READ] OpenAPI + ar-prometheus-exporter: GET /domains/{domain}/reports/high-request-ips?period= (Professional+ plans)

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
periodNoReport period (ar-prometheus-exporter METRICS_PERIOD)3h

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the '[READ]' tag adds nothing. The description does contribute one piece of behavioral context beyond annotations: the plan-tier gate (Professional+). It says nothing about data source freshness, cardinality of returned IPs, 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?

A single front-loaded line that opens with the [READ] marker and packs endpoint, parameter, and plan gate without filler. It is efficient, though the API-jargon framing ('OpenAPI + ar-prometheus-exporter') costs a little clarity for the space it uses.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn 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 report tool with annotations covering the safety profile and no output schema, the essentials are present (what it fetches, plan gate). It is still thin on what the report actually contains (top IPs, ordering, counts) and on how it relates to the other CDN report siblings, leaving an agent to infer 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 50%: 'period' is fully documented in the schema (enum, default, description), while 'domain' has no description but a self-explanatory name and pattern. The description merely echoes the period query string and adds no format or semantics 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 endpoint path '/domains/{domain}/reports/high-request-ips' plus the title state a specific resource (a report of IPs generating high request volume) for a specific domain. It is clear what the tool retrieves, but the description never contrasts itself with the many sibling CDN report tools (traffic, visitors, geo, response-time).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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-relevant content is the '(Professional+ plans)' prerequisite, which is useful. There is no statement of when to prefer this report over get_cdn_traffic_report or the other CDN reports, and no exclusions or context for the period parameter's intended use.

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

get_cdn_response_time_reportCDN response-time reportC
Read-only

[READ] OpenAPI + ar-prometheus-exporter: GET /domains/{domain}/reports/response-time?period=

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
periodNoReport period (ar-prometheus-exporter METRICS_PERIOD)3h

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 and openWorldHint=true, and the description's '[READ]' tag merely repeats that. It adds the upstream source (ar-prometheus-exporter) and the METRICS_PERIOD reference, but says nothing about response shape, latency units, or aggregation that would go beyond the annotations.

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

Conciseness3/5

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

It is a single terse line with the read tag front-loaded, so there is no padding. But it is under-specified rather than genuinely concise, reading as an internal API note instead of an agent-facing 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?

With no output schema, the description should carry more of the burden of explaining what a response-time report returns (metrics, units, time bucketing). Instead it only restates the HTTP route, leaving the agent without enough to know 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 only 50%: 'domain' has a regex but no prose, while 'period' is documented. The endpoint notation implies domain is a path parameter and period a query parameter, but it adds no meaning about what a domain must be or how period affects the output, 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 title and endpoint string convey that this retrieves a CDN response-time report for a domain, so the verb+resource is inferable. However, it is expressed as a raw REST path dump rather than a statement of purpose, and it does nothing to distinguish itself from siblings like get_cdn_traffic_report or get_cdn_status_report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 many sibling CDN report tools. An agent must guess whether this or get_cdn_traffic_report / get_cdn_geo_report is the right report for a given need.

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

get_cdn_status_reportCDN HTTP status-code reportC
Read-only

[READ] OpenAPI + ar-prometheus-exporter: GET /domains/{domain}/reports/status?period=

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
periodNoReport period (ar-prometheus-exporter METRICS_PERIOD)3h

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so '[READ]' is redundant. The only extra information is the underlying data source ('ar-prometheus-exporter') and the literal API path, which is structural rather than behavioral. No details on auth needs, rate limits, report latency, or output shape are provided.

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

Conciseness2/5

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

The text is short, but it is front-loaded with a redundant '[READ]' tag and then a raw endpoint notation rather than a meaningful statement of purpose. The one line is under-specified rather than concise: it omits what the tool does and how the returned report should be interpreted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 two-parameter report tool with no output schema and only minimal annotations, the description is far too thin. It does not explain what the status-code report contains, how the required domain is validated, or how the period affects results, leaving an agent unable to confidently select or invoke it among many similar report tools.

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%: the period parameter is documented in the schema, but the required domain parameter has no description. The description references '?period=' but adds no semantics beyond what the schema already says; it does nothing to compensate for the missing domain documentation. The agent learns nothing new about parameter behavior from the description.

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 an API path notation ('GET /domains/{domain}/reports/status') with a source tag, which restates the tool name/title rather than stating the purpose in agent-facing terms. It does not distinguish this status-code report from sibling CDN reports like get_cdn_traffic_report or get_cdn_response_time_report. An agent gets only a hint from the title, not from the description 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 prerequisites, and no mention of alternatives. The description provides no context for choosing this report over the other CDN report siblings. The '[READ]' tag is a static marker, not usage guidance.

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

get_cdn_traffic_reportCDN traffic/requests reportC
Read-only

[READ] OpenAPI + ar-prometheus-exporter: GET /domains/{domain}/reports/traffics?period=

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
periodNoReport period (ar-prometheus-exporter METRICS_PERIOD)3h

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 and openWorldHint=true, and the '[READ]' tag merely repeats the read-only annotation. The 'ar-prometheus-exporter' note hints at the data source but adds nothing about return shape, aggregation, or freshness. Little value 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.

Conciseness4/5

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

A single front-loaded line with no padding or redundancy. It is efficient, though the terseness reflects under-specification rather than deliberate economy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 report tool sitting in a dense family of near-identical CDN report siblings with no output schema, the description is inadequate: it neither disambiguates nor describes the returned data. An agent would struggle to pick it over adjacent report tools.

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%: 'period' is fully documented by the schema (enum + default + description) while 'domain' has no description. The '?period=' hint adds nothing beyond the schema enum, and the undocumented domain param is left unexplained.

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 conveys a read of a CDN traffic/requests report via a specific endpoint, so the verb+resource is inferable, but it is largely a raw endpoint dump rather than a stated purpose. It gives no differentiation from the many sibling report tools (get_cdn_visitors_report, get_cdn_geo_report, get_cdn_response_time_report, get_cdn_status_report).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 report versus the other CDN report siblings. No prerequisites, no context, 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.

get_cdn_visitors_reportCDN unique visitors reportC
Read-only

[READ] OpenAPI + ar-prometheus-exporter: GET /domains/{domain}/reports/visitors?period=

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
periodNoReport period (ar-prometheus-exporter METRICS_PERIOD)3h

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already cover readOnlyHint=true and openWorldHint=true, so the safety profile is clear. The description adds essentially no behavioral context beyond the annotations: it discloses nothing about pagination, default period behavior, or what unique-visitor metrics are returned. For a report tool with no output schema, this leaves the return shape undocumented.

Agents need to know what a tool does to the world before 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 a single terse line with no padding, so it is concise. But it is not front-loaded with a purpose statement – it leads with an API-notation string that would not read well to an agent, and it is arguably under-specified rather than efficiently 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 report tool with no output schema, no annotations describing return format, and a sibling list full of similar report tools, the description is too thin. It does not explain what the report returns, its dimensions, or how it differs from neighboring report 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 50%: 'period' is documented in the schema with its enum and default, while 'domain' has only a pattern and no textual description. The description's 'GET /domains/{domain}/reports/visitors?period=' loosely maps both parameters to their API locations, but adds no meaning beyond the schema. Baseline 3 fits.

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 title 'CDN unique visitors report' and the tool name establish that this returns CDN visitor/analytics data, and the '[READ]' tag signals a read operation. However, the description itself is just an API-path notation ('GET /domains/{domain}/reports/visitors?period=') that restates the tool rather than describing what a 'visitors report' contains. It doesn't distinguish this from siblings like get_cdn_traffic_report or get_cdn_geo_report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 numerous other CDN report tools (traffic, geo, response time, status). The description provides no context, exclusions, or alternatives, leaving an agent 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.

get_dns_recordGet DNS recordA
Read-only

[READ] Get one DNS record by id. Official: GET /cdn/4.0/domains/{domain}/dns-records/{id}. Never invent record_id — obtain from list_dns_records.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
record_idYesExact DNS record id returned by list_dns_records / get_dns_record

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true), so the [READ] tag is largely redundant. What the description does add beyond structured data is the anti-hallucination rule for record_id and the exact upstream endpoint, which is genuinely useful for an agent. It omits error behavior (e.g., what happens on an unknown id), keeping it short of a 5.

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

Conciseness5/5

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

Three short sentences, zero filler, and the core operation is front-loaded before the endpoint and the id-sourcing caveat. Every sentence carries actionable information for the caller.

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

Completeness4/5

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

For a simple two-parameter read tool with no output schema, the description covers the operation, the upstream endpoint, and the id prerequisite. It leaves a small gap by not characterizing the returned record fields (relevant since no output schema exists) and by not explaining the domain parameter.

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

Parameters3/5

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

Schema description coverage is 50%: record_id is documented in the schema, while domain carries only a pattern and no description. The description adds sourcing guidance for record_id ("obtain from list_dns_records") but says nothing about what domain means or how it relates to the record_id. With half the parameters undocumented, the description only partially compensates.

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

Purpose5/5

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

"Get one DNS record by id" states a specific verb (get), resource (DNS record), and scope (single record by id), which cleanly separates it from list_dns_records, update_dns_record, and delete_dns_record. The [READ] tag and the concrete REST endpoint (GET /cdn/4.0/domains/{domain}/dns-records/{id}) reinforce the operation and its cardinality.

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

Usage Guidelines4/5

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

The description gives a clear prerequisite and names the sibling that supplies it: "Never invent record_id — obtain from list_dns_records." That tells the agent when this tool is callable and how to prepare for it. It stops short of explicitly stating when to prefer this over list_dns_records for retrieval, but the by-id framing implies that condition.

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

get_dnssecGet DNSSEC statusB
Read-only

[READ] Get DNSSEC status. Official CDN API: GET /domains/{domain}/dns-records/dnssec (CDN Go SDK). Offline FA also documents update actions.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

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, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the underlying endpoint (GET /domains/{domain}/dns-records/dnssec), which is mild extra context, but says nothing about error behavior or what the status 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?

Three short, front-loaded sentences with the read tag and purpose first. The SDK/offline-FA references are somewhat extraneous but do not bury the core 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 one-parameter read tool with annotations covering safety, this is close to adequate, but the dangling mention of 'update actions' on a read-only tool invites confusion and no return-shape information is offered 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 0% and the single 'domain' property carries only a regex pattern and length bounds. The embedded path template '{domain}' at least identifies it as the target domain in the URL, but adds no format or sourcing guidance beyond the schema 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+resource ('Get DNSSEC status') that maps cleanly onto the sibling update_dnssec pair. However, the trailing clause 'Offline FA also documents update actions' muddies a pure read tool by gesturing at mutation without naming update_dnssec as the route for 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 '[READ]' tag implies read-only usage, but there is no explicit when-to-use guidance and no routing to update_dnssec for the modification case it hints at. The agent must infer the read/write split from the sibling list.

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

get_domainGet CDN domainB
Read-only

[READ] Get information for one CDN domain. Official: GET /cdn/4.0/domains/{domain}

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesExact domain name, e.g. example.com

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, destructiveHint=false and openWorldHint=true, so the '[READ]' tag is redundant. The description does add one piece of non-structured context - the exact upstream route GET /cdn/4.0/domains/{domain} - useful for agents deciding whether to fall back to invoke_cdn_api, but it says nothing about error behavior (e.g. unknown domain) or what data 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.

Conciseness4/5

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

Two short clauses, front-loaded with the action and resource, with no filler. The '[READ]' prefix is mildly redundant against readOnlyHint=true, but it costs almost nothing.

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

Completeness3/5

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

For a single-resource lookup with no output schema, the description should ideally sketch what is returned (domain status, configuration, timestamps). It does not, leaving the agent to discover the response shape empirically; the endpoint pointer partially compensates.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension 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 single 'domain' parameter carries a format example, a length bound and a regex pattern. The description only echoes the path placeholder {domain} and adds no syntax or normalization detail 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 information for one CDN domain'), and the 'CDN' qualifier distinguishes it from the similarly named get_vod_domain, get_live_domain and get_vads_domain siblings. It does not, however, explicitly contrast itself with list_domains, so the differentiation is only 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?

Usage is implied rather than stated: retrieving 'one CDN domain' by name suggests single-resource lookup versus list_domains, but no when-to-use condition, prerequisite, or alternative tool is named. The official endpoint reference hints at the underlying API contract but adds no routing guidance.

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

get_edge_computeGet Edge ComputeD
Read-only

[READ] OpenAPI: GET /edge-computes/{edgeComputeId}

ParametersJSON Schema
NameRequiredDescriptionDefault
edge_compute_idYes

TDQS

D1.9/5.0
Behavior2/5

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

The annotations already declare readOnlyHint=true and openWorldHint=true, and the description's '[READ]' prefix simply repeats that safety profile without adding anything. It discloses nothing beyond the annotations—no error behavior for missing IDs, no auth/permission notes, no 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.

Conciseness3/5

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

The description is a single short line, so it is not bloated, but the space is spent on a redundant '[READ]' tag and a path restatement rather than on useful content. 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 read tool with no output schema and only safety annotations, the description leaves the agent without resource meaning, parameter semantics, or relationship to sibling tools. It is too thin to call correctly with confidence.

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% for the single required parameter, so the description must compensate and does not. It implicitly names the path parameter but provides no format, source, or validation guidance for edge_compute_id beyond the schema's minLength constraint.

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 and title as an HTTP endpoint ('GET /edge-computes/{edgeComputeId}') without explaining what an edge compute is or what the returned resource represents. It offers no differentiation from the sibling list_edge_computes or deploy_edge_compute beyond the singular-vs-list convention. This is essentially a tautology 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 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 mention of the alternative list_edge_computes, and no stated prerequisites or context for choosing this tool. 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.

get_edge_namespaceGet Edge namespace settingsC
Read-only

[READ] OpenAPI: GET /namespace

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 and openWorldHint=true; the description's "[READ]" and "GET" add no behavioral detail beyond them. It does not mention auth, rate limits, return shape, or idempotency, 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.

Conciseness3/5

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

The description is a single concise fragment and is front-loaded with the operation and endpoint. However, it is so terse that it lacks any explanatory structure, making it minimally viable rather than well-formed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 parameters, the description should at least clarify what namespace settings are returned or how the tool relates to other Edge endpoints. It provides no such context, leaving the agent to infer from the name 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?

There are no parameters and schema description coverage is 100%, so the baseline is 4. The description adds no parameter semantics, but none are needed.

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 "[READ] OpenAPI: GET /namespace" essentially restates the tool name and title ("Get Edge namespace settings") without explaining what an Edge namespace is or which settings are returned. It provides no differentiation from the many 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 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; the description does not mention alternatives such as get_edge_compute, list_edge_routes, or invoke_edge_api, nor any prerequisites. The only hint is the [READ] tag, which is redundant with annotations.

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

get_firewall_ruleGet CDN firewall ruleD
Read-only

[READ] GET /domains/{domain}/firewall/rules/{id}

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
rule_idYesExact rule id from list/get — never invent

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true; the '[READ]' tag merely echoes the read-only hint and adds no new context such as auth requirements, error behavior for unknown ids, or rate limits. It does not contradict the annotations, but adds minimal value 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?

It is very short with no padding, which is good, but what space it uses is spent on a REST path rather than on information the agent needs. Concise 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 read-only retrieval tool with no output schema, the description should at least signal what is returned (rule fields, ordering, not-found behavior). Neither the description nor an output schema covers returns, leaving the agent under-informed.

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 schema description coverage at 50% (only rule_id is documented, and only with 'never invent'), the description should compensate by clarifying the domain/rule_id contract, but it provides no parameter meaning at all. It leaves the undocumented domain parameter entirely to the schema.

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

Purpose2/5

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

The text is essentially a restatement of the name plus the REST path: 'GET /domains/{domain}/firewall/rules/{id}' tells the agent nothing the name 'get_firewall_rule' didn't already convey. It does not distinguish this tool from siblings like list_firewall_rules or get_firewall_settings.

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 guidance, no prerequisites, no alternatives named. The agent must infer that this retrieves a single rule versus list_firewall_rules 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.

get_firewall_settingsGet CDN firewall settingsC
Read-only

[READ] GET /domains/{domain}/firewall/settings (CDN Go SDK; FA firewall API table).

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

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 and openWorldHint=true, so the agent knows the safety profile. The description just repeats '[READ]' and provides the raw endpoint, adding no behavioral context like auth requirements, rate limits, 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 a single compact line with the read indicator and endpoint front-loaded, and it contains no filler text. However, its extreme terseness comes at the cost of overall clarity and completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 0% parameter description coverage, the description is almost entirely endpoint notation. It omits what settings are returned, prerequisites, and any explanation of the required domain parameter, leaving meaningful gaps for an agent.

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% for the single required domain parameter. The description only shows the {domain} placeholder in the path template, which minimally confirms it is a path parameter but does not explain its format, constraints, or meaning beyond what the schema pattern already implies.

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

Purpose4/5

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

The description states a GET endpoint for firewall settings, which clearly identifies a read operation on a specific resource. However, it does not explicitly distinguish this settings endpoint from sibling tools like get_firewall_rule or list_firewall_rules beyond the URL 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 guidance on when to use this tool versus alternatives such as update_firewall_settings or list_firewall_rules. The only implied usage is that it retrieves settings, which is already evident from the name.

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

get_latest_troubleshootGet latest CDN troubleshootB
Read-only

[READ] Get the latest troubleshoot for a domain. Official: GET /domains/{domain}/troubleshoots/latest

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

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, destructiveHint=false and openWorldHint=true, so the safety and network profile are covered. The description redundantly echoes the read-only nature with the '[READ]' tag and pins the description to a concrete endpoint, which is mildly useful but adds little behavioral context beyond the annotations.

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

Conciseness4/5

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

Two short clauses, front-loaded with the action, then the API mapping. Nothing wasted, though the '[READ]' tag duplicates the annotation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 the burden of conveying what a 'troubleshoot' contains (status, findings, timestamps) and whether one may not exist for a domain. It does neither, though the endpoint mapping partially compensates for a tool this simple.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 parameter with 0% schema description coverage — the schema only supplies a regex pattern and length bounds, not meaning. The description implies a domain identifier via the endpoint template '/domains/{domain}/...', which adds a little semantics, but does not clarify the required format or whether a subdomain is acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid 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 ('latest troubleshoot for a domain'), and the word 'latest' distinguishes it from list_troubleshoots. It stops short of explicitly naming that sibling or create_troubleshoot as the alternative, 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?

No statement of when to use this versus list_troubleshoots (all troubleshoots) or create_troubleshoot (generate a new one). The 'latest' qualifier implies the selection condition, but the agent must infer it.

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

get_live_domainGet LIVE domain settingsC
Read-only

[READ] OpenAPI: GET /domain

ParametersJSON Schema
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 and openWorldHint=true. The description adds only a redundant '[READ]' tag and HTTP path; it supplies no new behavioral context such as authentication requirements, rate limits, or what the read returns.

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 extremely terse, consisting of a tag and an API path. While it is not verbose, it is under-specified for an agent to understand the purpose, similar to a minimal placeholder 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?

With no output schema and no parameter schema, the description should at least explain what 'LIVE domain settings' are and what the caller receives. It does not, so an agent lacks the context needed to invoke it 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?

The tool takes zero parameters, so the schema baseline of 4 applies. 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.

Purpose2/5

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

The description is effectively '[READ] OpenAPI: GET /domain', which restates the HTTP method and path rather than explaining what LIVE domain settings are. It does not distinguish this tool from siblings like get_domain or get_vod_domain, leaving the resource scope ambiguous.

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 versus alternatives such as get_domain, get_vod_domain, or list_domains. 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.

get_live_streamGet LIVE streamC
Read-only

[READ] OpenAPI: GET /streams/{stream}

ParametersJSON Schema
NameRequiredDescriptionDefault
stream_idYes

TDQS

C2.1/5.0
Behavior2/5

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

The annotations already declare readOnlyHint=true and openWorldHint=true, and the description's '[READ]' tag merely duplicates that read-only hint without adding anything. It says nothing about auth requirements, error behavior (e.g., what happens for an unknown stream), or return shape, so it contributes no behavior beyond the structured fields.

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

Conciseness3/5

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

It is very short and front-loaded with no filler, which is structurally clean, but the brevity comes at the cost of substance rather than from efficient information density. It reads as an auto-generated stub rather than a deliberately trimmed 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 simple single-parameter read tool with no output schema this could be adequate, but the description supplies no parameter meaning, no error/edge-case context, and no relation to the sibling listing tool, leaving the agent with only the endpoint path to work from.

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 single required parameter 'stream_id' is undocumented in both schema and description. The description does not clarify whether 'stream_id' is a UUID, a slug, or a name, nor give format constraints, 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.

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 plus the underlying HTTP method and path ('GET /streams/{stream}'). It does convey the resource is a single live stream, but it does not add a specific verb/scope beyond what the name 'get_live_stream' already says, and it does not differentiate from the adjacent 'list_live_streams' 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 when-to-use guidance, no prerequisite conditions, and no mention of alternatives such as list_live_streams for discovering streams. 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.

get_object_textDownload object as text (size-capped)A
Read-only

[READ] S3 GetObject for text-ish content. Caps at max_bytes (default 256KiB) to avoid dumping large binaries into the agent context. Official API Usage getObject.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes
bucketYes
max_bytesNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover readOnly and openWorld, so the bar is lower. The description adds genuinely useful behavior: a default cap of 256KiB and the rationale of protecting agent context from large binaries. It stops short of saying what happens on truncation.

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

Conciseness4/5

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

Three tight sentences with the [READ] marker front-loaded and the cap rationale stated early. Nothing is wasted, though the trailing 'Official API Usage getObject' is low-value filler.

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

Completeness3/5

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

No output schema, so return values need not be explained. For a read tool whose safety profile is covered by annotations, the definition is adequate, but it omits the key edge case: whether content over max_bytes is truncated or errors, and whether binary content is rejected.

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

Parameters3/5

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

Schema coverage is 0%, so the description should carry the load. It documents max_bytes only partially — the 256KiB default is added value absent from the schema — but leaves bucket/key and the exact truncation semantics of max_bytes unexplained.

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

Purpose4/5

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

States a specific action and resource: S3 GetObject returning text-ish content. The 'text' qualifier and cap behavior distinguish it from a generic object fetch and from the write-side sibling put_object_text, though no sibling is named 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 text-ish/binary-avoidance framing implies when to use it, but it never names an alternative (e.g., a raw binary get) or states exclusions explicitly. Usage is inferable rather than prescribed.

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

get_rate_limit_ruleGet rate-limit ruleC
Read-only

[READ] GET /domains/{domain}/rate-limit/rules/{id}

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
rule_idYesExact rule id from list/get — never invent

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true; the description's '[READ]' marker merely duplicates readOnlyHint. No additional behavioral context is provided, such as what happens on unknown IDs or the shape of the response. 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?

The single line is compact and front-loaded with no wasted words. However, its brevity reflects under-specification rather than disciplined conciseness, so it earns only a middling score.

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?

With no output schema and a 50%-covered input schema, the description carries most of the burden but supplies only a route echo. An agent gets no information about return value, error behavior, or how this differs from sibling rate-limit tools.

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% (rule_id documented, domain not), so the description should compensate, but it adds nothing beyond the route template. It does not explain the domain vs rule_id relationship or expected formats.

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 plus an HTTP route: '[READ] GET /domains/{domain}/rate-limit/rules/{id}'. It does not add a specific verb+resource framing beyond what the name 'get_rate_limit_rule' already communicates, and it gives no differentiation from siblings like list_rate_limit_rules or update_rate_limit_rule.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 versus alternatives such as list_rate_limit_rules or get_rate_limit_settings. The '[READ]' tag hints at read-only use but does not state conditions, prerequisites, or exclusions.

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

get_rate_limit_settingsGet rate-limit settingsC
Read-only

[READ] GET /domains/{domain}/rate-limit/settings (CDN Go SDK; EN/FA rate-limit API table).

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

TDQS

C2.6/5.0
Behavior2/5

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

The annotations already state readOnlyHint=true and openWorldHint=true, so the [READ] marker and GET path mostly repeat structured data. The description does not add behavioral context such as authentication requirements, whether the endpoint returns all settings, 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.

Conciseness3/5

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

The description is a single front-loaded sentence, which is concise. However, the parenthetical '(CDN Go SDK; EN/FA rate-limit API table)' is cryptic and likely irrelevant to an agent selecting or invoking the tool, reducing the value of the limited 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 no parameter description, the definition leaves the agent without an understanding of what rate-limit settings are returned. For a simple read tool this is a notable gap, though the low parameter count limits the damage.

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 only parameter, domain, is undocumented in both schema and description. The endpoint template shows {domain}, but the description adds no meaning about valid values, format, or domain scoping beyond what the schema pattern already enforces.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 HTTP verb and resource path: GET /domains/{domain}/rate-limit/settings. This clearly identifies a read operation for rate-limit settings, though it does not explicitly distinguish itself from siblings such as update_rate_limit_settings or list_rate_limit_rules.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 update_rate_limit_settings, list_rate_limit_rules, or get_rate_limit_rule. The [READ] marker implies a read-only operation, but no conditions, prerequisites, 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.

get_serverGet Cloud Server instanceC
Read-only

[READ] OpenAPI IaaS 1.0: GET /regions/{region}/servers/{id} (ecc/v1).

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYesCloud Server region id from official docs, e.g. ir-thr-c2
server_idYes

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 and openWorldHint=true, so the '[READ]' tag adds nothing new. The description discloses nothing about error behavior, required permissions, or what a successful retrieval returns, leaving the behavioral burden entirely on 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 a single short line with the operation type front-loaded, so nothing is wasted. But the brevity here is under-specification rather than efficiency — the terse endpoint notation leaves real gaps that a few more words could have closed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 return values could be described, and it says nothing about the server object returned. For a read tool with an undocumented required parameter, the definition is 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.

Parameters2/5

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

Schema description coverage is only 50% (server_id is undocumented), so the description should compensate. Instead it merely echoes the path template '{region}/servers/{id}', adding no format, source, or validation meaning beyond what the schema already shows for region.

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 resource (server) and operation (GET by id within a region), which is more than a restatement of the name. However, it is written as a raw endpoint string rather than plain language, and it does nothing to distinguish itself from siblings like list_servers, list_servers_v3, or the generic invoke_iaas_v1_api, which an agent could otherwise confuse it with.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of prerequisites (auth, region validity), and no reference to alternative tools. The agent must infer from the name alone that this fetches one existing server rather than listing or invoking the API generically.

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

get_ssl_settingsGet SSL/HTTPS settingsB
Read-only

[READ] Get domain SSL settings. Official: GET /cdn/4.0/domains/{domain}/ssl

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds only the official endpoint reference and a redundant [READ] tag; it says nothing about auth requirements, response contents, or caching. With annotations carrying the safety profile, this modest addition warrants a 3.

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

Conciseness4/5

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

Two front-loaded sentences with no filler; the purpose and the underlying endpoint are both stated immediately. Slightly terse but 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?

For a simple read-only tool with a single parameter, no output schema, and full annotation coverage, the description is minimally adequate. It omits any hint of what the SSL settings payload contains, which is a minor gap given no output schema exists to document 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 description coverage is 0% and the sole parameter (domain) has a regex pattern but no prose explanation. The description adds no meaning beyond the name 'domain' — no format, no example, no note on which domain identifier forms are acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 SSL settings for a domain, and maps it to a concrete REST endpoint (GET /cdn/4.0/domains/{domain}/ssl). It does not explicitly differentiate from the sibling update_ssl_settings, but the read/mutation split is obvious from 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 when-to-use guidance and no mention of the sibling update_ssl_settings or any prerequisite/context. The only implicit cue is the [READ] tag, which leaves the agent to infer that this is the inspection counterpart to the update tool.

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

get_storage_reportGet Object Storage usage reportC
Read-only

[READ] OpenAPI: GET /v1/reports/storage on storage.arvanapis.ir

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 and openWorldHint=true, so safety is covered. The description adds nothing beyond them: no indication of what the report covers, its time window, granularity, or whether it requires a specific plan/permission.

Agents need to know what a tool does to the world before 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 non-redundant, but that brevity is under-specification rather than economy. Front-loading the HTTP verb and path is of limited value to an agent choosing between tools.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 the report returns, yet it says nothing about contents, metrics, or period. For a report-generation tool competing with several other report siblings, this is incomplete.

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 per the rubric the baseline is 4. The description does not need to compensate for any parameter documentation gap.

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 REST route restatement: '[READ] OpenAPI: GET /v1/reports/storage on storage.arvanapis.ir'. It names the resource (storage report) but adds no articulation of subnet or scope, and gives no differentiation from the many other report siblings (get_cdn_status_report, get_cdn_traffic_report, get_bucket_metrics).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 excluded cases, and no named alternative among the report/metrics tools. An agent must infer usage 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.

get_vads_campaignGet Video Ads campaignD
Read-only

[READ] OpenAPI: GET /campaigns/{campaign}

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idYes

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, and the "[READ]" tag merely duplicates readOnlyHint. Nothing is said about authentication requirements, behavior when the campaign ID does not exist, or whether the response is a single object. It adds no behavioral context beyond the structured fields.

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

Conciseness3/5

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

It is a single short fragment with no wasted words and the read-only nature is front-loaded. However, 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.

Completeness2/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 no output schema, the description should at least state what the call returns and the expected ID form. It leaves both the parameter meaning and the response shape entirely undocumented, so an agent cannot confidently construct or interpret the 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?

There is one required parameter at 0% schema description coverage, and the description only surfaces the path placeholder "{campaign}" without clarifying that it maps to campaign_id, what format an ID takes, or whether it accepts a slug or name. The schema's minLength:1 constraint is the only real specification.

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

Purpose2/5

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

The description is essentially the name restated as an HTTP call ("[READ] OpenAPI: GET /campaigns/{campaign}"). It says nothing about what a VADS campaign is or how this differs from siblings like list_vads_channel_campaigns or get_vads_channel. The title carries all the actual meaning.

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 guidance on when to use this tool versus list_vads_channel_campaigns (to enumerate campaigns) or get_vads_channel (to fetch the parent). No prerequisites, no conditions, no alternatives.

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

get_vads_channelGet Video Ads channelC
Read-only

[READ] OpenAPI: GET /channels/{channel}

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYes

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 and openWorldHint=true, so the safety profile is covered by structured data. The description's '[READ]' tag merely duplicates readOnlyHint and adds no information about error conditions, ID format expectations, or any limits — nothing beyond what annotations already say.

Agents need to know what a tool does to the world before 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 only one short line with no filler, so nothing is wasted, but it is under-specified rather than concise — brevity here reflects missing content, not efficient communication.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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-parameter read tool with no output schema, the description should at minimum explain what a channel object is and what identifier the agent must supply. None of that is present, and no return-value context exists to offset the omission.

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 single required parameter channel_id carries no description, minLength constraint documentation, or format hint. The path template {channel} only loosely implies the parameter is a channel identifier, leaving the description failing to compensate for the coverage gap.

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 reduces to "OpenAPI: GET /channels/{channel}", which restates the tool name as a raw HTTP endpoint rather than describing what a Video Ads channel is or what retrieval returns. It signals the operation is a read, but an agent cannot distinguish it from siblings like get_vod_channel, get_vads_domain, or get_vads_campaign based on 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 when-to-use guidance, no stated prerequisites, and no mention of any alternative sibling tool. The only implicit signal is that it is a GET against a channels path.

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

get_vads_domainGet Video Ads domainC
Read-only

[READ] OpenAPI: GET /domain

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 and openWorldHint=true, so the '[READ]' tag adds nothing beyond structured data. No behavioral context is supplied about what the domain resource contains, whether the read is scoped to an account, or what the response shape is.

Agents need to know what a tool does to the world before 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 a single short token string with no filler, so there is nothing to trim. However, the extreme brevity reflects under-specification rather than disciplined conciseness, since no informative content 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?

The operation is simple (no params, no output schema), which lowers the bar, but the description still leaves the agent unable to tell what resource is fetched or how it differs from the many sibling domain getters. Even one clause describing the returned VADS domain object would close the 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?

The tool takes zero parameters and the schema is fully covered at 100%, so there are no parameter semantics for the description to clarify. Baseline 4 applies for a parameterless operation.

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 name and title, mapping them to an HTTP method and path ('[READ] OpenAPI: GET /domain'), without explaining what a VADS domain is or what the call returns. It gives no basis for distinguishing this from sibling reads like get_vod_domain, get_live_domain, or get_domain.

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 mention of prerequisites, and no reference to any alternative sibling tool. The agent is given nothing to decide when this call is appropriate.

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

get_vod_channelGet VOD channelC
Read-only

[READ] OpenAPI Arvan VOD 2.0: GET /channels/{channel}

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYes

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 and openWorldHint=true, so the [READ] tag in the description is purely redundant. Nothing is disclosed about auth requirements, 404 behavior for unknown channel IDs, or rate limits, so the description adds no behavioral context beyond the structured fields.

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

Conciseness3/5

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

It is a single terse fragment with zero padding and the resource path is front-loaded, which is structurally fine. But the brevity is under-specification rather than economy, since the line carries almost no decision-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?

For a get-by-identifier tool with no output schema, the description should at minimum identify what the returned channel represents and the ID format. Instead it supplies only an OpenAPI path reference, which is not enough for an agent to call it confidently against its many siblings.

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?

One required parameter with 0% schema description coverage. The path template '/channels/{channel}' hints that channel_id is a path segment, but the description never clarifies whether it expects an opaque ID, a slug, or a name, leaving the agent to guess the accepted format.

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 in HTTP form: get_vod_channel -> 'GET /channels/{channel}'. It adds only an API version tag and a redundant [READ] marker, and it never says what a VOD channel is or how it differs from sibling get_vod_video / list_vod_channels.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 routing to alternatives such as list_vod_channels (for enumeration) or get_vod_video (for a single asset). The only weak signal is the [READ] tag implying a fetch rather than a mutation.

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

get_vod_domainGet VOD domain settingsC
Read-only

[READ] OpenAPI: GET /domain

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 and openWorldHint=true; the '[READ]' tag merely duplicates the readOnly hint and adds no new behavioral context. Nothing is said about what the endpoint returns, authentication needs, 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 a single short fragment with no wasted text, so it is technically concise, but its brevity reflects under-specification rather than a well-front-loaded message. It reads as a machine-generated stub rather than a purposeful tool 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 0-parameter read tool with no output schema, the description still should say what domain settings it retrieves and how the result differs from sibling domain reads. It conveys neither, leaving the agent unable to judge whether the return value is useful for its task.

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, so the baseline for this dimension is 4 per the rubric. There is no parameter syntax or format the description could usefully add.

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 '[READ] OpenAPI: GET /domain', which restates the tool name and gives an HTTP path rather than explaining what VOD domain settings are returned. It does not distinguish this tool from siblings like get_domain, get_live_domain, or get_vads_domain, which all read domain-related 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 explicit statement of when to use this tool versus the many other get_* domain/config tools. The '[READ]' prefix only loosely implies a read context, leaving the agent 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.

get_vod_videoGet VOD videoD
Read-only

[READ] OpenAPI: GET /videos/{video}

ParametersJSON Schema
NameRequiredDescriptionDefault
video_idYes

TDQS

D1.5/5.0
Behavior1/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true; the description's "[READ]" merely duplicates the annotation. No permission requirements, error behavior, or lookup semantics are disclosed beyond what structured fields provide.

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

Conciseness2/5

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

It is short and front-loaded, but brevity here stems from under-specification rather than efficiency. The single fragment carries no actionable content for an agent.

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?

A read tool with one undocumented required parameter, no output schema, and no guidance is left entirely to inference. The description does not supply the semantics that the missing schema coverage and context demand.

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 single parameter video_id has 0% schema description coverage, and the description only implies it via the URL template /videos/{video}. No format, ID source, or validation meaning is added, leaving the only parameter effectively undocumented.

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 plus the raw HTTP method and path ("[READ] OpenAPI: GET /videos/{video}"). It conveys only that a video is fetched, without stating scope, return content, or how it differs from siblings like list_vod_videos or get_vod_channel — a near-tautology.

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 exclusions, and no mention of alternative tools. An agent gets no signal about choosing this over list_vod_videos or invoke_vod_api.

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

head_bucketCheck bucket existsC
Read-only

[READ] S3 HeadBucket (FA SDK head-bucket).

ParametersJSON Schema
NameRequiredDescriptionDefault
bucketYes

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 and openWorldHint=true, and the description's '[READ]' tag merely restates that. It adds no non-duplicative behavior: it omits the key trait of a HeadBucket call (success/failure signaling when the bucket is absent) and says nothing about permissions or error responses.

Agents need to know what a tool does to the world before 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 a single short line and front-loaded, so it is not verbose. But it is under-specified rather than genuinely concise — the brevity comes from omission of substance, not from economy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 what a caller gets back from a 'check exists' call, and it does not. For an existence-check tool the success/failure contract is exactly the missing piece, making the definition incomplete despite its simplicity.

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

Parameters3/5

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

Schema description coverage is 0% and the single 'bucket' parameter is undocumented in both schema and description. Baseline is softened only because the lone parameter is self-evident from the tool name, but the description contributes no format, naming, or scope 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?

The description names a concrete operation (S3 HeadBucket) and flags it as a read, and the title supplies 'check bucket exists'. However, the description text itself is a bare identifier plus an SDK reference, so the actual purpose is carried mostly by the title rather than the description, and it never distinguishes itself from the sibling list_buckets or head_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 when-to-use guidance at all. The agent is not told when to prefer head_bucket over list_buckets (which would also reveal existence) or how to interpret the result, and no prerequisite or failure condition is mentioned.

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

head_objectHead object metadataD
Read-only

[READ] S3 HeadObject (FA SDK head-object).

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes
bucketYes

TDQS

D1.9/5.0
Behavior1/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, and the description's '[READ]' prefix merely restates that. It adds nothing beyond annotations: no mention of what is returned (headers/metadata, not content), no error behavior for a missing bucket/key, and no authorization 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 a single compact sentence-fragment with no filler, so it wastes little space, but the brevity comes at the cost of clarity rather than being front-loaded informative text.

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 two-parameter tool with 0% schema coverage, no output schema, and no annotations covering returns, the description should at minimum explain the bucket/key inputs and the metadata-only return. It does none of this, leaving the definition substantially incomplete.

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% and both required parameters (bucket, key) are undocumented in the schema. The description supplies no meaning, format, or constraint for either, leaving the two most essential inputs entirely unexplained.

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 (S3 HeadObject) and the underlying SDK call, and the [READ] tag signals it is a read. However, it never states in plain terms that this retrieves an object's metadata/headers without downloading the body, which is the actual behavior an agent needs to distinguish it from get_object_text or list_objects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 such as get_object_text (to read content) or list_objects (to enumerate keys), even though those siblings exist. An 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.

invoke_aiaas_apiInvoke AI-as-a-Service OpenAPIA
Destructive

[OPENAPI] Full ai-ml-backend 1.0 on /ai/v1. Paths may be /endpoints or /ai/v1/datasets — /ai/v1 prefix is stripped when present. Allowlist: 43 ops from aiaas-1.0.json (ai-ml-backend 1.0). Rejects unknown paths — does not invent APIs.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
pathYesConcrete path matching OpenAPI aiaas-1.0.json (fill path params). Example templates exist in docs/discovery/openapi/.
queryNo
methodYes

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 openWorldHint=true, so the safety profile is covered. The description adds genuinely useful behavioral facts beyond that: the 43-op allowlist, prefix-stripping normalization, and the explicit guarantee that unknown paths are rejected rather than invented. It does not say what a rejected call returns or whether destructive ops require confirmation, but the added constraints are substantive.

Agents need to know what a tool does to the world before 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 dense sentences, front-loaded with the [OPENAPI] marker and the scope, then the path rule, then the allowlist/rejection guarantee. Telegraphic but every sentence carries distinct information; 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 destructive, open-world proxy with no output schema, the description covers scope, allowlist size, path handling, and rejection behavior, which is the core an agent needs. It is silent on the shape of error responses, how the 43 allowed operations map to the sibling tools, and any auth expectations, leaving gaps for a tool this broad.

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

Parameters3/5

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

Schema coverage is only 25% across 4 params; only 'path' carries a schema description. The description partially compensates by explaining path normalization ('/ai/v1 prefix is stripped') and acceptable path forms, which is real meaning beyond the schema. But 'body' is an untyped empty schema and 'query'/'method' semantics get no treatment, so the coverage gap is not fully closed.

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

Purpose4/5

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

States a specific mechanism and resource: a passthrough OpenAPI proxy exposing 'Full ai-ml-backend 1.0 on /ai/v1' with a 43-op allowlist. An agent understands what the tool is. However, it does not distinguish itself from the many dedicated sibling tools (list_ai_endpoints, list_ai_models, get_ai_dataset) that cover the same AI domain, so an agent cannot tell from this text alone when the proxy is preferred over 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?

Gives operational conditions ('paths may be /endpoints or /ai/v1/datasets', 'prefix is stripped when present') that help an agent form a call, but offers no when-to-use guidance relative to the dedicated list_ai_*/get_ai_* siblings or the other invoke_* proxies. Usage is implied by the resource scope rather than stated.

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

invoke_caas_apiInvoke CaaS / Cloud Container OpenAPIB
Destructive

[OPENAPI] Full Arvan CaaS 1.25 (Kubernetes-style) on caas/v2/zones/{zone}. Pass concrete path e.g. /api/v1/namespaces/my-ns/pods. Allowlist: 299 ops from paas-1.25.json (Arvan CaaS 1.25). Rejects unknown paths — does not invent APIs.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
pathYesConcrete path matching OpenAPI paas-1.25.json (fill path params). Example templates exist in docs/discovery/openapi/.
zoneYesCaaS zone e.g. ir-tbz-sh1 or ir-thr-ba1
queryNo
methodYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare openWorldHint=true and destructiveHint=true. The description usefully adds that the tool is bounded to an allowlist and 'rejects unknown paths — does not invent APIs', which is real behavioral context. However it never warns that POST/PUT/PATCH/DELETE mutate cluster state or notes auth requirements, so it leaves meaningful gaps for a destructive open-world 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?

Three short sentences, front-loaded with the resource scope, then the concrete-path guidance, then the allowlist boundary. Dense and waste-free, though the allowlist detail could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should 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 open-world destructive proxy with no output schema, the description covers scope and the allowlist constraint but omits auth expectations, response shape, and error semantics. Adequate to attempt a call, incomplete for calling 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 only 40%, so the description must compensate. It partially does for path (concrete-path example) and zone (embedded in the base path), but says nothing about the body or query objects, leaving half the parameters undocumented. Marginal 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?

States a specific verb+resource (invoke the Arvan CaaS 1.25 Kubernetes-style OpenAPI) and anchors it to the caas/v2/zones/{zone} base path, which distinguishes it from the other invoke_*_api siblings by domain. It stops short of explicitly naming which sibling to prefer over, but the 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?

Implies usage (call CaaS OpenAPI operations) and adds the constraint that only 299 allowlisted ops are accepted, but never states when to reach for this generic invoker versus a dedicated sibling like list_caas_pods or get_caas_pod. No exclusions or alternatives are named.

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

invoke_cdn_apiInvoke CDN OpenAPI operationA
Destructive

[OPENAPI] Call any path from CDN OpenAPI 4.181.3 on napi.../cdn/4.0. Prefer named CDN tools when available. Allowlist: 238 ops from cdn-4.0.yml (ArvanCloud CDN Services 4.181.3). Rejects unknown paths — does not invent APIs.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
pathYesConcrete path matching OpenAPI cdn-4.0.yml (fill path params). Example templates exist in docs/discovery/openapi/.
queryNo
methodYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, openWorldHint=true, so the safety profile is covered structurally. The description adds real value beyond them: a 238-op allowlist, a hard reject on unknown paths, and a 'does not invent APIs' guarantee, which tells the agent it will fail rather than hallucinate a route.

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

Conciseness5/5

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

Four short clauses, zero filler, with the identity of the tool front-loaded and the routing caveat placed before the allowlist detail.

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

Completeness4/5

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

For a spec-passthrough tool with no output schema, the description supplies the key operational facts an agent needs: which spec, how many operations, that it is a fallback, and that invalid paths are rejected. Only body/query semantics remain thin, which is defensible when the OpenAPI document itself is the 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?

Schema coverage is only 25%, so method/path are documented (and method has an enum) while body and query are not. The description compensates partially by constraining 'path' to the cdn-4.0.yml spec and mentioning template locations, but says nothing about how body or query values are interpreted for the 238 operations.

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

Purpose5/5

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

States a specific verb and resource ('Call any path from CDN OpenAPI 4.181.3') and pins the exact API surface (napi.../cdn/4.0) with an operation count, so it is clearly distinguishable from the sibling invoke_* passthrough tools (storage/iaas/vod/live).

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 routes the agent: 'Prefer named CDN tools when available,' which tells it this is the fallback. It stops short of naming precisely when the escape hatch is unavoidable (i.e., no named tool covers the operation), but the preference ordering is stated plainly.

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

invoke_edge_apiInvoke Edge Computing OpenAPIB
Destructive

[OPENAPI] Full Edge Computing 1.8.1 surface on edge-computing/v1. Allowlist: 25 ops from ec-1.0.yaml (Edge Computing 1.8.1). Rejects unknown paths — does not invent APIs.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
pathYesConcrete path matching OpenAPI ec-1.0.yaml (fill path params). Example templates exist in docs/discovery/openapi/.
queryNo
methodYes

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=true and openWorldHint=true, so the safety profile is covered. The description adds genuinely new behavior — a hard allowlist of 25 ops and rejection of unknown paths — which tells the agent calls can fail on unmatched paths, but says nothing about auth requirements, side effects, or how requests are dispatched.

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

Conciseness4/5

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

Three tight clauses, front-loaded with the API surface and immediately followed by the allowlist constraint. No filler or repeated structured data, though the parenthetical API version is restated near-verbatim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 generic invoker with a nested body object, 25% schema coverage and no output schema, the description leaves major gaps: the allowlisted operations are never enumerated or pointed to, no auth/permission guidance, and no hint of what a successful response contains.

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% (only 'path' is documented), so the description needs to compensate and does not. It never explains the meaning of 'method', 'body' or 'query', nor the shape/field expectations of body for the underlying OpenAPI operations.

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

Purpose4/5

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

It names a specific verb+resource ('Full Edge Computing 1.8.1 surface on edge-computing/v1') and scopes it to 25 allowlisted ops, which distinguishes it from sibling pass-throughs like invoke_cdn_api or invoke_storage_api. It stops short of saying what the Edge Computing surface operationally covers, but an agent can tell which API family it targets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 'allowlist: 25 ops' plus 'rejects unknown paths — does not invent APIs' implies usage is bounded to known ec-1.0.yaml operations, which partially routes the agent. However it never says when to prefer this generic invoker over the many typed siblings (create_edge_route, list_edge_computes, deploy_edge_compute), so the choice remains inferential.

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

invoke_iaas_v1_apiInvoke IaaS OpenAPI v1 (ecc/v1)A
Destructive

[OPENAPI] Call napi.../ecc/v1 paths from iaas-1.0.json (servers, networks, float-ips, databases, …). Use concrete paths e.g. /regions/ir-thr-c2/servers. Allowlist: 136 ops from iaas-1.0.json (Arvancloud IaaS API 1.0.0). Rejects unknown paths — does not invent APIs.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
pathYesConcrete path matching OpenAPI iaas-1.0.json (fill path params). Example templates exist in docs/discovery/openapi/.
queryNo
methodYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, destructiveHint=true, so the agent knows this is a write-capable, open-world, destructive tool. The description adds the allowlist bound and that unknown paths are rejected, which is useful. It doesn't describe auth requirements, rate limits, or what happens on a partial-batch 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?

Three compact clauses: scope, example, and allowlist constraint. Front-loaded and no filler. Slightly dense with metadata (allowlist count) but still 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 generic catch-all API proxy with 4 params, 25% schema coverage, no output schema, and destructive semantics, the description covers the essential what and the path constraint but omits auth, body/query semantics, and how this relates to the more specific IaaS siblings.

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 25% and the description only elaborates on 'path' (concrete vs template, example given). 'method', 'query', and 'body' are not given any semantic guidance. Some value is added over the bare schema, but the description does not compensate for the 75% coverage gap.

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

Purpose5/5

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

The description names a concrete verb and resource ('Call napi.../ecc/v1 paths from iaas-1.0.json'), lists the covered domains (servers, networks, float-ips, databases) and identifies the exact OpenAPI spec and allowlist size (136 ops). It clearly distinguishes itself from other generic 'invoke_*_api' siblings by naming the Iaas IaaS v1 surface.

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 tells the agent to use concrete paths (with example), and that unknown paths are rejected. It does not explicitly say when to pick this tool over the more specific siblings (e.g., list_servers, create_server) or invoke_iaas_v3_api, which would be the key routing decision.

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

invoke_iaas_v3_apiInvoke IaaS OpenAPI v3B
Destructive

[OPENAPI] Call ecc.{region}.arvanapis.ir/v3 paths from iaas-3.0.0.yaml (servers, volumes, firewalls, networks, …). Allowlist: 45 ops from iaas-3.0.0.yaml (Arvancloud IaaS API Documentation v3.0.1). Rejects unknown paths — does not invent APIs.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
pathYesConcrete path matching OpenAPI iaas-3.0.0.yaml (fill path params). Example templates exist in docs/discovery/openapi/.
queryNo
methodYes
regionYesRegion code for ecc.{region}.arvanapis.ir/v3

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 and openWorldHint=true, so the safety profile is covered. The description adds real value beyond that by disclosing the allowlist boundary and the 'does not invent APIs' rejection behavior. It does not, however, discuss auth requirements, rate limits, or destructive implications of the underlying write operations.

Agents need to know what a tool does to the world before 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 compact sentences with the endpoint and scope front-loaded. There is minor redundancy in naming iaas-3.0.0.yaml twice and mixing doc version v3.0.1 with the yaml name, but 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 broad proxy spanning 45 operations with no output schema and low parameter coverage, the entry point is described but key operational detail is missing: where the agent finds the allowed paths/operation list, what the call returns, and how write vs read operations differ. Adequate but with clear gaps for a tool of this breadth.

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

Parameters3/5

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

Schema coverage is only 40%, so some description-side explanation is needed. It clarifies that the path must match iaas-3.0.0.yaml paths and that region feeds the ecc.{region} host template, which adds meaning to two of the five parameters. Method, body, and query receive no additional 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 action (call paths on the IaaS v3 OpenAPI endpoint) and enumerates covered resources (servers, volumes, firewalls, networks). It is clearly distinguishable from invoke_iaas_v1_api by the v3 version and the ecc.{region} host, though that distinction is implied 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 Guidelines2/5

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

The description limits scope ('Allowlist: 45 ops', 'Rejects unknown paths') but never says when to use this generic proxy versus the many dedicated IaaS tools (list_servers_v3, get_server, create_server, list_networks, etc.) or versus invoke_iaas_v1_api. No when/when-not guidance or preferred alternative is given.

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

invoke_live_apiInvoke LIVE OpenAPIB
Destructive

[OPENAPI] Full Arvan LIVE 2.0 surface (streams, watermarks, reports, metrics). Allowlist: 36 ops from live-2.0.json (Arvan LIVE 2.0). Rejects unknown paths — does not invent APIs.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
pathYesConcrete path matching OpenAPI live-2.0.json (fill path params). Example templates exist in docs/discovery/openapi/.
queryNo
methodYes

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, destructiveHint=true, and openWorldHint=true, so the safety profile is covered structurally. The description adds a genuinely useful behavioral trait those annotations do not convey: hard allowlist enforcement ('Rejects unknown paths — does not invent APIs'), which tells the agent calls will fail fast rather than silently hit arbitrary endpoints. It still says nothing about auth requirements or the side effects of specific methods, so it stops short of a 5.

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

Conciseness4/5

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

Three dense sentences, front-loaded with the product scope and immediately followed by the allowlist constraint. Slightly jargon-heavy ('36 ops from live-2.0.json') but every sentence carries information and there is no 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?

This is a destructive, open-world, 4-parameter tool spanning an entire product surface with no output schema and near-zero parameter documentation. The description covers scope and the allowlist guardrail but omits how to discover valid paths, what body/query shapes are expected, and what a successful or rejected invocation returns — significant gaps for a tool this broad.

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?

Only 1 of 4 parameters (25% schema coverage) has any schema description, and the description text adds nothing about method, query, or body semantics. For a 4-param open-world passthrough where three parameters are effectively undocumented, the description needed to compensate and does not; 'fill path params' appears only in the schema.

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

Purpose4/5

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

The description names a concrete product surface (Arvan LIVE 2.0) and enumerates its domains (streams, watermarks, reports, metrics), which distinguishes it from the sibling passthrough tools (invoke_cdn_api, invoke_vod_api, invoke_vads_api, etc.) that target other products. It never states the action verb explicitly (that a raw HTTP request is executed against that surface), but the product-scoped noun phrase plus the '[OPENAPI]' tag and 'Allowlist: 36 ops from live-2.0.json' make the purpose identifiable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 an implicit usage boundary: only the 36 allowlisted ops are accepted and unknown paths are rejected, so the agent knows it must be inside that set. However, it never says when to prefer this generic escape hatch over the dedicated siblings that already cover the same product (list_live_streams, get_live_stream, get_live_domain, list_live_watermarks), which is exactly the routing decision an agent needs.

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

invoke_storage_apiInvoke Object Storage management OpenAPIB
Destructive

[OPENAPI] Call storage.arvanapis.ir management API (OpenAPI storage/1.0.0). Paths are /v1/...; base already includes /v1 so /v1 is stripped. Allowlist: 58 ops from storage-1.0.0.yaml (Object Storage API 1.0.0). Rejects unknown paths — does not invent APIs.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
pathYesConcrete path matching OpenAPI storage-1.0.0.yaml (fill path params). Example templates exist in docs/discovery/openapi/.
queryNo
methodYes

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 and openWorldHint=true, so the mutation/open-world profile is covered. The description adds real behavioral context the annotations do not: a bounded 58-operation allowlist and explicit rejection of unknown paths, which tells the agent it cannot fabricate endpoints.

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

Conciseness4/5

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

Compact and front-loaded: identity, path convention, allowlist scope, and rejection behavior in roughly three clauses. The path-rewriting sentence is slightly cryptic but earns its place given how easy it would be to double-prefix /v1.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should 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 open-world, destructive passthrough with no output schema, the description covers the allowlist and path mechanics but omits auth expectations, error behavior, and — most importantly — the relationship to the dedicated storage tools it overlaps with. Adequate but leaves a real selection 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 only 25%; path and method are documented (path has a description, method an enum) but body and query are bare objects. The description compensates partially by explaining the /v1 base/path relationship, easing the most error-prone parameter, but says nothing about body or query shape.

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

Purpose4/5

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

States a specific verb (Call) and resource (storage.arvanapis.ir management API, OpenAPI storage/1.0.0), and the allowlist of 58 ops frames its scope as a passthrough. It separates itself from the other invoke_*_api siblings by naming the storage domain, but it never distinguishes itself from the dedicated object-storage tools (list_buckets, create_bucket, put_object_text) that sit alongside 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 generic dispatcher versus the many purpose-built storage tools (list_buckets, head_object, delete_bucket) or the other invoke_*_api tools. The only usage-like note is the mechanical /v1 stripping rule, which is about path formatting, not tool selection.

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

invoke_vads_apiInvoke Video Ads OpenAPIC
Destructive

[OPENAPI] Full VADS 2.0 surface (channels, campaigns, ads, transactions). Allowlist: 29 ops from vads-2.0.json (ArvanCloud Video Advertising Service 2.0). Rejects unknown paths — does not invent APIs.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
pathYesConcrete path matching OpenAPI vads-2.0.json (fill path params). Example templates exist in docs/discovery/openapi/.
queryNo
methodYes

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, destructiveHint=true, and openWorldHint=true, so the safety profile is covered. The description adds genuine context beyond that: an allowlist cap and that unknown paths are rejected rather than fabricated. It does not address auth, error semantics, or which HTTP methods map to destructive 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 tight sentences with the allowlist and the no-invention guarantee front-loaded. No filler, no repetition of the title, and the key operational constraint is stated early.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, destructive passthrough with arbitrary paths and no output schema, the description is too thin. It never explains how to enumerate the 29 allowed operations, what happens on rejection, or how to pick this over the dedicated VADS tools, leaving major gaps for a high-complexity tool.

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% and the description adds essentially nothing about the four parameters. method, query, and body carry no explanation anywhere, leaving the agent to infer the calling contract from the OpenAPI spec alone. The path parameter's meaning is only defined in the schema, not elaborated by the 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 (invoke) and resource (VADS 2.0 OpenAPI surface) and enumerates the covered domains (channels, campaigns, ads, transactions). This differentiates it from sibling invoke_* tools (invoke_vod_api, invoke_live_api) by naming the exact service, though it doesn't distinguish itself from the dedicated get_vads_* / list_vads_* 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?

Provides a hard constraint (allowlist of 29 ops, rejects unknown paths) but gives no guidance on when to use this generic passthrough versus the dedicated typed VADS tools that appear as siblings (list_vads_channels, get_vads_campaign, etc.). No when-not, no prerequisites, no alternative routing.

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

invoke_vod_apiInvoke VOD OpenAPIB
Destructive

[OPENAPI] Full Arvan VOD 2.0 surface (channels, videos, files, reports, …). Allowlist: 54 ops from vod-2.0.json (Arvan VOD 2.0). Rejects unknown paths — does not invent APIs.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
pathYesConcrete path matching OpenAPI vod-2.0.json (fill path params). Example templates exist in docs/discovery/openapi/.
queryNo
methodYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, so the mutation/scope risk is covered structurally. The description usefully adds that the surface is bounded to 54 allowlisted ops and that unknown paths error rather than being invented. It still omits auth requirements, the fact that DELETE/PUT are reachable through it, and any rate-limit or side-effect detail 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?

Two tight sentences, front-loaded with the scope and then the constraint, with no filler. It is appropriately sized for a passthrough, though the second sentence could carry a routing hint at no cost.

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

Completeness3/5

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

For a generic OpenAPI invoker with an untyped body, no output schema, and 25% parameter coverage, the description is thin on how to discover valid paths and payload shapes. The allowlist bound is helpful, but an agent still lacks enough to invoke it confidently versus the dedicated VOD tools.

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%: only 'path' is documented, while 'body' has an empty schema and 'query' is a loosely-typed object, and the description explains none of the four parameters. With low coverage the description is expected to compensate with method/path/body conventions, and it does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 action (invoking the Arvan VOD 2.0 OpenAPI surface) and scopes it to an allowlist of 54 ops from vod-2.0.json. That is clearly distinct from the many dedicated siblings (list_vod_videos, get_vod_channel, create_vod_channel), but it never explicitly says it is the generic escape hatch for operations those tools don't cover, so the differentiation is implicit rather than stated.

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

Usage 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. With ~15 dedicated VOD siblings in the list, the definition should state whether to prefer them and reach for this only when no dedicated tool exists; instead it only says unknown paths are rejected, which is a constraint, not a routing rule.

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

list_ai_bucketsList AI region bucketsC
Read-only

[READ] OpenAPI: GET /ai/v1/buckets/{region} (called as buckets/{region} on /ai/v1).

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYes

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 and openWorldHint=true. The description only repeats the read-only posture with '[READ]' and gives an API route; it adds no behavioral context such as pagination, return shape, or region constraints.

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 one-line endpoint fragment is concise but not front-loaded with the tool’s purpose. The parenthetical restates the route in different notation, and the '[READ]' tag duplicates the readOnly annotation rather than adding 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 simple list tool with no output schema and 0% parameter-description coverage, the definition leaves region meaning, return shape, and sibling choice unstated. The route and read annotation provide only minimal context.

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% for the single required region parameter. The description indicates region is a path segment, but it does not explain valid region values, format, or meaning, so it only marginally compensates for the schema 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 title and exposed GET collection path imply it lists AI buckets for a region, but the description itself gives no plain-language verb or object. It also does not distinguish this from sibling bucket-list tools such as list_buckets or list_storage_api_buckets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 comparison to alternatives. An agent must infer usage entirely from the endpoint path and tool name.

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

list_ai_datasetsList AI datasetsC
Read-only

[READ] OpenAPI: GET /ai/v1/datasets → buckets path under /ai/v1 base as datasets

ParametersJSON Schema
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 and openWorldHint=true, so the safety profile is covered. The description adds nothing behavioral beyond duplicating '[READ]' and an opaque path mapping; no return shape, pagination, or scope information is given.

Agents need to know what a tool does to the world before 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, so it wastes no space, but the single sentence is cryptic pseudo-structure (arrow notation, base-path jargon) rather than front-loaded meaning. Brevity here reflects under-specification, not 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 and no annotations explaining scope, the description should at least say what datasets are and roughly what the response contains. Instead it offers an internal path mapping, leaving an agent unable to describe the return or distinguish this from list_ai_buckets.

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 burden is nil and the baseline is 4. The description does not need to explain parameter semantics, and its route-mapping sentence adds no parameter confusion.

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 name and title state a clear verb+resource (list AI datasets), but the description itself only maps the tool to an OpenAPI route and never says what a 'dataset' is or what listing returns. The phrase 'buckets path under /ai/v1 base as datasets' is confusing rather than clarifying, and gives no differentiation from sibling list_ai_buckets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 guidance is the '[READ]' tag, which restates the readOnlyHint annotation. There is no statement of when to call this versus list_ai_buckets, list_ai_models, or list_ai_knowledge_bases, nor any prerequisite or filtering context.

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

list_ai_endpointsList AI endpointsC
Read-only

[READ] OpenAPI: GET /endpoints

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 and openWorldHint=true, so the safety profile is covered. The description's only added signal is the '[READ]' prefix and raw HTTP path, which duplicates the annotation rather than adding context like return format or pagination 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 extremely short and front-loaded with no filler, but almost every token is either a restatement of the name or an internal HTTP detail, so the brevity reflects under-specification rather than disciplined 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?

With no output schema and no parameters, the description should at least say what a listing returns and whether it is paginated or account-scoped. Instead it offers only the raw REST mapping, leaving 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.

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 nothing for the description to disambiguate at the parameter level.

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 '[READ] OpenAPI: GET /endpoints' mostly restates the tool name and title, adding only the HTTP verb and path. It does not explain what an AI endpoint is or how this list differs from siblings like get_ai_endpoint or list_ai_models.

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 mention of alternatives such as get_ai_endpoint, and no indication of scope (e.g., pagination, filtering) beyond the word [READ].

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

list_ai_knowledge_basesList AI knowledge basesC
Read-only

[READ] OpenAPI: GET /knowledge-bases

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 and openWorldHint=true, so safety is covered structurally. The description adds essentially nothing beyond the [READ] tag and the endpoint path; it does not describe pagination, return shape, or 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?

The single line is short and front-loaded with the [READ] marker. It is concise, though arguably under-specified rather than deliberately minimal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with no output schema, the description should at least hint at what is returned or how results are scoped. It provides none of that, leaving the agent without a mental model of the response.

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 the schema is trivially complete and the description carries no parameter burden. Baseline for a 0-param tool is 4.

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

Purpose2/5

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

The description merely restates the tool name plus an HTTP verb and path ("OpenAPI: GET /knowledge-bases"). It does not explain what an AI knowledge base is or how this list differs from siblings like list_ai_models or list_ai_datasets. The verb+resource is present but adds no semantic value beyond the title.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus the many other list_ai_* siblings. An agent gets no help deciding this is the right list to call.

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

list_ai_modelsList AI modelsC
Read-only

[READ] OpenAPI: GET /models

ParametersJSON Schema
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 provide readOnlyHint=true and openWorldHint=true, so the description's [READ] marker merely repeats structured data. It adds the endpoint path but does not disclose pagination behavior, response shape, authentication requirements, or any other operational context 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.

Conciseness4/5

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

The description is one compact line with the read-only marker front-loaded and no wasted prose. It is appropriately short for a zero-parameter tool, though it is arguably too minimal to be fully 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 zero-parameter list operation with no output schema, the description is minimally sufficient: it names the endpoint and indicates read-only access. It still omits expected return shape, pagination, and how the results relate to sibling AI resource listings.

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 the baseline is 4. There are no parameter semantics for the description to clarify beyond what the empty schema already shows.

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 identifies the operation as a read-only OpenAPI GET /models call, and the title 'List AI models' makes the resource clear. However, it does not distinguish this collection-listing tool from the sibling get_ai_model tool beyond the plural endpoint path, relying largely on the name and title to convey 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 guidance on when to use list_ai_models versus alternatives such as get_ai_model or list_ai_endpoints. The [READ] marker implies a safe listing operation, but no usage context or routing guidance is provided.

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

list_ai_providersList AI providersC
Read-only

[READ] OpenAPI ai-ml-backend: GET /providers

ParametersJSON Schema
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=true and openWorldHint=true, and the description's '[READ]' marker duplicates that with no added context. It says nothing about pagination, result volume, or whether the list is scoped to the caller's account.

Agents need to know what a tool does to the world before 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 terse line with no filler and the key signal front-loaded. It is efficient, though the terseness comes at the cost of any real explanatory 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 no-arg list tool with annotations covering the safety profile and no output schema, the minimum is arguably met. However, the description provides nothing about what a 'provider' is, whether results are paginated, or how it differs from the other AI listing tools, leaving real 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?

The tool takes zero parameters, so there is nothing for the description to clarify; schema coverage is also reported at 100%. 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.

Purpose3/5

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

The description essentially restates the name and title ('List AI providers') and adds an implementation pointer ('OpenAPI ai-ml-backend: GET /providers'). The verb+resource is clear, but it does nothing to distinguish this from siblings like list_ai_models or list_ai_endpoints beyond the word 'providers'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 other list_* AI tools, no prerequisites, and no exclusions. The '[READ]' tag only implies a non-mutating call, which annotations already state.

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

list_bucketsList Object Storage bucketsB
Read-only

[READ] S3 ListBuckets via official AWS-compatible SDK pattern (FA developer-tools/sdk/object-storage/list-bucket).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is fully covered by structured data. The '[READ]' prefix simply restates readOnlyHint, and the description adds no new behavioral context such as account scope, pagination, 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?

It is a single short sentence with the operation front-loaded, which is good, but the trailing internal reference '(FA developer-tools/sdk/object-storage/list-bucket)' is noise for an agent that cannot open that 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 parameterless read tool with no output schema, the description is minimally sufficient: annotations carry safety and the return shape (a set of buckets) is implied by the name. It still omits scoping and the sibling-distinction an agent needs to pick this over list_ai_buckets or list_storage_api_buckets.

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 nothing for the description to clarify beyond what the (empty) schema already conveys.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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, title and '[READ] S3 ListBuckets' phrasing state a specific verb and resource, so an agent knows this lists object-storage buckets. However, it gives no differentiation from sibling list operations such as list_ai_buckets, list_storage_api_buckets or list_objects, so the agent cannot tell which list tool applies to which bucket domain.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus the several other bucket-listing siblings, no prerequisites, and no exclusions. The only hint of context is the internal SDK path reference, which does not help an agent decide between competing tools.

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

list_caas_configmapsList CaaS configmapsC
Read-only

[READ] OpenAPI: GET /api/v1/namespaces/{namespace}/configmaps

ParametersJSON Schema
NameRequiredDescriptionDefault
zoneYesCaaS zone from OpenAPI servers, e.g. ir-tbz-sh1 (Shahriar) or ir-thr-ba1 (Bamdad)
namespaceYesKubernetes namespace / project name

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 and openWorldHint=true, and the '[READ]' prefix plus the GET route merely restate that read-only nature without adding anything. No information is given about pagination, result size, namespace scoping side effects, or auth requirements, so the description contributes essentially no behavior 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?

It is a single short, front-loaded line with no filler, which is good. But the '[READ]' tag duplicates the annotation and the raw OpenAPI path is low-value phrasing, so while it is terse it is arguably under-specified rather than optimally 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?

With no output schema, annotations covering the read-only safety profile, and 100% schema description coverage, the minimal remaining burden is modest. Still, an agent gets no guidance on scoping, ordering, or pagination for a list operation across a potentially large namespace, leaving a small but 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% (zone and namespace are both documented with examples), so the schema carries full parameter meaning. The description adds nothing about how the two parameters combine or any format nuances, which is the expected baseline 3 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 name and title carry the specific verb+resource (list configmaps in a CaaS zone/namespace), and the description adds the backing endpoint GET /api/v1/namespaces/{namespace}/configmaps. However, it does not differentiate this tool from siblings such as list_caas_pods, list_caas_services, or list_caas_deployments beyond the resource noun, so the purpose is clear but not sibling-distinguishing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 mention of alternatives (e.g., using invoke_caas_api for arbitrary resources). The only context is the HTTP route, which tells the agent nothing about when this tool should be selected over its many CaaS siblings.

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

list_caas_deploymentsList CaaS deploymentsC
Read-only

[READ] OpenAPI: GET /apis/apps/v1/namespaces/{namespace}/deployments

ParametersJSON Schema
NameRequiredDescriptionDefault
zoneYesCaaS zone from OpenAPI servers, e.g. ir-tbz-sh1 (Shahriar) or ir-thr-ba1 (Bamdad)
namespaceYesKubernetes namespace / project name

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 and openWorldHint=true, so the safety profile is covered. The description contributes nothing beyond the raw endpoint — no scoping behavior, no indication of whether results are paginated or limited to a namespace, so it fails to add context even against the lower bar set by annotations.

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

Conciseness2/5

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

It is a single line with zero waste, but the economy comes from under-specification rather than tight writing: the one sentence merely echoes the HTTP verb and path. Brevity here is not a virtue.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn 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-only list tool with full schema coverage and no output schema, the structured fields carry most of the load. Still, the description offers no hint about result scope or filtering, leaving the agent to infer behavior entirely.

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

Parameters3/5

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

Schema description coverage is 100%, with both zone and namespace fully documented in the schema, so the baseline is 3. The description only repeats the {namespace} path variable and adds no format or example detail beyond what the schema already supplies.

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 only the raw OpenAPI route 'GET /apis/apps/v1/namespaces/{namespace}/deployments', which restates the resource already named by the title 'List CaaS deployments'. It adds no distinguishing detail versus siblings like list_caas_services or get_caas_deployment, so an agent gains nothing 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 when-to-use guidance, no mention of prerequisites (zone/namespace required), and no reference to alternatives such as get_caas_deployment for a single deployment. The '[READ]' prefix weakly implies a safe listing operation but nothing more.

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

list_caas_podsList CaaS podsC
Read-only

[READ] OpenAPI Arvan CaaS 1.25: GET /api/v1/namespaces/{namespace}/pods on zone base.

ParametersJSON Schema
NameRequiredDescriptionDefault
zoneYesCaaS zone from OpenAPI servers, e.g. ir-tbz-sh1 (Shahriar) or ir-thr-ba1 (Bamdad)
namespaceYesKubernetes namespace / project name

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 and openWorldHint=true, so the '[READ]' tag merely restates structured data without adding value. Nothing is said about pagination behavior, result volume, default namespace scoping, or what the response contains — useful context that 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?

It is a single short line with no waste, which is good, but it is arguably under-specified rather than concise, and the trailing phrase 'on zone base' is awkward and adds ambiguity rather than information.

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

Completeness3/5

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

For a simple two-parameter read-only list tool with a fully documented schema, the definition is minimally adequate. The absence of any note on pagination or return shape is a minor gap given there is no output schema, but the endpoint-only framing leaves the agent with little beyond the structured fields.

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

Parameters3/5

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

Schema description coverage is 100%, so both zone and namespace are already documented in the schema (including example zone codes), which sets the baseline at 3. The description adds no syntax or format detail 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 the resource (CaaS pods) and the REST endpoint (GET /api/v1/namespaces/{namespace}/pods), so the operation is inferable, but the actual verb comes from the tool title rather than the prose, and the trailing 'on zone base' is vague filler. It offers no differentiation from the sibling get_caas_pod, which an agent could easily confuse with this list operation.

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

Usage 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 get_caas_pod, list_caas_deployments, or list_caas_services. The agent is left to infer that this is the bulk-listing variant of the pod resource 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.

list_caas_servicesList CaaS servicesC
Read-only

[READ] OpenAPI: GET /api/v1/namespaces/{namespace}/services

ParametersJSON Schema
NameRequiredDescriptionDefault
zoneYesCaaS zone from OpenAPI servers, e.g. ir-tbz-sh1 (Shahriar) or ir-thr-ba1 (Bamdad)
namespaceYesKubernetes namespace / project name

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 and openWorldHint=true, so safety is covered structurally. The description adds essentially nothing beyond that: it does not say whether results are paginated, whether they are namespace-scoped only, whether the response is eventually consistent, or what the zone parameter implies about reachability.

Agents need to know what a tool does to the world before 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 a single short line with no filler, and the read marker is front-loaded. However, its brevity comes from under-specification rather than disciplined editing — there is simply nothing substantive to trim or organize.

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

Completeness2/5

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

There is no output schema and the description never explains what the listed services represent or what fields come back. For a namespaced Kubernetes-style listing tool with two required parameters, the definition leaves the agent without enough context to predict the call's behavior or 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 'zone' (with example values) and 'namespace' are already fully documented in the schema. The description adds no syntax, format, or constraint detail beyond that, so the baseline 3 for high-coverage schemas 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 little more than a restatement of the tool name plus the underlying HTTP route: '[READ] OpenAPI: GET /api/v1/namespaces/{namespace}/services'. It gives no independent statement of what a CaaS service is or what scope is listed, and it does nothing to distinguish this tool from siblings like list_caas_pods, list_caas_deployments, or invoke_caas_api.

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

Usage Guidelines2/5

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

There is no when-to-use guidance at all — no context for choosing this over invoke_caas_api (generic passthrough) or the other list_caas_* tools. The '[READ]' tag is the only hint about usage, and it merely echoes the readOnlyHint annotation rather than explaining a scenario.

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

list_database_flavorsList DBaaS flavorsC
Read-only

[READ] OpenAPI IaaS 1.0: GET /regions/{region}/databases/flavors (ecc/v1).

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYesCloud Server region id from official docs, e.g. ir-thr-c2

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 and openWorldHint=true, so safety profile is covered. The description adds the OpenAPI version and HTTP method, which is useful metadata, but does not disclose pagination, return format, or rate limits 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?

Extremely concise, one sentence with no wasted words. It is front-loaded with the [READ] marker and endpoint, though the brevity sacrifices explanatory 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 list tool with one parameter and no output schema, the description fails to explain what a 'flavor' is (DBaaS compute sizing) or what fields are returned, and gives no context to distinguish from other list tools. With no output schema, the description should carry more 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 description coverage is 100% and the single required parameter 'region' is already thoroughly documented in the schema with an example. The description adds no parameter syntax or constraints beyond the schema, so baseline 3 is appropriate.

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

Purpose3/5

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

The description states a read operation on database flavors via the OpenAPI route, which conveys the resource and verb but relies almost entirely on the endpoint path rather than a plain-language explanation. It distinguishes the tool somewhat by naming the specific endpoint, yet the purpose is vague without reading the URL structure.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 siblings like list_flavors (compute) or create_database. The [READ] tag implies read-only, but there is no explicit context or alternative routing.

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

list_dns_recordsList DNS recordsB
Read-only

[READ] List DNS records for a domain. Official: GET /cdn/4.0/domains/{domain}/dns-records

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

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, destructiveHint=false, and openWorldHint=true, and the description's "[READ]" marker merely restates that safety profile. It adds no behavior beyond the annotations: no pagination, result volume, ordering, or rate-limit context.

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

Conciseness5/5

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

Two short sentences, front-loaded with purpose, and the trailing official endpoint is directly useful for routing the call to the correct API. No 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 single-parameter read tool whose annotations already cover the safety profile, the description is essentially complete; the only gap is that it never hints at the shape or volume of the returned record list, 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 0% for the single domain parameter, so the description carries the burden. "for a domain" confirms the parameter is the target domain but adds nothing about format, constraints, or that it is required, which the schema's pattern and required array already imply.

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

Purpose4/5

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

States a specific verb and resource ("List DNS records for a domain") and the [READ] tag separates it from the mutation siblings create_dns_record, update_dns_record, and delete_dns_record. However, it never names get_dns_record, the closest read sibling, so the boundary between listing and fetching a single record 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?

Usage is only implied by the name and the [READ] tag – an agent can infer to use this for enumeration rather than fetching one record. There is no explicit when-to-use, when-not-to-use, or named alternative (get_dns_record) guidance.

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

list_domainsList CDN domainsA
Read-only

[READ] List domains registered in the ArvanCloud CDN account. Official: GET /cdn/4.0/domains

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds a '[READ]' marker and the underlying REST endpoint (GET /cdn/4.0/domains), which is modest extra context but says nothing about pagination, result size, or filtering behavior.

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

Conciseness5/5

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

Two short, dense sentences with the read-only nature and the resource scope front-loaded and no 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 zero-parameter read-only list tool with no output schema, the description covers purpose, safety marker, and the backing endpoint. The only gap is the absence of any hint about result shape/pagination, which is minor here.

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 per the rubric the baseline is 4. There is no parameter information the description needs to (or does) compensate for.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid 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 domains registered in the ArvanCloud CDN account') with the scope of the collection made explicit. It does not explicitly differentiate itself from siblings like get_domain or register_domain, but the verb+resource combination is unambiguous.

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

Usage Guidelines3/5

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

Usage is implied by the word 'List' against siblings such as get_domain (singular) and register_domain, but there is no explicit statement of when to use this versus those alternatives or any preconditions. Minimum-viable guidance.

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

list_edge_computesList Edge ComputesC
Read-only

[READ] OpenAPI Edge Computing: GET /edge-computes (optional query: application, q, page, per_page).

ParametersJSON Schema
NameRequiredDescriptionDefault
qNo
pageNo
per_pageNo
applicationNo

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 and openWorldHint=true, so the '[READ]' marker and HTTP GET reference add no meaningful behavioral context. The description does not disclose pagination behavior, default page size, auth requirements, rate limits, or what the response contains. Beyond annotations, it contributes essentially nothing about how the tool behaves.

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

Conciseness5/5

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

The description is a single compact line that front-loads the read nature, the source API, the operation, and the parameter list. No sentence is wasted, and an agent can scan it quickly. It is appropriately sized for a simple list endpoint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 parameterized list endpoint with no output schema and no parameter descriptions anywhere, the definition is too thin. It omits filtering semantics, pagination defaults, and even a hint about the shape of the returned collection. An agent could invoke it, but would have to guess at most operational details.

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%, so the description carries the full burden of explaining the four parameters, but it only lists their names (application, q, page, per_page). It does not explain what 'application' filters by, what 'q' searches, or what the pagination bounds mean. Naming the parameters adds almost no semantics beyond what the schema's property keys already show.

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

Purpose4/5

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

The description states a specific verb and resource — list edge computes — and grounds it in the underlying HTTP operation GET /edge-computes. It is immediately distinguishable from the singular get_edge_compute sibling by the word 'list', though it never explicitly contrasts the two. A clear purpose, but no explicit 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?

The description only says the query parameters are optional; it gives no guidance on when to use this tool versus get_edge_compute, list_edge_routes, or the other list/get siblings. No exclusions, prerequisites, or alternative-routing conditions are provided. Usage must be inferred entirely from the tool name and endpoint.

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

list_edge_deploymentsList Edge Compute deploymentsC
Read-only

[READ] OpenAPI: GET /edge-computes/{edgeComputeId}/deployments

ParametersJSON Schema
NameRequiredDescriptionDefault
edge_compute_idYes

TDQS

C2.4/5.0
Behavior2/5

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

The '[READ]' prefix merely duplicates readOnlyHint=true, and nothing is said about pagination, result ordering, or what happens when the edge compute has no deployments. With annotations already covering the safety profile, the description contributes almost no behavioral context beyond the HTTP verb.

Agents need to know what a tool does to the world before 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 a single front-loaded line with zero waste, but this is brevity by omission rather than disciplined conciseness. The '[READ]' tag is the only structured signal before the raw 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 list tool with no output schema, the description should indicate the shape and pagination of results and the meaning of the scoping id. Neither is present, so an agent cannot predict the response or confidently construct the call beyond copying 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 description coverage is 0% and the single parameter edge_compute_id carries no description in either the schema or the description text. The path fragment implies the id is a path parameter scoping the query, but no format, source, or constraint (e.g. where to obtain a valid id) is given.

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 identifies a read operation against the deployments sub-resource of a specific edge compute via the raw path GET /edge-computes/{edgeComputeId}/deployments, which adds the scoping relationship that the bare name 'list_edge_deployments' does not convey. However, it never states what a 'deployment' is or what is returned, so it remains a near-restatement of the endpoint rather than a full 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 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. Siblings such as get_edge_compute, deploy_edge_compute, list_edge_computes, and list_caas_deployments make it non-obvious which listing tool an agent should choose, and the description offers no routing help.

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

list_edge_env_variablesList Edge Compute env variablesC
Read-only

[READ] OpenAPI: GET /edge-computes/{edgeComputeId}/env-variables

ParametersJSON Schema
NameRequiredDescriptionDefault
edge_compute_idYes

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 and openWorldHint=true, and the description's '[READ]' prefix merely duplicates that. It adds no further behavioral context such as whether variables are masked/secrets, pagination, 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.

Conciseness2/5

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

It is very short and front-loaded, but this brevity reflects under-specification rather than efficient conciseness. The one line carries almost no informational payload for the 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?

With no output schema, a mutation-free read tool, and 0% parameter documentation, the description should carry more of the load. It omits return shape, pagination, and the meaning of the ID, leaving the agent to guess.

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% for the single required edge_compute_id parameter. The path template '{edgeComputeId}' hints that the parameter identifies the edge compute, but the description adds no format, source, or semantics beyond the schema's bare string type.

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 maps to a concrete REST endpoint (GET /edge-computes/{edgeComputeId}/env-variables), which conveys the resource and read operation, but it largely restates the tool name rather than adding a distinct explanation of what listing env variables entails. It does not differentiate this tool from siblings like list_edge_computes or set_edge_env_variable beyond the 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 guidance on when to use this tool versus alternatives such as get_edge_compute or set_edge_env_variable. The agent must infer usage entirely from the name and HTTP verb, with no prerequisites or exclusions stated.

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

list_edge_plansList Edge Computing plansC
Read-only

[READ] OpenAPI: GET /plans

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 and openWorldHint=true. The description's '[READ]' merely repeats readOnlyHint and 'GET /plans' adds only the HTTP endpoint; it does not disclose auth requirements, pagination, rate limits, or any 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 brief and technically concise, but it is under-specified rather than efficient. The single fragment '[READ] OpenAPI: GET /plans' is front-loaded but contains almost no actionable scope or 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 zero-parameter read-only list endpoint, annotations cover the safety profile, but the description still omits what a plan represents, whether results are paginated, and what categories or fields are returned. No output schema exists to compensate for this 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?

The tool has zero parameters, so the rubric baseline is 4. There are no parameter semantics to add, and the description does not misrepresent any parameter behavior.

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 only '[READ] OpenAPI: GET /plans'. It identifies a read-only GET endpoint, but does not explain what an Edge Computing plan is or distinguish it from siblings such as list_edge_computes, list_edge_routes, or invoke_edge_api. Since the title already states 'List Edge Computing plans', this largely restates the title plus HTTP method.

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 exclusions, and no named alternatives. Among many list_* and edge-related sibling tools, the description gives an agent no basis for choosing this tool over another.

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

list_edge_routesList Edge Compute routesC
Read-only

[READ] OpenAPI: GET /edge-computes/{edgeComputeId}/routes

ParametersJSON Schema
NameRequiredDescriptionDefault
edge_compute_idYes

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 and openWorldHint=true, and the '[READ]' tag merely duplicates readOnlyHint. The description adds no behavioral context such as pagination, result ordering, required permissions, or whether a nonexistent id errors versus returning an empty list. For a list endpoint of unknown size, this is a thin disclosure.

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 only because it is empty: a single bracketed tag plus an OpenAPI path reference. Brevity here reflects under-specification rather than efficient front-loading of useful information, so there is nothing to 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?

The tool is simple (one required id parameter, no output schema, no nested objects), but the description gives the agent essentially nothing to work with beyond a REST path. A caller gets no sense of what a 'route' record looks like or how results are scoped, which is inadequate even for a low-complexity list operation.

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 single required parameter edge_compute_id is undocumented in the schema. The only hint comes from the URL template showing it as a path segment; the description never explains that it identifies the parent edge compute or what form the id takes, 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 consists of the HTTP verb and path (GET /edge-computes/{edgeComputeId}/routes) prefixed with [READ], which does convey that routes belonging to a given edge compute are listed. However, it never states the purpose in plain language and is largely a restatement of the tool name 'list_edge_routes' plus its parent resource. It is understandable but adds little 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 statement of when to use this tool, when not to, or how it relates to siblings like get_edge_compute, list_edge_computes, create_edge_route, or update_edge_route. The only implied guidance is that the caller must supply an edge compute id, which is already visible in the schema.

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

list_edge_templatesList Edge Computing templatesC
Read-only

[READ] OpenAPI: GET /templates

ParametersJSON Schema
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 and openWorldHint=true, so the '[READ]' prefix and GET mapping add nothing new. The description discloses no return shape, pagination behavior, or scoping constraints beyond what the annotations already carry.

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 this is under-specification rather than earned conciseness. The one fragment is a redundant restatement of structured fields (name/title/annotations) that does not front-load any 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?

For a zero-parameter read-only list tool the bar is low, but the description still fails to say what templates are, what the list contains, or whether results are paginated or scoped to an edge namespace/compute.

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 per the rubric the baseline is 4; there are no parameter semantics for the description to document and the schema is fully self-contained.

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 body of the description is effectively a restatement of the tool name and title: '[READ] OpenAPI: GET /templates' adds only the HTTP verb/path, which duplicates information already implied by 'list_edge_templates'. It never states what an 'edge template' is or how this differs from siblings like list_edge_plans or list_edge_deployments.

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, and no mention of any alternative sibling tool. 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.

list_firewall_rulesList CDN firewall rulesC
Read-only

[READ] GET /domains/{domain}/firewall/rules (CDN Go SDK FirewallRulesIndex).

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

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 and openWorldHint=true, and the description's '[READ]' marker merely repeats that. It adds no behavioral context beyond the annotation: no mention of pagination, result ordering, filtering, or auth requirements for a list endpoint that queries a remote CDN 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 a single short line with the read intent front-loaded and no wasted prose, but the brevity is under-specification rather than tightness – the single sentence omits information the agent needs (collection scope, pagination).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 endpoint with no output schema, no pagination metadata, and no sibling differentiation, the definition is thin. An agent cannot tell how many rules come back, whether results are paged, or when this should be preferred over the other firewall 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 0%, so the description must carry parameter meaning. The endpoint template does show that domain is a path parameter and is required, which is genuinely useful, but nothing about format or scope is added; the schema's regex pattern is the only remaining documentation.

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 maps the tool to an HTTP call (GET /domains/{domain}/firewall/rules) and the CDN Go SDK method FirewallRulesIndex, which disambiguates this as a read/list of firewall rules. However, it never states in plain terms what it retrieves or how it differs from siblings like get_firewall_rule, create_firewall_rule, or reprioritize_firewall_rules; the reader has to infer the collection semantics 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 when-to-use or when-not-to-use guidance. Nothing tells the agent to pick this over get_firewall_rule for a single rule or over invoke_cdn_api for a raw call. The '[READ]' tag hints at intent but is not a usage guideline.

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

list_flavorsList Cloud Server flavors (IaaS v3)C
Read-only

[READ] OpenAPI iaas/3.0.0: GET https://ecc.{region}.arvanapis.ir/v3/flavors

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYesCloud Server region id from official docs, e.g. ir-thr-c2

TDQS

C2.5/5.0
Behavior2/5

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

readOnlyHint=true and openWorldHint=true already declare the safety and openness profile, so the description's 'READ' marker is redundant. Beyond the annotated facts, it adds nothing about pagination, filtering, or auth requirements for the {region} 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?

Extremely short and front-loaded, but it is a bare endpoint reference rather than a description; there is no prose to be wasteful, yet also nothing that earns much value for the 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 tool with no output schema and no annotation detail about the response, the description should at least say what flavors represent and roughly what is returned. Instead it is only a URL, leaving the agent to infer the shape and meaning of 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?

There is a single region parameter with full schema description coverage (including an example value like ir-thr-c2), so the schema carries the semantics. The description adds only the {region} URL placeholder, which conveys no syntax or format 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 title and name ('List Cloud Server flavors') establish a verb+resource, and the description confirms it is a GET on the iaas/3.0.0 /v3/flavors endpoint. However, the description itself is just an endpoint string and does nothing to differentiate this from the sibling 'list_database_flavors' or to explain what a 'flavor' means in this 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 closely related sibling 'list_database_flavors' that an agent could easily confuse with this tool. The '[READ]' tag implies a safe lookup but that is already conveyed by annotations.

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

list_imagesList Cloud Server imagesA
Read-only

[READ] List images/OS available in a region. Official: GET /ecc/v1/regions/{region}/images.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYesCloud Server region id from official docs, e.g. ir-thr-c2

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, destructiveHint=false and openWorldHint=true, so safety is covered. The description adds the backing endpoint, which is mildly useful context, but says nothing about pagination, result volume, or what happens with an invalid region.

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

Conciseness5/5

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

Two compact clauses, front-loaded with the read tag and purpose, with zero filler. Every element (verb, resource, region scope, endpoint) earns its place.

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

Completeness4/5

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

For a single-parameter, non-paginated list tool with full annotation coverage and no output schema, the description is adequate. It could note whether results are paginated or how many images typically return, but nothing essential 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?

Only one parameter, and schema description coverage is 100% – the schema already documents the region example format. The description reinforces the region scoping but adds no syntax or constraint detail 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+resource ('List images/OS') and adds scope ('available in a region'), so an agent knows exactly what it returns. It does not differentiate from siblings, but no sibling lists images, so ambiguity 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 Guidelines3/5

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

The '[READ]' tag implies safe retrieval, and the region requirement is implicit through the parameter, but there is no explicit when-to-use guidance or named alternative for looking up a single image or flavor.

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

list_live_streamsList LIVE streamsB
Read-only

[READ] OpenAPI Arvan LIVE 2.0: GET /streams (base napi.../live/2.0).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds only a redundant '[READ]' tag and the raw API endpoint, offering no additional behavioral context such as pagination, rate limits, or response characteristics. With annotations covering the safety profile, more value beyond structured data would be expected.

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

Conciseness3/5

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

A single terse sentence with no waste, but it is a technical reference rather than a front-loaded natural-language purpose statement. It is adequate but could be more immediately helpful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn 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 list tool with annotations covering read-only and open-world behavior, the description plus endpoint reference is minimally sufficient. However, it omits any mention of what the response contains (e.g., a list of live stream objects), which would be useful 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.

Parameters4/5

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

The tool has zero parameters, so the baseline score is 4 per the rules. The description does not need to explain any parameter semantics, and the schema is empty.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 (streams), making it clear this is a read-list operation for live streams. It lacks explicit sibling differentiation, but the resource name is distinct enough from tools like list_vod_videos or list_live_watermarks.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as get_live_stream or other list endpoints. There are no exclusions, prerequisites, or contextual cues to help an agent choose.

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

list_live_watermarksList LIVE watermarksC
Read-only

[READ] OpenAPI: GET /watermarks

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 and openWorldHint=true, so safety and world access are covered. The description's '[READ]' tag merely repeats the read-only annotation and adds no further context about authentication, pagination, rate limits, or what data is returned. It does not contradict the annotations, but it contributes very little 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?

The description is a single short line, so it is not verbose. However, its brevity reflects under-specification rather than efficient communication of useful information; the '[READ]' tag is redundant with annotations and the OpenAPI path adds little 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?

With no output schema and no parameter schema, the description is the main source of context, yet it does not explain what 'live watermarks' are or what listing them returns. For a discovery-style tool, the agent is left with a cryptic resource name and no indication of the response shape or use case.

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 the schema cannot document any and baseline is 4. The description correctly does not invent parameter details where none exist.

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 and HTTP endpoint: '[READ] OpenAPI: GET /watermarks'. It does not explain what a watermark is in this API, what the LIVE scope means, or how it differs from sibling tools like list_live_streams or get_live_domain. An agent learns almost nothing beyond the name itself.

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

Usage 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, or which alternatives exist. The description provides only the HTTP verb and path, leaving the agent to infer usage from the name alone.

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

list_networksList Cloud Server networksC
Read-only

[READ] OpenAPI IaaS 1.0: GET /regions/{region}/networks (ecc/v1).

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYesCloud Server region id from official docs, e.g. ir-thr-c2

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 and openWorldHint=true, so the safety profile is covered. The description adds almost nothing beyond the endpoint string – no pagination behavior, no scoping to the region, no note that results are region-bound. With annotations carrying the load, a 2 is warranted because the description contributes essentially zero 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.

Conciseness4/5

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

One short sentence, front-loaded with the read marker and endpoint. It is efficient and wastes no words, though the raw OpenAPI path is a slightly opaque way to communicate purpose.

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

Completeness3/5

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

For a single-parameter read tool with an output schema absent and annotations covering safety, this is minimally viable. It would be better if it stated what a network object is or how results are scoped, but the endpoint plus schema are enough 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 coverage is 100%, so the single region parameter is fully documented in the schema (with an example value). The description only echoes {region} in the path template and adds no format or constraint detail. 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 bracketed [READ] tag and the HTTP verb/path (GET /regions/{region}/networks) tell a knowledgeable agent that this retrieves networks within a region. However, the description never plainly states 'lists Cloud Server networks' – it leans entirely on the title and raw endpoint notation, and does not distinguish it from siblings like list_servers_v3 or the generic invoke_iaas_v1_api.

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

Usage Guidelines2/5

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

There is no when-to-use guidance: nothing says when to call this versus invoke_iaas_v1_api (which can hit the same endpoint) or other list_* tools. The only implicit signal is the [READ] prefix.

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

list_objectsList objects in a bucketC
Read-only

[READ] S3 ListObjectsV2. Official API Usage listObjects sample + SDK object-list.

ParametersJSON Schema
NameRequiredDescriptionDefault
bucketYes
prefixNo
max_keysNo
continuation_tokenNo

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 and openWorldHint=true, and the '[READ]' tag merely repeats the readOnly hint. Naming the underlying ListObjectsV2 API gives an agent some known semantics, but the description never explains pagination via continuation_token or the 1000-key cap, 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?

Two short, front-loaded sentences with no filler, and the read marker is placed first. It is efficient, though the second sentence is largely uninformative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 four-parameter, paginated list tool with no output schema and no param descriptions, the definition leaves too much unsaid: no pagination contract, no prefix behavior, no return-shape hint. An agent could invoke it but not correctly handle result sets.

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 explains none of the four parameters (bucket, prefix, max_keys, continuation_token). It fails to compensate for the coverage gap even though the pagination parameters carry non-obvious 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 identifies a specific verb+resource ('S3 ListObjectsV2') and the title confirms 'List objects in a bucket', so the agent knows it lists objects within a bucket. It does not differentiate from siblings like head_object or list_buckets, 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 when-to-use guidance, no exclusions, and no mention of alternatives such as head_object or get_object_text. The 'Official API Usage listObjects sample + SDK object-list' phrasing is marketing 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.

list_rate_limit_rulesList rate-limit rulesD
Read-only

[READ] GET /domains/{domain}/rate-limit/rules

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

TDQS

D1.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the '[READ]' prefix is redundant. Nothing is added about pagination, result ordering, or scope (account vs domain), and nothing contradicts 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?

Very short, but this is under-specification rather than conciseness; the single fragment is not a usable instruction. There is no front-loaded statement of what the tool returns or requires.

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?

With no output schema, no parameter documentation, and only an endpoint string, the definition is far too thin for an agent to invoke this tool correctly in a catalog of ~130 siblings.

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 single domain parameter carries only a regex pattern. The description merely echoes the path template and does not explain what domain value is expected (registered zone name, ID, etc.).

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 is a restatement of the name plus the underlying HTTP path (GET /domains/{domain}/rate-limit/rules). It confirms this is a read of rate-limit rules, but adds no distinguishing detail versus siblings such as get_rate_limit_rule or list_firewall_rules.

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 guidance whatsoever. It never contrasts itself with get_rate_limit_rule, get_rate_limit_settings, or the create/update/delete rate-limit siblings, so 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.

list_serversList Cloud Server instancesB
Read-only

[READ] List instances in a data center region. Official: GET /ecc/v1/regions/{region}/servers. Example region from docs: ir-thr-c2.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYesCloud Server region id from official docs, e.g. ir-thr-c2

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, destructiveHint=false, and openWorldHint=true. The description only restates this with '[READ]' and the official GET path; it adds no behavioral context such as pagination, rate limits, auth requirements, or response shape beyond what the annotations 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.

Conciseness5/5

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

The description is compact and front-loads the operation and scope. The endpoint and example region are directly relevant, and there is no filler or repeated material beyond the minimal [READ] marker.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 read-only list tool with full schema coverage and annotations covering safety, the description supplies the needed purpose, scope, and region example. It is slightly incomplete because it never mentions the v3 sibling or expected output shape, but it is 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?

Schema description coverage is 100%, and the single region parameter is already documented with an example in the schema. The description repeats the example region from docs but adds no format constraints, allowed values, or other 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?

The description states a specific verb (List) and resource (instances in a data center region), and supplies the official endpoint. However, it does not differentiate this from the sibling list_servers_v3 or explain when this v1 endpoint is preferred, so it misses the sibling differentiation 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 Guidelines3/5

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

The [READ] tag and 'List instances in a data center region' imply the basic use case, but there is no explicit when-to-use/when-not guidance or comparison to list_servers_v3, get_server, or create_server. The intended usage is inferable from the name and description, but routing among server-list siblings is left to the reader.

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

list_servers_v3List Cloud Servers (IaaS API v3)D
Read-only

[READ] OpenAPI iaas/3.0.0: GET https://ecc.{region}.arvanapis.ir/v3/servers

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
regionYesCloud Server region id from official docs, e.g. ir-thr-c2
perPageNo

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the '[READ]' prefix merely duplicates structured data. The description adds no behavioral context about pagination, rate limits, or region-scoping semantics beyond the URL template.

Agents need to know what a tool does to the world before 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 with the read marker, so there is no wasted text, but the brevity comes from under-specification rather than disciplined concision. A single endpoint string is not sufficient content for the field.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 3-parameter listing tool with an undocumented pagination surface and no output schema, the description omits everything an agent would need beyond the raw endpoint. Annotations cover the safety profile, but the listing/pagination contract remains unstated.

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 33% (region is documented, page and perPage are not), and the description supplies no parameter meaning at all — it never mentions pagination or the region placeholder's significance. A low-coverage schema with a silent description leaves pagination behavior unexplained.

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 URI restatement ('GET https://ecc.{region}.arvanapis.ir/v3/servers') plus an OpenAPI spec tag, with no prose verb+resource. An agent must infer 'list servers' from the name/title rather than the description itself, and there is no differentiation from the sibling list_servers (v1/v2).

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 guidance, no prerequisites, and no mention of alternatives such as list_servers or invoke_iaas_v3_api. The agent is given nothing about when this v3 variant should be preferred over the generic IaaS invoker.

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

list_storage_api_bucketsList buckets via Storage management APIA
Read-only

[READ] OpenAPI Object Storage API 1.0.0: GET /v1/buckets (storage.arvanapis.ir) — optional status=all|shared|owned, page, perPage. Uses Machine User key (not S3 HMAC).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
statusNo
perPageNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the '[READ]' prefix adds nothing. The one genuinely new behavioral fact is the authentication model (Machine User key rather than S3 HMAC), which matters for invocation and is not in the annotations — that earns partial credit beyond 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?

A single dense sentence with the read marker and resource front-loaded, followed by endpoint, params, and auth note. Every clause carries information; it packs a lot but wastes 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 read-only listing tool with no output schema and a small flat parameter set, the description covers endpoint, scope, all parameters, and the auth credential type. Only pagination behavior/return shape is left open, which is acceptable for this complexity.

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 0%, so the description has to carry the parameter burden — and it does, naming all three (status, page, perPage) and spelling out the enum values all|shared|owned. It adds no format or default details for page/perPage beyond the names, but that is a minor gap given the schema supplies types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid 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 buckets') and pins it to the Storage management API endpoint GET /v1/buckets, which distinguishes it from the S3-style list_buckets and from list_ai_buckets siblings. It does not explicitly name those siblings, but the API/endpoint scoping 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 Guidelines3/5

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

The parenthetical '(not S3 HMAC)' implicitly tells the agent this is the management-API route rather than the S3-credential route, which is useful routing context. However it never states when to prefer this over list_buckets or what to do when auth is missing, so guidance is implied rather than explicit.

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

list_troubleshootsList CDN troubleshootsB
Read-only

[READ] List troubleshoot runs for a domain. Official CDN API: GET /domains/{domain}/troubleshoots

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

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, openWorldHint=true and destructiveHint=false, so the '[READ]' prefix is largely redundant. The description does add useful value by mapping the tool to the underlying official CDN API call, but says nothing about pagination, result limits, or what a 'run' contains.

Agents need to know what a tool does to the world before 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 clauses with zero filler, front-loaded with the read marker and the core purpose. Every token earns its place.

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

Completeness4/5

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

For a single-parameter, read-only list tool with no output schema, the description covers what it does and the API it maps to, and annotations carry the safety profile. The only real omission is any hint about result size or pagination behavior.

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%; the only meaning comes from the JSON Schema pattern/length constraints, not the description. 'For a domain' merely restates the parameter name and adds no format, scope, or ownership detail beyond what the schema already enforces.

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

Purpose4/5

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

States a specific verb (List) plus resource (troubleshoot runs) scoped to a domain, and the endpoint mapping (GET /domains/{domain}/troubleshoots) confirms it. It reads clearly against siblings like get_latest_troubleshoot and create_troubleshoot, 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 when-to-use guidance, no prerequisites, and no routing to alternatives such as get_latest_troubleshoot for the most recent run or create_troubleshoot to start one. The '[READ]' tag and domain scope only imply context rather than stating it.

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

list_vads_channel_campaignsList campaigns for a Video Ads channelC
Read-only

[READ] OpenAPI: GET /channels/{channel}/campaigns

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYes

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 and openWorldHint=true, so the '[READ]' prefix is redundant. The description discloses nothing beyond that: no pagination, no result size, no auth or rate-limit notes. With annotations doing the safety work, the description contributes almost no additional behavioral context.

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

Conciseness3/5

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

Extremely short and front-loaded, which is good, but the '[READ] OpenAPI: GET ...' framing is boilerplate that duplicates annotations and consumes the entire body without informing the 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 list tool with no output schema, the description should at minimum convey what is returned and whether results are paginated. Neither is present, and the single undocumented parameter is left unclarified, so the definition is thin even for a simple 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 one required parameter (channel_id) with 0% schema description coverage. The description's path template '{channel}' hints that this is the channel identifier, partially compensating for the missing schema description, but adds no format, ID type, or lookup 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 title 'List campaigns for a Video Ads channel' plus the path GET /channels/{channel}/campaigns conveys a list operation on campaigns scoped to a channel. But the description body itself only restates the HTTP verb and path, adding little beyond the title, and does not distinguish it from siblings like get_vads_campaign or list_vads_channels.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 get_vads_campaign (single campaign) or list_vads_channels (parent list). The agent must infer usage entirely from the name and path, with no stated prerequisites or exclusions.

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

list_vads_channelsList Video Ads channelsC
Read-only

[READ] OpenAPI VADS 2.0: GET /channels (host napi.arvancloud.ir/vads/2.0).

ParametersJSON Schema
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=true and openWorldHint=true, so the bracketed [READ] adds nothing. The description contributes only the host/path/version, which is technical routing detail rather than behavioral context (no pagination, no auth requirements, no scope caveats).

Agents need to know what a tool does to the world before 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 compact line with no filler and the read/API context front-loaded. It is appropriately sized, though it is so terse that brevity shades into under-specification rather than pure efficiency.

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

Completeness3/5

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

For a zero-param read tool with annotations covering the safety profile and no output schema, the minimum is met, but nothing explains what a 'channel' represents in VADS or how it relates to VADS campaigns/domains. Adequate for invocation, thin for selection.

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; the baseline of 4 applies. No parameter guidance is needed or missing.

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 exposes the underlying API route (GET /channels under VADS 2.0) which implies listing channels, but it never states the purpose in prose — it relies on the title. It does not differentiate this VADS listing from sibling listings such as list_vod_channels, list_live_streams, or list_vads_channel_campaigns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 list_* siblings, nor any preconditions. The only implicit signal is the VADS product scope and the [READ] marker, which the agent must infer as usage guidance on its own.

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

list_vod_channelsList VOD channelsB
Read-only

[READ] Official FA/EN API Usage: GET https://napi.arvancloud.ir/vod/2.0/channels

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is clear from structured data. The description adds nothing about behavior—no mention of rate limits, response shape, or what a 'channel' entails. For a read-only list operation, annotations carry most of the burden, but the description still offers no supplementary 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 description is a single short sentence that includes a '[READ]' tag and an API endpoint. It is concise and front-loaded, but the endpoint detail may be redundant for an agent that only needs to invoke the tool. It earns its place by signaling the HTTP method, but it is not optimally structured for decision-making.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 zero parameters, no output schema, and rich annotations, the description is adequate but minimal. It omits any guidance on usage context or the nature of the returned data, which would help an agent decide between this and similar list tools. It is missing the 'when to use' layer that would make it complete for a multi-tool environment.

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 the baseline is 4. The description correctly implies no parameters are needed. No additional meaning is required or provided, which 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 tool name and title state a clear verb (list) and resource (VOD channels), which is sufficient to understand the action. The description itself adds only the API endpoint, but the name/title combination distinguishes it from sibling tools like get_vod_channel or list_vod_videos. It is clear but not exceptionally specific beyond the 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?

The description provides no guidance on when to use this tool versus alternatives such as get_vod_channel for a single channel or list_vod_videos for videos. There is no mention of prerequisites, pagination, or context for use. It only states the underlying API call.

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

list_vod_tagsList VOD tagsC
Read-only

[READ] OpenAPI: GET /tags

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.4/5.0
Behavior2/5

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

The '[READ]' marker merely duplicates the readOnlyHint annotation, so it earns no credit. Nothing is disclosed about pagination, result ordering, account/workspace scoping, or rate limits. With annotations already covering the safety profile, the description adds no behavioral context whatsoever.

Agents need to know what a tool does to the world before 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 this is under-specification rather than true conciseness — there is one fragment of content that adds little. Brevity alone does not earn a high score when nothing informative is 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?

For a zero-param list tool with no output schema, the description should at minimum say what is returned or what scope the list covers. It instead provides only an HTTP method and path, leaving the agent to infer everything from the tool name.

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 document and the baseline is 4. No parameter-related gaps exist to compensate for.

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 name via the HTTP endpoint: '[READ] OpenAPI: GET /tags'. It conveys that tags are fetched but does not say whose tags, what a 'VOD tag' is, or how it differs from siblings like list_vod_videos and list_vod_channels. This is close to tautology rather than an independent 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 when-to-use guidance, no mention of alternatives, and no context for how this list relates to the other VOD listing tools. For a zero-parameter tool this is less damaging, but the agent still gets nothing about when this call is appropriate.

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

list_vod_videosList videos in a VOD channelC
Read-only

[READ] Offline FA API Usage: GET /vod/2.0/channels/{channel-id}/videos

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYesExact channel id from list_vod_channels

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, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description's '[READ]' tag duplicates readOnlyHint, while the endpoint path adds modest context that this queries the offline FA API. It says nothing about pagination or result size.

Agents need to know what a tool does to the world before 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 '[READ]' marker followed by the endpoint. Nothing is padded, though the brevity borders on under-specification rather than efficiency.

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

Completeness3/5

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

For a simple read-only list tool with full annotation coverage and 100% schema coverage, the description is minimal but serviceable. It does not describe the return shape or pagination, though no output schema exists to carry that load.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 1 parameter at 100% schema description coverage, the schema already documents channel_id and its provenance ('Exact channel id from list_vod_channels'). The description adds no parameter detail, 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 name/title state a specific verb+resource (list videos in a VOD channel), but the description body merely restates this as a REST endpoint mapping. It gives no differentiation from close siblings like get_vod_video or list_vod_channels.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 get_vod_video for a single video or list_vod_channels for the parent list. The agent must infer usage 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.

power_off_serverPower off Cloud ServerC

[WRITE] OpenAPI IaaS 1.0: POST /regions/{region}/servers/{id}/power-off

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYesCloud Server region id from official docs, e.g. ir-thr-c2
server_idYes

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 and openWorldHint=true, so the [WRITE] prefix is redundant. The description adds no behavioral context such as side effects, downtime, permission requirements, or whether the operation is reversible. It does not disclose traits beyond the annotations.

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

Conciseness5/5

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

The description is a single, front-loaded line with no wasted words. It immediately signals [WRITE] and the operation, then gives the endpoint. Every element 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, the description is insufficiently complete. It omits side effects, confirmation needs, permissions, and alternatives to powering off a server. Given the available annotations and sibling tools, more context is needed.

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%; region has a description and example, while server_id has none. The description only shows the path placeholders {region} and {id}, which adds little meaning beyond the schema. It fails to compensate for the undocumented server_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: power off a Cloud Server. It also identifies the write operation via [WRITE] and the POST endpoint. It is clear, but it does not explicitly differentiate this tool from siblings like power_on_server or reboot_server.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 does not mention power_on_server, reboot_server, or any conditions for choosing power-off. The agent is left to infer usage from the tool name alone.

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

power_on_serverPower on Cloud ServerC

[WRITE] OpenAPI IaaS 1.0: POST /regions/{region}/servers/{id}/power-on

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYesCloud Server region id from official docs, e.g. ir-thr-c2
server_idYes

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 and openWorldHint=true, and the description's '[WRITE]' tag merely repeats that. It discloses nothing beyond structured data about state transitions, idempotency (calling on an already-running server), timing/asynchronicity, or required 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.

Conciseness3/5

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

A single short line with the [WRITE] marker front-loaded, so there is no filler. However, its brevity reflects under-specification rather than disciplined concision, so it is only adequate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 two-parameter mutation tool with no output schema, the description should explain what the operation does to server state, expected outcome, and failure modes. None of that is present, so an agent cannot predict the result or side effects.

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%: region is documented in the schema while server_id has no description, and the tool description adds no meaning to either parameter. The endpoint path implies {region}/{id} mapping but gives no format guidance to compensate for the undocumented server_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 name and title already state the verb+resource ('Power on Cloud Server'), and the description mostly restates that as an HTTP endpoint plus a [WRITE] marker. It conveys the operation is a write against an IaaS server, but adds no scope or differentiation from siblings like power_off_server or reboot_server beyond the obvious action word.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 power_off_server or reboot_server, no prerequisites (e.g. server must be stopped), and no notes on conditions that make the call fail. Usage can only be inferred 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.

purge_cachePurge CDN cacheA
Destructive

[DESTRUCTIVE] Purge CDN cache. Official: POST /cdn/4.0/domains/{domain}/caching/purge. purge=all clears entire domain cache (service impact). purge=individual requires exact purge_urls. Never broaden scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
purgeYes
domainYes
purge_urlsNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is known. The description adds value beyond them: that purge=all causes service impact, that individual purges need exact URLs, and that scope must not be broadened. It does not describe asynchronous behavior, propagation timing, or rate limits, which would be the next level.

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

Conciseness5/5

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

Very tight: destructive warning first, one-sentence purpose, endpoint, then two conditional clauses and a hard constraint. No sentence is redundant and ordering is front-loaded by risk level.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, no-output-schema tool this covers the risk profile, mode semantics, and endpoint well enough to call correctly. What is missing is the conditional requirement structure (is purge_urls mandatory when purge=individual?) and any note on purge propagation or limits.

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 0%, so the description must carry the load, and it does for the two non-obvious parameters: it explains the purge enum semantics (all vs individual) and the conditional requirement that purge_urls be exact when individual is chosen. The domain parameter is left to its pattern, which is self-evident from the name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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+resource ('Purge CDN cache') and tags the operation as [DESTRUCTIVE] up front, so an agent cannot mistake it for a read or a settings change. It also names the exact upstream endpoint, which distinguishes it from the sibling invoke_cdn_api generic wrapper and from get/update_caching_settings.

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 concrete selection guidance between the two modes: purge=all clears the whole domain (with a service-impact warning), purge=individual requires exact purge_urls, and 'Never broaden scope' is an explicit exclusion. It stops short of naming sibling alternatives or stating prerequisites, but the mode-selection guidance is unusually actionable.

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

put_object_textUpload text objectB

[WRITE] S3 PutObject with string body (FA SDK upload-object). For binary uploads use other clients; this tool is text-oriented for agent safety.

ParametersJSON Schema
NameRequiredDescriptionDefault
aclNo
keyYes
bodyYes
bucketYes
content_typeNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already disclose readOnlyHint=false and openWorldHint=true, so the '[WRITE]' marker is largely redundant; the description does add value by flagging the text-only limitation and the safety rationale. It omits the most important behavioral fact for a PutObject: that writing to an existing key overwrites it, and what auth/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 compact sentences with the operation type front-loaded, no filler. Slightly clipped to the point of leaving key facts (overwrite behavior, parameter meaning) unstated, but structurally sound.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 storage write with no output schema, two thin annotations, and zero parameter documentation, the description is well short of complete. Destructive overwrite semantics, required auth, and parameter expectations all go unaddressed.

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% across five parameters, and the description mentions none of them. It never explains bucket/key/body semantics, the acl enum options, or the content_type default, so it fails to compensate for the schema gap even though the schema names imply obvious meanings.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid 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 ('S3 PutObject with string body') plus the SDK route, which is unambiguous and distinguishes it from get_object_text and the bucket/object management siblings. It does not, however, name the sibling it competes with for uploads, so differentiation is 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?

Gives a partial exclusion ('For binary uploads use other clients') but names no concrete alternative tool and states no condition for when this should be used over, say, invoke_storage_api. Usage is implied rather than specified.

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

reboot_serverReboot Cloud ServerC

[WRITE] OpenAPI IaaS 1.0: POST /regions/{region}/servers/{id}/reboot

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYesCloud Server region id from official docs, e.g. ir-thr-c2
server_idYes

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 and openWorldHint=true, so the '[WRITE]' tag is redundant. The description adds the API version and endpoint path but says nothing about disruption/downtime, whether the reboot is graceful or forced, or whether it requires the server to be in a particular state - all important for an operationally risky 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?

A single front-loaded line with the write tag and endpoint first. There is no wasted prose, though it is terse to the point of under-specification rather than genuinely economical.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, only partial schema coverage, and no rich annotations, the description leaves critical operational details (downtime, required server state, prerequisites) unstated. An agent could call it, but not confidently.

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%: 'region' is documented in the schema while 'server_id' has no description. The description's path template hints that both are path parameters, but adds no format, validity, or lookup guidance, so it fails to compensate for the uncovered 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 name and title state a specific verb (reboot) and resource (Cloud Server), and the description reinforces this with the exact REST endpoint POST /regions/{region}/servers/{id}/reboot. It is unambiguous what the tool does, but it never differentiates from close siblings like power_on_server, power_off_server, or create_server.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 such as power_off_server + power_on_server or how a reboot differs from a hard power cycle. The agent must infer context 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.

register_domainRegister CDN domainB

[WRITE] Register a domain for CDN/DNS service. Official: POST /cdn/4.0/domains/dns-service. domain_type full = NS delegation; partial = CNAME setup.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
plan_levelNoOptional plan level when documented for partial setup
domain_typeYesfull=NS delegation, partial=CNAME setup

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, and openWorldHint=true, so the [WRITE] tag adds little. The description does contribute the concrete upstream endpoint (POST /cdn/4.0/domains/dns-service) and clarifies the two-mode registration model, which is useful context beyond the annotations.

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

Conciseness4/5

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

Three compact clauses with the [WRITE] marker and operation front-loaded, followed by endpoint and mode semantics. No filler, though the endpoint reference is the least essential element.

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

Completeness3/5

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

For a write tool with no output schema, the description conveys the operation, upstream endpoint, and mode semantics but omits prerequisites (e.g., whether a plan or verification is required) and any auth/permission expectations. Adequate but with clear gaps.

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

Parameters3/5

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

With 67% schema coverage, the schema already documents domain_type and plan_level. The description repeats the full/partial meaning verbatim from the schema, adding no new syntax, defaults, or constraints beyond what structured fields provide. 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: 'Register a domain for CDN/DNS service', and the [WRITE] tag signals the operation class. It is clearly distinct in kind from read siblings like get_domain or list_domains, though it never names an alternative to contrast against.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 or mention of alternatives. The domain_type explanation ('full = NS delegation; partial = CNAME setup') is parameter semantics, not usage routing, so an agent still must infer when registration is appropriate versus set_domain_plan or DNS-record creation.

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

reprioritize_firewall_rulesReprioritize CDN firewall rulesC

[WRITE] POST /domains/{domain}/firewall/actions/reprioritize (CDN Go SDK). Pass the priority payload exactly as required by the API (product pages list the operation; body schema details may come from API portal).

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesOfficial reprioritize request body
domainYes

TDQS

C2.6/5.0
Behavior2/5

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

Annotations only state readOnlyHint=false and openWorldHint=true, so the description carries the burden of disclosure. It adds the [WRITE] marker and the endpoint, but says nothing about what gets reordered, whether the operation is destructive to existing priorities, or permission requirements. The vague 'body schema details may come from API portal' leaves behavior largely 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?

Two sentences, reasonably tight, with the method/path front-loaded. The parenthetical about the API portal is filler that could be trimmed, but nothing is egregiously 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?

A write operation with no output schema, no annotations covering safety, a 50%-covered schema, and an unspecified body object. The description should specify the priority payload structure and any constraints, but defers to external docs, leaving the agent under-informed for a mutation 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 50% and the description gives no parameter detail. The body parameter is a free-form object with no property definitions at all, and the description only says to pass the payload 'exactly as required by the API' without describing its shape or the priority semantics. This fails to compensate for a low-coverage, opaque 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 (reprioritize) and resource (CDN firewall rules), and the HTTP method and path pin down the operation unambiguously. It is distinguishable from sibling firewall tools (create/update/delete/list) by the reprioritize verb, though it does not name a sibling 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 statement of when to use this tool versus get_firewall_rule, update_firewall_rule, or list_firewall_rules, nor any prerequisite (e.g., that rules must already exist). The only contextual hint is the [WRITE] tag. An agent must infer the use case.

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

reprioritize_rate_limit_rulesReprioritize rate-limit rulesC

[WRITE] POST /domains/{domain}/rate-limit/actions/reprioritize (CDN Go SDK / EN rate-limit API table).

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
domainYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already disclose readOnlyHint=false and openWorldHint=true, so the [WRITE] marker and POST endpoint are consistent but largely redundant. The description adds no permission requirements, side effects, body semantics, 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 one-line format is compact and front-loads [WRITE] and the endpoint, but for a write mutation with a required nested body it is under-specified rather than effectively concise.

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 write operation with no output schema, 0% parameter documentation, and a nested body, the description omits effect, body shape, permissions, and return behavior. It is not sufficient for an agent to invoke the tool safely.

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% for two required parameters, including an arbitrary nested body object. The description only embeds {domain} in the endpoint template and says nothing about the body's expected fields or ordering semantics, so it fails to compensate for the empty 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 (reprioritize) and resource (rate-limit rules), making it distinguishable from the firewall-rule sibling. However, it never explains what reprioritizing actually does, such as reordering rules or what body format is expected, so the purpose remains only partially 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?

Provides no when-to-use guidance relative to update_rate_limit_rule, list_rate_limit_rules, or reprioritize_firewall_rules. It also lacks prerequisites or context, offering only [WRITE] and the raw endpoint.

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

set_dns_record_cloudToggle DNS record cloud (CDN proxy)B

[WRITE] Toggle cloud/proxy status for a DNS record. Official: PUT /cdn/4.0/domains/{domain}/dns-records/{id}/cloud

ParametersJSON Schema
NameRequiredDescriptionDefault
cloudYestrue = traffic via ArvanCloud CDN; false = DNS only
domainYes
record_idYesExact DNS record id returned by list_dns_records / get_dns_record

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 safety profile is covered. The description adds the [WRITE] convention tag and the official API endpoint, but says nothing about idempotency, error/edge behavior, 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.

Conciseness4/5

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

Two short sentences, front-loaded with the [WRITE] marker and the core action, with the endpoint appended compactly. No wasted prose.

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

Completeness3/5

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

For a small 3-parameter mutation with no output schema, the description covers purpose and endpoint adequately. It omits how the operation relates to update_dns_record and what happens to the record's other attributes, leaving some gaps for a write 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 67%; cloud and record_id are documented in the schema, and the boolean semantics of cloud are already explained there. 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 (toggle) and resource (cloud/proxy status of a DNS record), which is clear and distinct from generic record CRUD. It does not, however, explicitly distinguish itself from update_dns_record, which could plausibly also change the cloud flag.

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

Usage Guidelines3/5

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

The description implies usage (toggle CDN proxy on/off) but gives no explicit when-to-use versus alternatives such as update_dns_record. No prerequisites or conditions are stated, 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.

set_domain_nameserversSet custom domain nameserversC

[WRITE] Set custom NS keys. Offline FA (cdn/dns-records/change-default-ns): PUT /domains/{domain}/ns-keys body {"ns_keys":[...]}

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
ns_keysYes

TDQS

C2.9/5.0
Behavior3/5

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

The [WRITE] marker restates readOnlyHint=false rather than adding new behavioral information, but the description does disclose the underlying API endpoint and request body shape. It says nothing about propagation effects, what happens to existing nameservers, or whether the change is reversible — meaningful gaps 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.

Conciseness4/5

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

Very compact and front-loaded: the write nature and action come first, followed by the endpoint mapping. The 'Offline FA (cdn/...)' notation is cryptic filler that costs a little clarity.

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

Completeness2/5

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

For a write tool with no output schema and 0% schema description coverage, the description should explain prerequisites and consequences of changing nameservers. Instead it only maps to an internal endpoint, leaving the agent without enough context to call this safely or 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% for two required parameters, so the description must carry the load. It only shows the body shape {"ns_keys":[...]}, which mostly mirrors the schema, and says nothing about valid NS key format, how many are required, or how the domain path parameter is used.

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

Purpose4/5

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

States a specific verb ('Set') and resource ('custom NS keys') on a domain, which is enough to distinguish it from read-only siblings like check_domain_nameservers. The term 'NS keys' is unexplained jargon, and there is no explicit differentiation from use_optional_nameservers, 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?

The description gives no when-to-use guidance and never mentions the obvious alternatives (check_domain_nameservers, use_optional_nameservers) or prerequisites such as the domain being registered. The agent must infer context entirely.

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

set_domain_planSet CDN domain planB

[WRITE] Set domain plan_level (1=basic, 2=growth, 3=professional per domain docs). Official: PUT /cdn/4.0/domains/{domain}/plan

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
plan_levelYes

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, and destructiveHint=false. The description's '[WRITE]' tag merely restates the write nature and the endpoint reference is metadata, adding no behavioral context such as billing impact, immediate-vs-eventual effect, 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?

A single front-loaded line that leads with the write tag and packs the enum mapping and endpoint without waste. The vague 'per domain docs' hand-off is the only minor flaw.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn 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-param write tool with no output schema, the description covers the plan-level values and endpoint but omits permissions, the effect of a plan change, and any detail on the domain argument. Adequate but with clear gaps.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It does add real meaning to plan_level (basic/growth/professional) that the schema's bare const values lack, but the required 'domain' parameter is left entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (Set) and resource (domain plan_level), and even enumerates the meaning of each value (1=basic, 2=growth, 3=professional). An agent immediately knows this mutates a CDN domain's plan tier, which is distinct from the get_domain/list_domains siblings.

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

Usage Guidelines2/5

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

No guidance on when to use this versus alternatives, no prerequisites, and no statement of when-not to use it. The [WRITE] tag and plan-level mapping imply the context, but there is no explicit usage routing.

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

set_edge_env_variableSet Edge Compute env variableC

[WRITE] OpenAPI EnvVariable: POST /edge-computes/{edgeComputeId}/env-variables — key, value, type (string|json), is_secret.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes
typeYes
valueYes
is_secretYes
edge_compute_idYes

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 [WRITE] marker partly restates what structured data provides. The description adds the OpenAPI endpoint mapping but omits overwrite semantics (does setting an existing key replace it?), secret-handling behavior, and permission requirements — meaningful gaps for a 5-required-param 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?

A single front-loaded sentence with the WRITE flag and endpoint first; little waste. It is arguably too terse for a five-parameter mutation, 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 write tool with no output schema, five required params, and zero schema descriptions, the definition is too thin. It never explains secret handling, overwrite behavior, or expected result, so an agent lacks enough context 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 0%, so the description must carry parameter meaning. It names key, value, type (string|json), and is_secret, mapping 4 of 5 fields, but provides no semantic explanation of each (e.g., that value is a raw string payload or what is_secret controls). It compensates only partially.

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

Purpose4/5

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

States a specific verb (set/POST) and resource (edge-compute env variable), and tags it clearly as a WRITE operation with the underlying endpoint. An agent can distinguish this from the read-side sibling list_edge_env_variables, 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?

There is no when-to-use guidance and no mention of alternatives or prerequisites. The [WRITE] tag implies mutation, but nothing tells the agent when this should be chosen over invoke_edge_api or how it relates to the list counterpart.

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

update_accelerationUpdate CDN acceleration settingsB

[WRITE] Offline FA (cdn/acceleration): PATCH /domains/{domain}/acceleration e.g. {"status":"on","extensions":["css"]}

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
statusNo
extensionsNo

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, so the write/no-destroy profile is covered. The description adds real value beyond that by disclosing the HTTP verb PATCH, implying partial/merge semantics, plus a concrete payload example, but it says nothing about permissions, whether omitted fields are reset, or propagation/offline behavior implied by 'Offline FA'.

Agents need to know what a tool does to the world before 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 compact sentence with the write marker front-loaded and the endpoint plus example packed in efficiently. It is terse rather than bloated, though the unexplained 'Offline FA' fragment costs some 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?

For a settings-mutation tool with no output schema, the description supplies the endpoint, verb and a sample body, but leaves out prerequisites, side effects of partial updates, and return behavior. With annotations covering the safety profile this is minimally 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 0%, so the description carries the burden for three parameters. The example payload does document the shape of status ('on') and extensions (['css']) and shows domain as a path element, which is useful, but it never explains what values extensions accepts or what each field controls beyond the sample.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 operation and resource: a [WRITE] PATCH to /domains/{domain}/acceleration, i.e. CDN acceleration settings for a domain. It distinguishes itself from the get_acceleration sibling via the [WRITE] tag, but the opaque 'Offline FA' jargon adds no clarity about what acceleration settings govern.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 get_acceleration, invoke_cdn_api, or other domain-setting tools such as update_caching_settings or update_ssl_settings. The agent must infer usage purely 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.

update_caching_settingsUpdate CDN caching settingsC

[WRITE] Patch caching settings. Official: PATCH /cdn/4.0/domains/{domain}/caching. Documented fields include cache_status (off|uri|query_string), cache_page_200, cache_page_any, cache_browser, cache_ignore_sc, cache_developer_mode, cache_consistent_uptime.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
cache_statusNo
cache_browserNo
cache_page_200No
cache_page_anyNo
cache_ignore_scNo
cache_developer_modeNo
cache_consistent_uptimeNo

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, destructiveHint=false and openWorldHint=true, so safety is largely covered. The description usefully adds that this is a PATCH (partial update) rather than a full replace, which tells the agent unlisted fields are presumably preserved. It says nothing about auth requirements, propagation delay, or whether changes are reversible, so it exceeds the annotation baseline only modestly.

Agents need to know what a tool does to the world before 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 dense paragraph with the write marker and HTTP endpoint front-loaded, then the field list. Every clause carries information, though the trailing field enumeration reads as a schema dump rather than 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 8-parameter mutation tool with no output schema, the description omits the response shape, permission requirements, and the semantics/valid values of most fields. It identifies the endpoint but leaves the agent under-equipped to invoke it correctly beyond the required domain parameter.

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% across 8 parameters, so the description must carry the load, but it only echoes the property names already visible in the schema and repeats the cache_status enum that the schema itself defines. It gives no meaning or accepted format for the ambiguous string fields such as cache_page_200, cache_browser, or cache_consistent_uptime, so the coverage gap remains.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 (Patch) and resource (caching settings) and even cites the underlying endpoint PATCH /cdn/4.0/domains/{domain}/caching, so the agent knows exactly what operation is performed. It is clearly the write counterpart to get_caching_settings and purge_cache, though it never names those siblings explicitly to route the agent away 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 statement of when to use this tool versus get_caching_settings or purge_cache, no prerequisites (e.g. domain must be registered/active), and no note on when not to call it. The [WRITE] marker and PATCH verb imply a mutation context, but that is inference rather than guidance.

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

update_ddos_protection_modeUpdate DDoS protection modeC

[WRITE] Offline FA (cdn/security/ddos): PATCH /domains/{domain}/ddos with protection_mode (cookie|javascript|recaptcha|captcha). Note: CDN Go SDK lists /ddos/settings — this tool follows FA product docs path /ddos.

ParametersJSON Schema
NameRequiredDescriptionDefault
ttlNo
domainYes
captcha_serviceNo
protection_modeYesDocumented samples: cookie, javascript, recaptcha, captcha

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, destructiveHint=false, and openWorldHint=true, so the [WRITE] tag is largely redundant. The description does add a genuinely useful behavioral caveat: the actual PATCH path (/ddos) differs from the CDN Go SDK's /ddos/settings, which affects what gets changed. It still says nothing about auth, rate limits, or whether the change is immediate.

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

Conciseness3/5

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

Compact and front-loaded with [WRITE], but a portion of the sentence is spent on an SDK-path discrepancy note that is tangential to invoking the tool, and the parenthetical value list partly duplicates the schema.

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

Completeness3/5

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

For a 4-parameter mutation with no output schema, the description is adequate on the core mode update but underspecified on ttl and captcha_service, leaving the agent without a full picture of what the request can carry.

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%. The description restates the protection_mode values (already in the schema description) but offers nothing for ttl or captcha_service, and gives no explanation of how captcha_service interacts with mode=captcha/recaptcha. 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?

It states a specific verb (update) plus resource (DDoS protection mode) and enumerates the values the mode can take. The area tag (cdn/security/ddos) and PATCH path confirm exactly what is being mutated, though it doesn't explicitly contrast itself with sibling setting-tools like update_waf_mode.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 named alternatives among the many other update_* settings tools. The only guidance is a meta-note about which endpoint path the tool follows, which is about implementation, not usage.

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

update_dns_recordUpdate DNS recordA

[WRITE] Update an existing DNS record. Official: PUT /cdn/4.0/domains/{domain}/dns-records/{id}. Requires exact record_id. Read current state first.

ParametersJSON Schema
NameRequiredDescriptionDefault
ttlNo
nameYes
typeYes
cloudNo
usageNo
valueYesType-specific value object/array as documented for the record type
domainYes
selectorNo
record_idYesExact DNS record id returned by list_dns_records / get_dns_record
matching_typeNo
ip_filter_modeNo
upstream_httpsNo

TDQS

A3.5/5.0
Behavior3/5

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

The [WRITE] tag and "Requires exact record_id" add context beyond annotations (openWorldHint, destructiveHint=false). But it doesn't disclose whether the update is partial or full replacement, what happens to fields not provided, or auth requirements. Annotations cover the safety profile but not mutation semantics.

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

Conciseness5/5

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

Three short sentences, front-loaded with the write tag and verb, with zero filler. Each sentence carries specific 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 12-param mutation tool with 17% schema coverage, no output schema, and nested objects, the description is far too thin. It omits parameter meanings, field-replacement semantics, and error/auth context that an agent needs to invoke correctly.

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 only 17% across 12 params, with only `record_id` and `value` partially documented in the schema. The description adds no meaning about params beyond noting record_id is required — it doesn't explain ttl, cloud, usage, selector, ip_filter_mode, or upstream_https, leaving the agent to infer from names alone.

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

Purpose5/5

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

States a specific verb ("Update") and resource ("an existing DNS record"), and explicitly tags it as [WRITE]. Clear enough to distinguish from siblings like create_dns_record and delete_dns_record.

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?

"Requires exact record_id" and "Read current state first" give a clear precondition (get_dns_record before updating). However, it doesn't explicitly name an alternative tool or state when-not-to-use (e.g., create vs update vs set_dns_record_cloud).

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

update_dnssecEnable or disable DNSSECC

[WRITE] Update DNSSEC. Offline FA (cdn/dns-records/dnssec): PUT /domains/{domain}/dns-records/dnssec/actions body {"enable":true|false}.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
enableYes

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, covering the safety profile, and the [WRITE] tag merely repeats that. The description adds only an implementation endpoint (offline FA, PUT path) rather than behavioral context such as side effects of disabling DNSSEC or propagation/latency 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?

Compact and front-loaded with the [WRITE] Update DNSSEC lead, followed by endpoint detail. Slight redundancy between [WRITE] and the write annotations, but no wasted prose.

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

Completeness3/5

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

For a simple 2-param mutation with no output schema, it covers purpose, HTTP method, and the body shape. It still omits when to use it versus get_dnssec and any behavioral consequences, leaving notable gaps for a write operation.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It partly does, revealing that the request body carries {"enable":true|false} and that domain is a URL path segment, which clarifies both parameters beyond the bare schema types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid 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 DNSSEC) and the title clarifies the toggle nature (Enable or disable DNSSEC). It is distinguishable from the read sibling get_dnssec, though the description itself doesn't explicitly contrast them.

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

Usage Guidelines2/5

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

No explicit when-to-use guidance. The [WRITE] tag implies a mutation and get_dnssec exists for reads, but the description never names the alternative or states the condition for choosing this tool over it.

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

update_edge_routeUpdate Edge Computing routeD

[WRITE] OpenAPI: PUT /edge-computes/{edgeComputeId}/routes/{route_id}

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
domainNo
statusNo
route_idYes
edge_compute_idYes

TDQS

D1.9/5.0
Behavior2/5

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

Annotations declare readOnlyHint=false and openWorldHint=true, so the write nature is already known. The description adds negligible behavioral context: no note on permissions, partial-update semantics, reversibility, or what effect the edit has on live traffic. The '[WRITE]' marker duplicates the annotation rather than extending 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 with the '[WRITE]' qualifier, but the single sentence is essentially just an endpoint signature. Brevity here reflects under-specification rather than efficient communication.

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?

A mutation tool with 5 parameters, no output schema, 0% schema description coverage, and no annotations sufficient to describe semantics. The description omits everything an agent needs to invoke it correctly, so it is not complete enough for the operation.

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% and the description supplies no parameter meaning at all. Five parameters including enum status ('active'/'inactive') and the url/domain fields are entirely undocumented in both schema and description, leaving the agent to guess field formats.

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 mostly a mechanical restatement of the HTTP verb and path ('PUT /edge-computes/{edgeComputeId}/routes/{route_id}'). It conveys that this is a write operation updating a route, but nothing about what an edge route is or what fields it configures. It does not differentiate from siblings like update_edge_compute or create_edge_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?

The '[WRITE]' tag hints at mutating intent but there is no when-to-use guidance, no mention of prerequisites, and no routing to alternatives such as create_edge_route for new routes or delete_edge_route for removal.

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

update_firewall_ruleUpdate CDN firewall ruleC

[WRITE] PATCH /domains/{domain}/firewall/rules/{id}. Requires exact rule_id. Use documented fields from create samples.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
noteNo
actionNo
domainYes
rule_idYesExact rule id from list/get — never invent
is_enabledNo
filter_exprNo
action_detailsNo

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 and openWorldHint=true, and the description reinforces this with the [WRITE] tag and the PATCH method. It does not disclose whether unspecified fields are preserved or overwritten (partial vs full replace), which is the key behavioral question for a PATCH tool with a nested action_details object, but it adds enough beyond the annotations to clear the lower bar that annotations set.

Agents need to know what a tool does to the world before 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 terse, front-loaded fragments with no filler; the method and precondition come first. The final sentence is too vague to fully earn its place, which keeps it off 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?

A write tool with 8 parameters, 13% schema coverage, a nested object, and no output schema needs more description than this. The agent cannot tell what a successful update requires or returns, nor which fields are optional versus required beyond the two listed.

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 13%, so the description carries the burden—yet it only restates the rule_id requirement (already in the schema) and defers the other fields to 'create samples.' No meaning is given for name, note, action, filter_expr, is_enabled, or the action_details object, and by 13% coverage this is 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?

States a specific verb+resource (PATCH a firewall rule) plus the exact endpoint path, so an agent can immediately tell it is the mutation counterpart to create_firewall_rule/delete_firewall_rule. It stops short of naming those siblings explicitly, so differentiation is implied rather than stated.

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

Usage Guidelines2/5

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

'Requires exact rule_id' gives a precondition, but there is no guidance on when to update versus create/delete/reprioritize, and 'use documented fields from create samples' is a vague pointer rather than usable instruction. An agent gets no routing or exclusion logic.

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

update_firewall_settingsUpdate CDN firewall settingsC

[WRITE] PATCH /domains/{domain}/firewall/settings. Offline FA known-bots sample includes skip_global_firewall. Pass only documented fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
settingsNoAdditional documented settings fields if known
skip_global_firewallNo

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 and openWorldHint=true, so the '[WRITE]' tag and PATCH method are largely redundant. Beyond the caution about undocumented fields, the description discloses nothing about what settings get overwritten, permission/auth requirements, or the meaning of the opaque 'Offline FA known-bots sample' reference.

Agents need to know what a tool does to the world before 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 write/method info, which is good. But the sentences are fragmented and dominated by unexplained jargon, so brevity comes at the cost of clarity.

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

Completeness2/5

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

For a mutation tool with an open-ended settings object, low schema coverage, and no output schema, the description leaves too much unstated – what the settings fields are, what skip_global_firewall does, and what the PATCH returns or overwrites.

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 33%; settings and skip_global_firewall lack schema descriptions. The description only gestures at skip_global_firewall (via the jargon 'known-bots sample') and adds nothing about the settings object or domain field, 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?

The description states a specific verb+resource: PATCH /domains/{domain}/firewall/settings, so the agent knows this updates firewall settings. It distinguishes the settings resource from rule-level siblings (create/update_firewall_rule) implicitly through the endpoint. No explicit sibling differentiation beyond that.

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

Usage Guidelines2/5

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

'Pass only documented fields' is a constraint, not guidance on when to use this tool versus get_firewall_settings or update_firewall_rule. No prerequisites, no when-not-to-use, no alternative-routing are given.

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

update_image_resizeUpdate image resize settingsC

[WRITE] Offline FA (cdn/acceleration): PATCH /domains/{domain}/image-resize e.g. {"status":"on"}

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
statusYes

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description's only addition is the redundant '[WRITE]' tag and the PATCH endpoint; it does not disclose permissions required, what enabling/disabling changes, or any side effects. Minimal value beyond the structured 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 a single terse line that front-loads the '[WRITE]' marker and endpoint, so it is compact. But the compression sacrifices clarity: 'Offline FA (cdn/acceleration)' is unexplained jargon that occupies space without informing the 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 low-complexity two-parameter toggle with no output schema and safety covered by annotations, the endpoint and example are roughly the minimum an agent needs. Still, it omits the meaning of the required domain parameter and any effect description, leaving the definition barely adequate.

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%, so the description must carry parameter meaning, but it only supplies an example payload {'status':'on'} and a '{domain}' path placeholder. It never explains what 'domain' refers to (the target domain to configure) or what on/off toggling actually does, leaving both parameters under-specified relative to 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 pairs the verb '[WRITE]' with the image-resize resource via the endpoint path, and the title confirms 'Update image resize settings'. However, the prose is dominated by opaque jargon ('Offline FA (cdn/acceleration)') that does not tell the agent plainly what the operation does (toggling image resize per domain). The purpose is recoverable mainly from the name/title and endpoint, not from a clear 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?

There is no when-to-use guidance and no mention of alternatives among the many sibling update_* settings tools (update_caching_settings, update_ssl_settings, update_acceleration, etc.). The agent gets an endpoint but nothing about which conditions should route it here versus elsewhere.

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

update_origin_connection_settingsUpdate origin / load-balancer connection settingsC

[WRITE] Offline FA (https-settings + advanced-settings): PATCH /domains/{domain}/load-balancers/settings. Documented fields include protocol (http|https|auto), method, keepalive, max_fails, fail_timeout, next_upstream_tcp.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
methodNo
protocolNo
keepaliveNo
max_failsNo
fail_timeoutNo
next_upstream_tcpNo

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, and openWorldHint=true, so the safety profile is covered; the '[WRITE]' tag merely restates it. The description adds the concrete endpoint, but omits behaviorally important traits such as PATCH merge semantics (what happens to fields not sent), permission requirements, and whether the change takes effect 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 a single compact sentence with the '[WRITE]' marker and endpoint front-loaded, which is good. That said, the parenthetical 'Offline FA (https-settings + advanced-settings)' adds internal jargon without clarifying anything, and the field list is largely redundant with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 7-parameter mutation tool with 0% schema description coverage and no output schema, yet the description explains no parameter semantics and no mutation behavior. An agent could identify the target endpoint but not safely construct a correct payload from the 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 0% for 7 parameters, so the description must carry the semantic load, but it only re-lists property names (method, keepalive, max_fails, fail_timeout, next_upstream_tcp) and the protocol enum values that already appear in the schema. It never explains units, formats, defaults, or acceptable values for the string-typed fields.

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

Purpose4/5

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

The description names a specific resource (origin/load-balancer connection settings for a domain), the underlying operation (PATCH .../load-balancers/settings), and the fields it touches. The '[WRITE]' tag and endpoint make the intent unambiguous. However, opaque jargon like 'Offline FA (https-settings + advanced-settings)' does little to sharpen the purpose, and the verb is only implied by 'PATCH'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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, prerequisites, or alternatives. The description never tells the agent what condition should trigger this call versus, say, update_caching_settings or update_ssl_settings, nor does it note that the domain must already exist.

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

update_rate_limit_ruleUpdate rate-limit ruleC

[WRITE] PATCH /domains/{domain}/rate-limit/rules/{id}

ParametersJSON Schema
NameRequiredDescriptionDefault
rateNo
burstNo
actionNo
domainYes
rule_idYesExact rule id from list/get — never invent
is_enabledNo
descriptionNo
url_patternNo
time_durationNo
action_detailsNo
block_durationNo
allowed_methodsNo
exclude_sourcesNo

TDQS

C2/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 description needn't repeat write semantics. But it adds nothing about PATCH partial-update behavior, whether omitted fields are preserved, permission requirements, or side effects — key questions for a 13-field 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?

It is short, but this is under-specification rather than conciseness — the single bracketed token plus URL carries no actionable instruction. A useful description for this tool would need several sentences, none of which are present.

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?

A 13-parameter mutation tool with 8% schema coverage, no output schema, and no prose guidance leaves the agent without enough information to safely invoke it. Nothing about partial-update semantics, required vs optional field interactions, or validation rules is provided.

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 only 8% and the description supplies no parameter meaning at all. With 13 parameters (including nested action_details and arrays like allowed_methods/exclude_sources), the description completely fails to compensate for the near-total lack of schema documentation.

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 HTTP verb and endpoint path (PATCH /domains/{domain}/rate-limit/rules/{id}), so the resource being modified is identifiable as a rate-limit rule. However, it is essentially a restatement of the title plus a route, and it does not distinguish this tool from siblings like update_rate_limit_settings or reprioritize_rate_limit_rules beyond the endpoint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 update_rate_limit_settings, create_rate_limit_rule, or delete_rate_limit_rule. An agent must infer the distinction from the name alone, which is only mildly informative.

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

update_rate_limit_settingsUpdate rate-limit settingsC

[WRITE] PATCH /domains/{domain}/rate-limit/settings

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
settingsYes

TDQS

C2.1/5.0
Behavior2/5

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

The '[WRITE]' marker merely restates readOnlyHint=false, which annotations already provide, so it adds no new behavioral information. Nothing is said about whether the update is a partial merge or full replacement, what happens to unspecified keys, which permissions are required, or what the response returns.

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

Conciseness2/5

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

It is a single terse fragment with no filler, but this is under-specification rather than conciseness — the brevity leaves the agent with nothing actionable beyond the endpoint path already implied by 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?

For a write tool with a nested, fully open settings object, no output schema, and only safety annotations, the definition should at minimum describe the accepted settings keys or the patch semantics. Those omissions leave an agent unable to construct a correct call.

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% with two required parameters, and the 'settings' object is an unconstrained free-form map (additionalProperties: {}) with no documented keys. The description supplies no field names, no format hints, and no examples, so it does nothing 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 gives an HTTP method and resource path (PATCH /domains/{domain}/rate-limit/settings), which identifies the resource and the mutation intent, but it never states in prose what the tool actually does or how the settings differ from rate-limit rules. It does not distinguish this tool from get_rate_limit_settings or update_rate_limit_rule beyond the raw 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, no prerequisites, and no mention of the sibling tools (get_rate_limit_settings, update_rate_limit_rule) that an agent must choose between. The only implicit cue is the PATCH verb itself.

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

update_ssl_settingsUpdate SSL/HTTPS settingsA

[WRITE] Patch SSL settings. Official: PATCH /cdn/4.0/domains/{domain}/ssl. Documented fields: ssl_status, https_redirect, replace_http, tls_version, hsts_status, hsts_max_age, hsts_subdomain, hsts_preload. HSTS changes can be hard to reverse until max-age expires.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
ssl_statusNo
hsts_statusNo
tls_versionNo
hsts_max_ageNo
hsts_preloadNo
replace_httpNo
hsts_subdomainNo
https_redirectNo

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, openWorldHint=true, and destructiveHint=false. The description adds useful behavioral context by warning that HSTS changes can be hard to reverse until max-age expires, though it omits auth requirements, exact patch semantics, and whether omitted fields are preserved.

Agents need to know what a tool does to the world before 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-loaded with [WRITE] and the operation, then endpoint, documented fields, and one high-value caution. Every sentence earns its place 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 9-parameter write tool with no output schema and 0% schema description coverage, the description covers the endpoint and field list plus an HSTS reversal warning. It still lacks parameter semantics, permission requirements, and response/return behavior, leaving important context 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 0%, so the description should explain parameter meaning. It only lists the eight documented field names, which are already visible as schema properties, and provides no format, allowed values, units, or defaults for tls_version, hsts_max_age, or the boolean flags.

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

Purpose5/5

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

States a specific verb and resource: 'Patch SSL settings' with the official PATCH endpoint and a [WRITE] tag. This clearly distinguishes it from the read-only sibling get_ssl_settings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 [WRITE] tag and PATCH endpoint imply this is the mutation counterpart to get_ssl_settings, but the description never explicitly says when to use it instead of alternatives or when not to use it. Usage is inferable rather than stated.

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

update_waf_modeUpdate WAF modeB

[WRITE] Offline FA / EN WAF docs: PATCH /domains/{domain}/waf with mode off|detect|protect. Note: CDN Go SDK lists /waf/settings — this tool follows product docs path /waf.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
domainYes

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, and openWorldHint=true, and the description's [WRITE] tag is consistent with that. It adds useful context on the exact PATCH path and the docs-vs-SDK discrepancy, but does not explain the effect of switching WAF mode (traffic blocking behavior) or any permission requirements.

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

Conciseness4/5

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

Two sentences with no filler and the write tag plus endpoint front-loaded. The phrase 'Offline FA / EN WAF docs' is cryptic internal jargon that costs a little clarity.

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

Completeness3/5

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

For a mutation tool with no output schema, the description covers the endpoint and value set but omits the practical effects of the change and any permission or propagation details. Adequate but with clear gaps.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It lists mode values off|detect|protect (duplicating the schema enum) and implies domain maps to the {domain} path segment, but never explains what each mode actually does to traffic. This is partial compensation 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?

The description names a specific verb (update/PATCH), resource (WAF mode on a domain), and target endpoint (/domains/{domain}/waf), so the action is unambiguous. It stops short of explicitly distinguishing itself from the close siblings update_firewall_settings or update_ddos_protection_mode, which an agent might otherwise confuse it with.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus the other firewall/DDoS mode tools, nor any prerequisites or exclusions. The note about the Go SDK path is a documentation clarification, not usage guidance.

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

use_optional_nameserversSwitch to optional ArvanCloud NS keysC

[WRITE] Use optional NS keys (.net/.com style). Offline FA: POST /domains/{domain}/ns-keys/use-optional-keys

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

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 and destructiveHint=false, so the [WRITE] tag largely repeats the safety profile rather than adding to it. The description does not say what happens to existing NS keys, whether the change is reversible, or what 'Offline FA' means, leaving real behavioral gaps 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?

It is short and front-loads the [WRITE] marker, so it is efficient. But 'Offline FA' is opaque filler that costs tokens without informing the agent, and the terseness crosses into ambiguity.

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

Completeness2/5

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

For a single-parameter mutation with no output schema, the description should at least clarify what the toggle does to existing records and any preconditions. Neither the description nor the annotations cover that, so the definition is thin for the complexity of the operation.

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% for the single domain parameter, so the description must carry the burden. The endpoint string /domains/{domain}/ns-keys/use-optional-keys implicitly shows where the domain goes, but it adds no format, validity, or scoping detail 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?

The description names a specific action ('Use optional NS keys') with a parenthetical hint about the style, and the endpoint mapping anchors it to a concrete resource. However, the concept is niche jargon, and it does not differentiate itself from close siblings like set_domain_nameservers or check_domain_nameservers, so an agent could confuse 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 statement of when to use this tool versus alternatives such as set_domain_nameservers, nor any prerequisite (e.g. that the domain must belong to the account, or that this toggles an existing NS setup). Usage is left entirely to inference from the name.

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

write_cloud_logsWrite CloudLogs entriesA

[WRITE] Ingest logs via POST /logging/v1/entries/write (Fluent Bit ArvanCloud CloudLogs plugin). Body: { logs: [{ logType, timestamp?, severity?, resource?, payload }] }. Auth: Apikey header. Not a full CloudLogs management API.

ParametersJSON Schema
NameRequiredDescriptionDefault
logsYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false and openWorldHint=true, so the agent knows it is a write operation with external interaction. The description adds the specific auth mechanism ('Apikey header') and the write endpoint, which complements the annotations. It doesn't detail rate limits, response format, or failure behavior, but covers key operational facts.

Agents need to know what a tool does to the world before 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 critical information: write action, endpoint, body format, and auth. However, the body example could be more clearly separated, and the trailing sentence, while useful, is slightly disconnected. Overall, it is appropriately sized.

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

Completeness4/5

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

Given the tool's complexity (a write endpoint with a nested array body) and the lack of an output schema, the description provides sufficient context: endpoint, auth, body structure, and scope limitation. It doesn't cover error handling or rate limits, but those are less critical for correct invocation. The description is nearly complete for the agent's 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?

The schema description coverage is 0%, so the description must compensate. It provides the expected body structure as a JSON example, showing the 'logs' array with fields like logType, timestamp?, severity?, resource?, payload. This is useful, but it doesn't explain semantic details like allowed logType values beyond the schema example, or the resource type constraints. It partially compensates for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Ingest logs'), the exact endpoint (POST /logging/v1/entries/write), and clarifies scope by stating 'Not a full CloudLogs management API.' This clearly distinguishes it from all siblings (mostly list/get/update tools for CDN, VOD, AI, 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?

It implies usage via the endpoint and Fluent Bit plugin reference, and the trailing note excludes management operations, giving light guidance on when not to use it. However, it does not name an alternative tool for log querying (e.g., get_caas_pod_logs) or provide explicit when-to-use context.

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. 130 tool updatesv0.5.3
    • First observedcheck_domain_nameservers
    • First observedcreate_bucket
    • First observedcreate_database
    • First observedcreate_dns_record
    • First observedcreate_edge_route
    • First observedcreate_firewall_rule
    • First observedcreate_rate_limit_rule
    • First observedcreate_server
    • First observedcreate_troubleshoot
    • First observedcreate_vod_channel
    • First observeddelete_bucket
    • First observeddelete_dns_record
    • First observeddelete_edge_route
    • First observeddelete_firewall_rule
    • First observeddelete_object
    • First observeddelete_rate_limit_rule
    • First observeddeploy_edge_compute
    • First observedget_acceleration
    • First observedget_ai_endpoint
    • First observedget_ai_model
    • First observedget_bucket_metrics
    • First observedget_caas_deployment
    • First observedget_caas_pod
    • First observedget_caas_pod_logs
    • First observedget_caching_settings
    • First observedget_cdn_geo_report
    • First observedget_cdn_high_request_ips
    • First observedget_cdn_response_time_report
    • First observedget_cdn_status_report
    • First observedget_cdn_traffic_report
    • First observedget_cdn_visitors_report
    • First observedget_dns_record
    • First observedget_dnssec
    • First observedget_domain
    • First observedget_edge_compute
    • First observedget_edge_namespace
    • First observedget_firewall_rule
    • First observedget_firewall_settings
    • First observedget_latest_troubleshoot
    • First observedget_live_domain
    • First observedget_live_stream
    • First observedget_object_text
    • First observedget_rate_limit_rule
    • First observedget_rate_limit_settings
    • First observedget_server
    • First observedget_ssl_settings
    • First observedget_storage_report
    • First observedget_vads_campaign
    • First observedget_vads_channel
    • First observedget_vads_domain
    • First observedget_vod_channel
    • First observedget_vod_domain
    • First observedget_vod_video
    • First observedhead_bucket
    • First observedhead_object
    • First observedinvoke_aiaas_api
    • First observedinvoke_caas_api
    • First observedinvoke_cdn_api
    • First observedinvoke_edge_api
    • First observedinvoke_iaas_v1_api
    • First observedinvoke_iaas_v3_api
    • First observedinvoke_live_api
    • First observedinvoke_storage_api
    • First observedinvoke_vads_api
    • First observedinvoke_vod_api
    • First observedlist_ai_buckets
    • First observedlist_ai_datasets
    • First observedlist_ai_endpoints
    • First observedlist_ai_knowledge_bases
    • First observedlist_ai_models
    • First observedlist_ai_providers
    • First observedlist_buckets
    • First observedlist_caas_configmaps
    • First observedlist_caas_deployments
    • First observedlist_caas_pods
    • First observedlist_caas_services
    • First observedlist_database_flavors
    • First observedlist_dns_records
    • First observedlist_domains
    • First observedlist_edge_computes
    • First observedlist_edge_deployments
    • First observedlist_edge_env_variables
    • First observedlist_edge_plans
    • First observedlist_edge_routes
    • First observedlist_edge_templates
    • First observedlist_firewall_rules
    • First observedlist_flavors
    • First observedlist_images
    • First observedlist_live_streams
    • First observedlist_live_watermarks
    • First observedlist_networks
    • First observedlist_objects
    • First observedlist_rate_limit_rules
    • First observedlist_servers
    • First observedlist_servers_v3
    • First observedlist_storage_api_buckets
    • First observedlist_troubleshoots
    • First observedlist_vads_channel_campaigns
    • First observedlist_vads_channels
    • First observedlist_vod_channels
    • First observedlist_vod_tags
    • First observedlist_vod_videos
    • First observedpower_off_server
    • First observedpower_on_server
    • First observedpurge_cache
    • First observedput_object_text
    • First observedreboot_server
    • First observedregister_domain
    • First observedreprioritize_firewall_rules
    • First observedreprioritize_rate_limit_rules
    • First observedset_dns_record_cloud
    • First observedset_domain_nameservers
    • First observedset_domain_plan
    • First observedset_edge_env_variable
    • First observedupdate_acceleration
    • First observedupdate_caching_settings
    • First observedupdate_ddos_protection_mode
    • First observedupdate_dns_record
    • First observedupdate_dnssec
    • First observedupdate_edge_route
    • First observedupdate_firewall_rule
    • First observedupdate_firewall_settings
    • First observedupdate_image_resize
    • First observedupdate_origin_connection_settings
    • First observedupdate_rate_limit_rule
    • First observedupdate_rate_limit_settings
    • First observedupdate_ssl_settings
    • First observedupdate_waf_mode
    • First observeduse_optional_nameservers
    • First observedwrite_cloud_logs

TDQS

C2.6/5.0

Scored across 130 tools

Disambiguation3/5

The server has many product-specific tools with clear prefixes (vod, live, vads, caas, ai, edge, storage), but generic invoke_*_api tools overlap heavily with the named tools, and similarly named operations exist across products (e.g., list_buckets vs list_ai_buckets vs list_storage_api_buckets, multiple get_domain variants). Descriptions give exact endpoints, but an agent could still misselect when product context is absent.

Naming Consistency4/5

Nearly all tools use snake_case verb_noun, but consistency is only mostly maintained: some tools carry product prefixes (list_vod_videos), some do not (list_domains, list_servers), and version suffixes appear (list_servers_v3 vs list_servers). The generic invoke_*_api tools follow a predictable pattern, and S3 head_* verbs are conventional. These are minor deviations rather than chaotic naming.

Tool Count2/5

130 tools is far beyond typical scoped MCP server size, and many named tools are made redundant by generic invoke_*_api tools that already cover large API surfaces. While the server spans many products, the count is overwhelming and likely to burden tool selection and agent reliability.

Completeness4/5

The surface is extremely broad across CDN, DNS, VOD, Live, VADS, IaaS, CaaS, AI, Edge, and Storage, with CRUD for many resources and generic API invokers to fill undocumented or missing operations. However, some named product areas lack full lifecycle operations (e.g., VOD channels/videos) and rely on generic invokers, so coverage is strong but not seamless.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • -
    license
    B
    quality
    Not graded
    maintenance
    MCP server for Akamai APIs. 198 tools covering Property Manager, Edge DNS, CPS, WAF, and reporting. Built with TypeScript, featuring modular architecture, comprehensive testing, and multi-account support. Make Akamai accessible to AI assistants.
    1
    9 npm
    10
    -
  • 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.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides a unified MCP interface to manage Cloudflare services including DNS, compute (Workers, KV, D1), storage (R2), AI, security, Radar, and a universal API gateway for any Cloudflare v4 endpoint.
    MIT