@rarecloudio/mcp-server
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@rarecloudio/mcp-serverList my running servers and their costs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@rarecloudio/mcp-server
Model Context Protocol server for the RareCloud API.
Drop into Claude Code, Claude Desktop, Cursor, or your own MCP client to let AI agents inspect, reason about, and now also manage your RareCloud account — list servers, browse the catalog, check billing, inspect cloud infrastructure, deploy a VM, resize it, attach storage, and more.
What it does
Exposes 156 tools wrapping the RareCloud REST API: 77 read tools (inspect / list / get — always safe) plus 79 write/action tools (deploy, resize, destroy, order, renew, and similar mutations — gated where money or irreversibility is involved). See Reads + gated writes below for how the gate works.
Read tools (77)
Category | Tool | Purpose |
Catalog |
| Orderable products in the catalog (filter by kind / backend) |
| Full product detail: plans (sizes), specs, per-cycle pricing, billing tracks | |
| Available datacenter regions | |
| OS images (Ubuntu / Debian / Rocky / Windows Server / …) installable on new servers | |
| Order-ready detail for one SKU: cycles + prices, plans, config options | |
| OS templates selectable at purchase time for a VPS / dedicated SKU | |
| Deploy-wizard product cards for one category (the console "create" tiles) | |
| Managed-Kubernetes (Gardener) versions on offer, newest-supported first | |
Services |
| All services in the account: VPS, cloud VMs, proxies, hosting, domains |
| Full detail for one service: status, network, billing state, usage | |
| CPU / RAM / disk / bandwidth time series for one service | |
| Backups for one legacy VPS | |
| Setup state of a pending service (paid? VM exists yet? stuck?) | |
| Operating systems a legacy VPS can be reinstalled with | |
| Plans + cycles a service could upgrade / downgrade to | |
| Mounted-ISO status for a legacy VPS (is a rescue/install ISO attached?) | |
| SSH keys registered in a legacy VPS's key library | |
| Whether a service auto-renews from account balance | |
Orders |
| The account's orders — the purchase records behind its services |
| One order: line items, status, payment status, and its invoice | |
Billing |
| Invoice history: number, status, issued date, total |
| Full invoice detail: line items, taxes, payment method + timestamp | |
| Current prepaid credit balance | |
| Credit movements (top-ups, vouchers, metering debits, refunds) | |
| Preview what paying an invoice from balance would consume (bonus → credit → shortfall) | |
| Available payment options (WHMCS gateways) | |
| The active credit (deposit-match) promo, or none | |
| Promo (bonus) balance, in cents (EUR) | |
| Bonus-credit ledger: campaign grants and promo consumption | |
| Spending-alert state: threshold, month-to-date spend, triggered? | |
| Cloud auto-suspend state (normal / grace-period / suspended) | |
Support |
| Support tickets: id, subject, status, department, last-updated |
| One support ticket with its full message thread | |
| Support departments + their ids (for opening a ticket) | |
Account |
| Profile: email, name, country, billing currency, creation date |
| SSH keys on a specific server (legacy VPS) | |
| Resource limits and current usage (servers / vCPUs / IPs / volumes / …) | |
| Users linked to this client account (accepted members + pending invites) | |
| Affiliate status + stats: referral link, conversions, commissions, payouts | |
| Whether 2FA (TOTP) is enabled on the account | |
| Account-wide SSH public keys (offered at deploy time) | |
| Account audit trail: sign-ins, 2FA changes, service + billing actions | |
| Emails WHMCS sent to this account, newest first | |
| Billing / technical contacts (email-copy recipients, no login) | |
Cloud infrastructure |
| Block-storage volumes: id, name, size, status, attachment, region |
| One block-storage volume and which VM it is attached to | |
| Private networks (VPCs): id, name, CIDR, status, attached VM count | |
| One private network (VPC) and its attached VMs | |
| L4 load balancers: id, name, status, public IP, port, member count | |
| One load balancer with its members (backend VMs + ports) | |
| Backend members of a load balancer (private fixed IP + port) | |
| Reserved (static) public IPs and their attachments | |
| Cloud firewalls (security groups): status, attached VMs, rule count | |
| One firewall with its full rule set and attached VMs | |
Domains |
| Registered domains: id, name, status, expiry, auto-renew |
| One domain: nameservers, transfer lock, WHOIS privacy, auto-renew, expiry | |
| Whether a domain name is available to register | |
| Register / transfer / renew prices per TLD, in the account currency | |
| Nameservers currently set on an owned domain | |
| Registrant WHOIS contact on an owned domain | |
| DNS host records on an owned domain (A / CNAME / MX / TXT / …) | |
| Combined management snapshot for an owned domain in one call | |
Managed Kubernetes |
| Current scale of a managed K8s cluster: node pools + add-ons |
| Worker node pools: name, machine type, count, autoscale min/max | |
| Short-lived admin kubeconfig (expires in hours) — live secret | |
| Long-lived kubeconfig credentials, metadata only (token never returned) | |
| Re-download a long-lived credential's kubeconfig (active-only) — live secret | |
Proxies |
| Residential proxy services: id, name, flavor, status, plan, expiry |
| Proxy order-wizard catalog: ISP IP-count tiers + GB Residential buckets, pricing | |
| One proxy service: flavor, status, plan, location, expiry / renewal | |
| Live proxy endpoints + credentials for an ISP fixed-IP plan — live secret | |
| Auth settings for a proxy service: method, credentials, IP whitelist — live secret | |
| Countries selectable when creating a GB Residential proxy-request | |
| Rotation intervals selectable for a GB Residential proxy-request | |
| Proxy-requests on a GB Residential bucket (country + rotation + count groups) | |
| Live endpoints + credentials for one GB Residential proxy-request — live secret | |
| IP-replacement allowance + history for a proxy service |
Tools marked live secret return a real credential (a kubeconfig bearer token, or proxy ip:port:user:pass). Their descriptions instruct the agent to treat the result as a secret and not echo it back unless you explicitly ask.
Write / action tools (79)
Legend: (spends) = places a real order or otherwise charges the account; (destructive — needs confirm) = irreversibly tears something down. Both kinds refuse to run — making no API call — unless the call passes confirm:true; an agent must always surface the action and its cost/consequence to the user first. Tools with neither marker are plain writes (no charge, nothing torn down) and run unconditionally.
Category | Tool | Purpose |
Services |
| Set the hostname of a service (cloud VM or legacy VPS) |
| Deploy (order + provision) a new service — polymorphic across VM / k8s / volume / load-balancer / network / proxy / domain (spends) | |
| Permanently destroy a service and release its resources (destructive — needs | |
| Resize a cloud VM to a new flavor/plan (spends) | |
| Create an upgrade order moving a service to a new product/plan (spends) | |
| Ensure a renewal invoice exists for a service (spends) | |
| File a cancellation request — immediate or end-of-term (destructive — needs | |
| Toggle auto-renew for a service | |
| Create an on-demand backup of a legacy VPS | |
| Mount a rescue/install ISO on a VPS | |
| Unmount the currently mounted ISO from a VPS | |
| Set the root/administrator password of a VPS (destructive — needs | |
| Power on a service | |
| Power off a service | |
| Reboot a service | |
| Reinstall (rebuild from scratch) a service, wiping the disk (destructive — needs | |
| Reset the root password live via qemu-guest-agent, on a running cloud VM (destructive — needs | |
| Install an SSH public key directly onto a running service | |
| Register an SSH key in a legacy VPS's reinstall-time key library | |
| Apply a set of library SSH keys to a legacy VPS, replacing the current set | |
Managed Kubernetes |
| Set the autoscaling bounds of a cluster's first node pool |
| Add a named worker node pool (spends) | |
| Edit an existing node pool's bounds / machineType / volume size | |
| Remove a worker node pool (destructive — needs | |
| Rename a worker node pool (rolls its nodes) | |
| Enable the HA control plane — add-only, irreversible (spends) | |
| Mint a long-lived, revocable kubeconfig credential — live secret | |
| Revoke a long-lived kubeconfig credential (destructive — needs | |
Cloud infra — volumes / networks / IPs |
| Create a new block-storage volume (spends) |
| Delete a block-storage volume permanently (destructive — needs | |
| Attach a volume to a cloud VM | |
| Detach a volume from a cloud VM | |
| Create a new private network (VPC) | |
| Delete a private network (VPC) (destructive — needs | |
| Move a cloud VM into a private network | |
| Reserve a new static public IP (spends) | |
| Release (permanently delete) a reserved public IP (destructive — needs | |
| Attach a reserved public IP to a cloud VM | |
| Detach a reserved public IP from its VM | |
Cloud infra — firewalls / load balancers |
| Create a new cloud firewall (security group) |
| Delete a cloud firewall (destructive — needs | |
| Add an inbound/outbound rule to a firewall | |
| Remove a rule from a firewall (destructive — needs | |
| Attach a firewall to a cloud VM | |
| Detach a firewall from a cloud VM | |
| Create a new L4 load balancer (VIP + listener + pool + floating IP) (spends) | |
| Delete a load balancer (destructive — needs | |
| Add a VM as a member of a load-balancer pool | |
| Remove a member from a load-balancer pool (destructive — needs | |
Domains |
| Register a new domain name (spends) |
| Transfer a domain in from another registrar (spends) | |
| Renew an owned domain (spends) | |
| Replace an owned domain's nameservers (2-5) | |
| Update an owned domain's registrant WHOIS contact | |
| Replace an owned domain's DNS host records | |
| Dispatch a single domain management action (nameservers / lock / autorenew / idprotect / epp) | |
Account |
| Update the account's billing / contact profile |
| Add an account-wide SSH public key | |
| Delete an account-wide SSH key (destructive — needs | |
| Resend the account's email-verification email | |
| Add, update, or delete a billing/technical contact | |
| Mint a signed affiliate referral link (no money movement) | |
Billing |
| Set (or update) the month-to-date spend alert |
| Remove the month-to-date spend alert (destructive — needs | |
| Redeem a credit voucher / promo code (adds credit — never spends) | |
Support |
| Open a support ticket |
| Post a reply to an existing support ticket | |
| Close a support ticket | |
Proxies |
| Order a new residential proxy plan — ISP or GB Residential (spends) |
| Renew a proxy service for another billing term (spends) | |
| Turn a proxy service's auto-renew on/off | |
| Cancel a proxy service (destructive — needs | |
| Switch a proxy service's authentication method | |
| Set a proxy service's username/password — secrets, never echoed | |
| Add an IP to a proxy service's whitelist | |
| Remove an IP from a proxy service's whitelist (destructive — needs | |
| Request an IP replacement, consuming the monthly allowance | |
| Create a proxy-request on a GB Residential bucket | |
| Delete a proxy-request from a GB Residential bucket (destructive — needs |
Notably absent by design: no password/2FA changes, no sub-user invites, no payment-method or API-token management, no credit top-up, no invoice payment, no affiliate activate/withdraw. Those are identity, credential, or raw-money-movement operations that stay out of an agent's reach — see Reads + gated writes.
Related MCP server: CodeAudit MCP
Reads + gated writes
Every read tool above is always safe to call — it only ever inspects account state. Write tools mutate state, and the ones that spend money or destroy something are gated: they require an explicit confirm: true argument, and if it's missing the tool refuses immediately and issues zero API calls (no side effect, no partial charge, nothing to undo). The tool's own error message says so ("... was NOT executed ...") so the agent knows to go back and get the user's explicit go-ahead before retrying with confirm:true.
Two independent things are true of every gated tool:
confirm: truerequired — the caller must actively opt in per call; there is no "confirm once, run twice" shortcut.destructiveHintannotation — set on the subset of gated tools whose effect is irreversible teardown (delete, revoke, cancel, remove-member, …), so an MCP client's own UI/guardrails can treat those more cautiously than a merely money-spending gated tool (deploy, resize, renew, …). See the legend above the write-tools table for which tools carry which marker.
A handful of tools also return a live credential in their result — long-lived kubeconfigs (create_cluster_kubeconfig, plus the read-only get_cluster_kubeconfig / download_cluster_kubeconfig) and proxy endpoint/auth data (get_proxy_list, get_proxy_auth, get_proxy_request_list). Their descriptions explicitly instruct the agent to treat the value as a secret — never echo it back or log it — and pass it straight to whatever consumes it unless the user explicitly asks to see it.
For anything still outside the 79 write tools: the agent can read, recommend, and generate Terraform/CLI commands. The user copy-pastes them or runs them via the RareCloud CLI.
Install
Requires Node.js 20+ to run the published server. Contributors running the test suite locally need Node.js 21+ — npm test passes a glob (src/**/*.test.ts) straight to node --test, which only gained glob-pattern support in Node 21.
npm install -g @rarecloudio/mcp-serverOr run directly with npx:
npx @rarecloudio/mcp-serverConfigure
Get an API token: Dashboard → Account → API tokens → New token. Pick scopes for what you want the agent to do:
Read-only agent: the explicit read scopes
account:read,services:read,billing:read,domains:read,tickets:read.An agent that can also act: add the matching
{domain}:writescope(s) —services:write(covers cloud VMs, managed Kubernetes, volumes, networks, reserved IPs, firewalls, load balancers, and residential proxies — there is no separate proxy scope),domains:write,account:write,billing:write,tickets:write.Full access: bare
*.
Scope matching is exact per token — wildcard patterns like *:read are not supported; a token must carry the precise scope string a tool's description names. account:write / billing:write / tickets:write are deliberately narrow: they cover only the safe write tools listed above (profile fields, SSH keys, contacts, spend alerts, voucher redemption, tickets) and exclude every identity/credential/money-movement operation (password/2FA changes, sub-user invites, payment methods, API tokens, credit top-up, invoice payment, affiliate activate/withdraw) — those simply have no tool here, gated or otherwise.
Copy the token — shown once.
Set the env var:
export RARECLOUD_API_TOKEN="rc_pat_..."Optional, for self-hosted / staging instances (defaults to https://api.rarecloud.io):
export RARECLOUD_API_ENDPOINT="https://your-instance.example.com"Use with Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"rarecloud": {
"command": "npx",
"args": ["-y", "@rarecloudio/mcp-server"],
"env": {
"RARECLOUD_API_TOKEN": "rc_pat_..."
}
}
}
}Restart Claude Desktop. The tools become available under the 🔌 menu.
Use with Claude Code
claude mcp add rarecloud npx -- -y @rarecloudio/mcp-server \
-e RARECLOUD_API_TOKEN=rc_pat_...Use with Cursor
Edit ~/.cursor/mcp.json:
{
"mcpServers": {
"rarecloud": {
"command": "npx",
"args": ["-y", "@rarecloudio/mcp-server"],
"env": { "RARECLOUD_API_TOKEN": "rc_pat_..." }
}
}
}Example prompts
Once configured, try:
"What VPS plans do you offer in Frankfurt?" → uses
list_catalog_products+list_regions"List my running servers and their monthly cost" →
list_services+ per-service spec lookup"Am I close to any resource limits?" →
get_account_limits"Show my block volumes and which VM each is attached to" →
list_volumes"Any unpaid invoices, and what would paying the latest one from my balance cost?" →
list_invoices+get_invoice_pay_preview"Give me a Terraform config for a 2 vCPU / 4 GB VPS in The Hague" →
get_catalog_plan+ composition"Deploy a 2 vCPU / 4 GB VM in The Hague named web-01" →
get_product_detailsto confirm the plan and cost, thendeploy_servicewithconfirm:trueonce you approve"Resize db-02 to the next size up" →
list_upgrade_options+resize_service(confirm required)"Mint a 90-day view-only kubeconfig for my cluster for CI" →
create_cluster_kubeconfig
Develop locally
git clone https://github.com/RareCloudio/rarecloud-mcp-server
cd rarecloud-mcp-server
npm install
npm run dev # runs from source via tsx
npm run build # compiles to dist/Then point Claude Desktop at your local checkout:
{
"mcpServers": {
"rarecloud-dev": {
"command": "node",
"args": ["/absolute/path/to/rarecloud-mcp-server/dist/index.js"],
"env": { "RARECLOUD_API_TOKEN": "rc_pat_..." }
}
}
}Testing
npm testTests run on the built-in Node test runner (node:test) via tsx — no build step, no network. Each tool is exercised against an injected mock client that records the request path and returns a canned payload, so the suite asserts path construction, input-schema shape, JSON-vs-raw output, secret-handling guidance, and error mapping without ever calling the live API. For write tools, the same fake-client harness also proves the confirm gate makes zero requests when confirm is omitted, that both the zod input and the JSON inputSchema enforce the same bounds (mirrored both layers), and that every dynamic path segment is guarded against path traversal. A registry invariant test pins the exposed tool count (156) and enforces unique names, well-formed schemas, and — for the write-scope surfaces — an exact pinned set of tool names per scope, so a future change can't silently add a tool under the wrong scope.
Security
Tokens never touch shell history (we use env vars, not CLI flags).
Each tool maps 1:1 to a RareCloud API endpoint; the MCP server doesn't aggregate or transform data beyond what the API returns.
Scope is exact-match per token, enforced server-side. A token only unlocks the tools whose scope it carries; there is no wildcard scope matching (
*:readdoes not implyservices:read) and no client-side scope bypass — an unscoped or under-scoped token gets the API's own[FORBIDDEN]response back.Writes exist and are gated. 79 of the 156 tools mutate state. The ones that spend money or destroy something require
confirm:trueand make no API call at all without it (see Reads + gated writes). The remaining write tools are plain (no charge, nothing torn down) and run unconditionally once the token's scope allows them.No identity/credential/money-movement surface, by design, not by gate. Password/2FA changes, sub-user invites, payment-method management, API-token management, credit top-up, invoice payment, and affiliate activate/withdraw have no tool here at all — an agent holding even a maximally-scoped token cannot reach them. A registry test pins this exclusion list so a future change can't quietly add one back.
The handful of tools that return live credentials (kubeconfigs — including the long-lived
create_cluster_kubeconfig— and proxy endpoint/auth lists) carry explicit secret-handling guidance so the agent doesn't echo them back unprompted.Revoke a token at any time: Dashboard → Account → API tokens. Revocation is instant, no propagation delay.
License
MIT.
Available Tools
156 toolsadd_account_ssh_keyA
Add an account-wide SSH public key (usable when deploying new cloud VMs). Requires scope account:write. Plain write — not gated. name is a display label (1-200, unique per account); publicKey is the OpenSSH public-key string (ssh-ed25519 / ssh-rsa / ecdsa, max 4096). This is a PUBLIC key — never paste a private key. Distinct from the per-service add_service_ssh_key.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Display name (unique per account). | |
| publicKey | Yes | OpenSSH PUBLIC key string (ssh-ed25519 / ssh-rsa / ecdsa-sha2-nistp*). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the key is public and specifies allowed formats, but lacks details on side effects (e.g., duplicate name handling, validation failures, or response behavior). Some additional behavioral context would be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using two sentences plus a distinguishing note. Every sentence provides necessary information without redundancy. It is well-structured and front-loaded with the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description could mention what is returned (e.g., key ID or success confirmation). It covers parameter constraints and purpose adequately but lacks details on error conditions or post-invocation state changes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds meaningful context: name is a display label with uniqueness per account, publicKey specifies OpenSSH types and maximum length. It reinforces the public nature, adding value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds an account-wide SSH public key for use when deploying new cloud VMs. It explicitly distinguishes from the sibling tool add_service_ssh_key, providing a specific verb and resource with scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies the required scope (account:write) and notes it's a plain write, not gated. It also warns not to paste private keys and distinguishes from per-service key. However, it doesn't provide explicit when-not-to-use scenarios beyond the sibling distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_cluster_poolA
Add a named worker node pool to a managed Kubernetes cluster. Requires scope services:write. SPENDS MONEY: a new pool provisions billable worker nodes. Pass confirm:true only after the user has approved the pool and its cost. name is the pool name (lowercase letters/digits/hyphens, start with a letter, max 15, unique in the cluster); minimum/maximum are the autoscaling bounds; machineType (worker flavor, resolved server-side) and volumeSizeGb (per-node root volume, 10-1000 GiB, default 30) are optional. service_id comes from list_services; inspect existing pools with list_cluster_pools.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Node-pool name (lowercase letters/digits/hyphens, start with a letter, max 15; unique in the cluster). | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. | |
| maximum | Yes | Maximum worker count (>= minimum, <= 16). | |
| minimum | Yes | Minimum worker count (autoscaling lower bound). | |
| service_id | Yes | Managed-Kubernetes service ID from list_services. | |
| machineType | No | Worker machine type / flavor (resolved server-side). Defaults to the cluster default when omitted. | |
| volumeSizeGb | No | Per-node root-volume size in GiB (default 30). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It discloses the monetary impact, required scope, and the confirm contract. Could add error conditions or success response but sufficient for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is front-loaded with purpose and warnings, then parameter details. Every sentence adds value, though slightly verbose; could be tightened without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers scope, cost, confirmation flow, parameter details, and references sibling tools. Missing final outcome description (e.g., returns pool ID) but no output schema makes it acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of params, baseline 3. Description adds naming constraints, autoscaling bounds, machine type resolution, volume size range and default, and source for service_id, enriching beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds a named worker node pool to a managed Kubernetes cluster, distinguishing it from siblings like list_cluster_pools, update_cluster_pool, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: requires services:write scope, costs money, confirm flag only after user approval, and references list_services for service_id. Lacks explicit when-not-to-use but effectively guides usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_firewall_ruleA
Add an inbound/outbound rule to a cloud firewall. Requires scope services:write. Plain write — not gated. id is the firewall id from list_firewalls / get_firewall. direction and protocol are required; portRangeMin/portRangeMax (1-65535) narrow the rule to specific ports (omit both to match all ports); remoteCidr restricts the rule to a CIDR block (e.g. '0.0.0.0/0'); description is an optional label (max 255 chars). The server enforces portRangeMin <= portRangeMax; a rule violating that ordering is rejected with a 400.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Firewall id from list_firewalls / get_firewall. | |
| protocol | Yes | Protocol the rule matches. | |
| direction | Yes | Traffic direction the rule matches. | |
| remoteCidr | No | Remote CIDR block the rule applies to, e.g. '0.0.0.0/0'. | |
| description | No | Optional label for the rule (max 255 chars). | |
| portRangeMax | No | Upper bound of the port range (1-65535). | |
| portRangeMin | No | Lower bound of the port range (1-65535). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the write is 'plain' and not gated, and explains server-side validation (port range ordering, leading to 400 error). It could mention idempotency or duplicate handling, but the provided details are sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: it begins with the core purpose, then covers prerequisites, parameter behavior, and validation rules in a logical order. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and 7 parameters, the description covers key aspects: authentication, parameter sources, required vs optional fields, and server constraints. It omits the return value or status codes, but this is acceptable for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the schema: it explains that id comes from list_firewalls/get_firewall, that omitting both portRangeMin/Max matches all ports, that remoteCidr restricts to a CIDR block, and provides an example. This enhances understanding beyond the schema's field names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Add' and the resource 'inbound/outbound rule to a cloud firewall', specifying the action precisely. It distinguishes from sibling tools like create_firewall and delete_firewall_rule by focusing on rule addition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context: it requires scope services:write, explains how to obtain the id (from list_firewalls/get_firewall), and notes that direction and protocol are required. However, it does not explicitly contrast with alternatives or state when not to use it, slightly reducing clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_load_balancer_memberA
Add a VM as a member of a load balancer pool. Requires scope services:write. Plain write — not gated. id comes from list_load_balancers; serverId is the Nova server id to add (must be in your project); port is the member port (1-65535).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Load balancer id from list_load_balancers. | |
| port | Yes | Member port (1-65535). | |
| serverId | Yes | Nova server id to add (must be in your project). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses auth requirements ('services:write') and notes 'Plain write — not gated,' but omits side effects (e.g., behavior if member already exists) and response format. It provides moderate transparency but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is 4 sentences, front-loading the core purpose. Each sentence adds distinct information (action, scope, nature, parameter details) without redundancy. It is concise and efficiently uses words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 or annotations, the description covers purpose, auth, and parameter sources but lacks details on success output, error cases, or idempotency. It is adequate for simple operations but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, providing descriptions for all three parameters. The description largely reiterates the schema, adding only minor context (e.g., 'from list_load_balancers'). It adds no new meaning beyond what the schema already conveys, warranting the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a clear action: 'Add a VM as a member of a load balancer pool.' It uses a specific verb and resource, and the name itself distinguishes from siblings like 'remove_load_balancer_member' and 'list_load_balancer_members', making purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the required scope ('services:write') and parameter constraints (e.g., serverId must be in your project). It does not explicitly list alternatives or when not to use, but the sibling names are self-explanatory. The guidance is clear for correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_proxy_whitelisted_ipA
Add an IP address to a proxy service's whitelist (used by the 'ip' auth method). Requires scope services:write (proxy writes share the same scope as VM/k8s mutations — there is no proxy-specific scope). ISP proxy services only. ip must be a valid IPv4 or IPv6 address — use get_proxy_auth's yourIp field to whitelist the caller's own detected IP. Plain write — not gated. id comes from list_proxies.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Proxy service id from list_proxies (ISP only). | |
| ip | Yes | IPv4 or IPv6 address to whitelist. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses required scope (services:write) and notes that proxy writes share scope with VM/k8s mutations with no proxy-specific scope. States it is a 'plain write — not gated.' Also mentions IP validation. Without annotations, this provides adequate behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise, with five efficient sentences that front-load the purpose and progressively add details. No extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, output schema, or high complexity, the description covers purpose, usage context, behavioral aspects, and parameter tips. It is complete enough but could mention that the whitelist addition is immediate or persistent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds practical guidance: ip must be valid IPv4/IPv6 and suggests using get_proxy_auth's yourIp field; id comes from list_proxies. This adds meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (add an IP address) and resource (proxy service's whitelist) and specifies the auth method context. It easily distinguishes from sibling tools like remove_proxy_whitelisted_ip.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: limited to ISP proxy services, suggests using get_proxy_auth's yourIp field, mentions required scope. It does not explicitly list when not to use or alternatives, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_service_ssh_keyA
Install an SSH public key directly onto a running service (per-server), distinct from add_service_ssh_key_to_library, which registers a key in the server's reinstall-time key library. Requires scope services:write. Plain write — no billing impact, not destructive. service_id from list_services.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Optional caller-supplied key id. | |
| name | No | Optional label for the key. | |
| public_key | Yes | The SSH public key material to install. | |
| service_id | Yes | Service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description covers key behavioral traits: plain write, no billing impact, not destructive, and per-server operation. However, it does not discuss idempotency or return behavior, which would be beneficial but is acceptable for this scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise, front-loaded sentences each serve a distinct purpose: action+distinction, scope+traits, and parameter source. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description adequately covers the tool's effect and prerequisites. It would benefit from mentioning what happens post-installation (e.g., return status), but it is sufficient for a simple write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add significant meaning beyond the schema; it only mentions service_id source. No extra detail on optional id or name parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it installs an SSH public key directly onto a running service and distinguishes from the sibling tool add_service_ssh_key_to_library, making the specific verb and resource unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly contrasts with the related sibling tool, mentions the required scope (services:write), and notes that service_id comes from list_services, providing clear when-to-use guidance without ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_service_ssh_key_to_libraryA
Register a new SSH key in a legacy VPS's key library (Virtualizor) — the set of keys selectable when reinstalling this server (see list_service_ssh_key_library). Distinct from add_service_ssh_key, which installs a key directly on the running server. Requires scope services:write. Plain write — no billing impact, not destructive. service_id from list_services.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | The SSH public key material. | |
| name | Yes | A label for the key. | |
| service_id | Yes | Service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states 'Plain write — no billing impact, not destructive,' which directly informs the agent about safety and cost. It also mentions the required auth scope. This is valuable transparency beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph with four well-organized sentences: purpose, distinction, permissions/safety, and parameter hint. Every sentence adds value without redundancy. It is concise and front-loaded with the primary action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 parameters, no output schema), the description covers purpose, sibling differentiation, permissions, safety, and parameter source. It does not detail error handling or idempotency, but for a write tool with no output schema, this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for all three parameters (100% coverage). The description adds only a minor hint about service_id source. Baseline 3 is appropriate since the schema does the heavy lifting and the description adds marginal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool registers an SSH key into a legacy VPS's key library, which is distinct from direct installation via add_service_ssh_key. It names the specific platform (Virtualizor) and references the library listing tool, making the purpose unambiguous and differentiating it from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly contrasts with add_service_ssh_key and mentions the required scope 'services:write'. While it doesn't list all scenarios for when not to use it, the distinction and scope information provide clear guidance. It also indicates the source of the service_id parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_service_ssh_key_libraryA
Apply a SET of library SSH keys (see list_service_ssh_key_library) to a legacy VPS, replacing whichever keys are currently authorized on the server. Requires scope services:write. Omit keyIds (or pass an empty array) to apply an empty set. Plain write — no billing impact, not destructive. service_id from list_services.
| Name | Required | Description | Default |
|---|---|---|---|
| keyIds | No | Library key ids to apply (see list_service_ssh_key_library). Omit for an empty set. | |
| service_id | Yes | Service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that the operation replaces existing keys, is a 'plain write', and has 'no billing impact, not destructive'. This goes beyond the basic action description and adds important 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no fluff. The first sentence delivers the core action, and subsequent sentences add essential usage details and behavioral notes. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description covers the tool's purpose, required context (scope, source of IDs), behavior (replacement, non-destructive), and parameter options. For a straightforward write operation with two parameters, this is fully sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description for keyIds and service_id closely mirrors the schema descriptions, adding little additional meaning beyond directing to list_service_ssh_key_library and list_services. It does not introduce new semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Apply a SET of library SSH keys to a legacy VPS, replacing whichever keys are currently authorized on the server.' It specifies the verb (apply), the resource (library SSH keys), and the effect (replacement), distinguishing it from sibling tools like add_service_ssh_key_to_library or list_service_ssh_key_library.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit context: requires scope 'services:write', uses service_id from list_services, and explains that omitting keyIds applies an empty set. It also clarifies the operation is a 'plain write' with no billing impact. While it does not explicitly state when not to use or compare to alternatives, the context is clear and sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
attach_firewallA
Attach a cloud firewall to a cloud VM. Requires scope services:write. Plain write — not gated. id comes from list_firewalls; serverId is the Nova server id to attach to (must be in your project).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Firewall id from list_firewalls. | |
| serverId | Yes | Nova server id to attach to (must be in your project). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses write nature, permission requirement, and a constraint (serverId must be in project). However, it does not mention idempotency, error conditions, or return value, leaving some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each adding distinct value: the action, the permission and nature, and parameter sourcing. Front-loaded with the core purpose. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple write operation with 2 parameters and no output schema, the description covers the essential aspects: action, permission, and parameter sourcing. Could mention error handling or return status, but not strictly necessary for a well-understood operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. The description largely repeats schema content, adding no new meaning beyond emphasizing 'must be in your project', which is already in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Attach a cloud firewall to a cloud VM.'), using a specific verb and resource. It distinguishes from siblings like 'detach_firewall' and 'create_firewall'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: requires scope services:write, notes it's not gated, specifies parameter sources (list_firewalls for id, project ownership for serverId). Does not explicitly list alternatives or exclusions, but the sibling tool set implies the opposite operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
attach_network_vmA
Move a cloud VM into a private network (VPC), detaching it from its current VPC (the VM's public eth0 interface is untouched). Requires scope services:write. Plain write — not gated. id is the target VPC from list_networks; serverId is the Nova server id to move.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Target VPC (network) id from list_networks. | |
| serverId | Yes | Nova server id to move into this VPC. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses side effects: detaching from current VPC while leaving public eth0 untouched. It also states the permission requirement and writes nature. No contradictions. Minor missing details like synchronous/asynchronous behavior, but good for a simple mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences. First sentence states the action and side effect. Second sentence covers permission and parameter guidance. No fluff or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 required params, no output schema), the description adequately covers purpose, permissions, parameter sources, and side effects. It could mention return value or async behavior, but omission is acceptable for a straightforward write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by specifying the source for each parameter: 'id is the target VPC from list_networks' and 'serverId is the Nova server id to move.' This goes beyond the schema descriptions and helps the agent understand where to obtain values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Move a cloud VM into a private network (VPC), detaching it from its current VPC.' It specifies the resource (cloud VM) and the context (private network/VPC). This distinguishes it from sibling tools like attach_volume or attach_reserved_ip.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions required scope (services:write) and explains where to get parameter values ('id is the target VPC from list_networks; serverId is the Nova server id to move'). It does not explicitly exclude alternatives or provide when-not-to-use guidance, 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.
attach_reserved_ipA
Attach a reserved (static) public IP to one of your cloud VMs. Requires scope services:write. Plain write — not gated. id comes from list_reserved_ips; serverId is the cloud VM id to attach to (must be owned by you).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Reserved IP id from list_reserved_ips. | |
| serverId | Yes | Cloud VM id to attach to (must be owned by you). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses permissions and the source of IDs, but lacks details about side effects (e.g., whether the attachment causes downtime, replaces existing IP, or is immediate). No output schema means the return value is unknown.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each adding value: purpose, permissions, parameter sources. No wasted words, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple attach operation with full schema coverage and no output schema, the description covers purpose, permissions, and parameter sourcing. It could mention behavioral side effects (e.g., network impact) but is adequate overall.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description repeats the schema descriptions for both parameters, adding only the ownership constraint for serverId. It does not provide new semantic insight beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Attach a reserved (static) public IP to one of your cloud VMs.' The verb 'attach' and the specific resource and target distinguish it from sibling tools like detach_reserved_ip, reserve_ip, and release_reserved_ip.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies the required scope ('services:write') and notes 'Plain write — not gated,' indicating no additional gates. It also clarifies where the parameters come from (list_reserved_ips and owned VM). However, it does not explicitly mention when not to use this tool or provide alternatives, though 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.
attach_volumeA
Attach a block storage volume to a cloud VM. Requires scope services:write. Plain write — not gated. id (the volume) comes from list_volumes; serverId is the Nova server id to attach to (must be in your project).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Volume id from list_volumes. | |
| serverId | Yes | Nova server id to attach to (must be in your project). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It mentions scope and non-gated write, but does not explain side effects (e.g., what happens if volume already attached) or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, front-loaded with the core action, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema no annotations, the description covers action, parameters, sourcing, and permissions. Missing mention of prerequisites (e.g., volume must be unattached) but still fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions. The description restates the parameter sources but adds no new meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Attach a block storage volume to a cloud VM,' specifying the verb (attach) and resource (volume to VM). It differentiates from siblings like detach_volume and create_volume.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context: requires scope services:write, notes 'plain write — not gated,' and tells where to get parameters. It implies when to use but lacks explicit exclusions or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_proxyADestructive
Cancel a proxy service (ISP, GB Residential, or mobile — any kind). Requires scope services:write (proxy writes share the same scope as VM/k8s mutations — there is no proxy-specific scope). Prepaid semantics: flags the service to stop auto-renewing; it stays usable until its paid expiry, then ends normally (no upstream teardown call, no refund). cancel:true (the default) cancels at period end; cancel:false undoes a prior cancel and restores auto-renew. IRREVERSIBLE in the sense that the service will stop working at expiry unless undone first — pass confirm:true only after the user has explicitly approved. id comes from list_proxies.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Proxy service id from list_proxies. | |
| cancel | No | true (default) cancels at period end; false undoes a prior cancel. | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses irreversible nature with confirm requirement, prepaid behavior (no refund, no upstream teardown), and scope sharing with VM/k8s mutations. Exceeds the destructiveHint annotation with specific behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise yet comprehensive; front-loaded with purpose, then covers scope, semantics, and precautions. Every sentence adds value, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all critical aspects: purpose, prerequisites, behavior, and irreversibility. Lacks mention of return value or error handling, but not essential given no output schema and clear operational description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds significant meaning beyond schema: explains cancel parameter default and undo behavior, describes confirm's role as explicit user approval gate. With 100% schema coverage, description still provides essential context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it cancels any proxy service (ISP, GB Residential, mobile) with a specific verb and resource, distinguishing it from sibling tools like cancel_service or renew_proxy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains prepaid semantics, when to use (at period end), and how cancel parameter works (default true to cancel, false to undo). Mentions required scope and source of id, providing clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_serviceADestructive
File a cancellation request for a service. Requires scope services:write. DESTRUCTIVE: schedules teardown of the service — type "immediate" stops it now; "end_of_term" cancels at the paid-through date. Pass confirm:true only after the user has explicitly approved. service_id from list_services.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Cancellation timing (default end_of_term server-side). | |
| reason | No | Optional free-text reason for cancelling. | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. | |
| service_id | Yes | Service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description adds crucial behavioral details: 'schedules teardown of the service' and explains the two cancellation types ('immediate' vs 'end_of_term'). It also mentions the required scope 'services:write'. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct (3 sentences) and front-loaded with purpose and scope. Every sentence adds necessary detail without redundancy. Structure supports quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main behavioral aspects for a destructive tool (scope, timing, confirmation). However, it lacks information about the return value or what happens after cancellation (e.g., creates a ticket). Given no output schema, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% coverage with descriptions for all parameters. The description adds practical guidance: 'service_id from list_services', 'Pass confirm:true only after the user has explicitly approved', and clarifies the 'type' enum as timing options. This enhances usability beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('File a cancellation request') and the resource ('for a service'), specifying the scope requirement and the destructive nature. It distinguishes this tool from siblings like destroy_service or stop_service by detailing the two cancellation timing types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool: for cancellation, requiring explicit user approval via 'confirm:true'. However, it does not explicitly compare to alternative tools or state when not to use it, though the destructive hint and confirmation requirement imply cautious use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_domain_availabilityA
Check whether a domain name is available to register — a pre-purchase WHOIS availability lookup for a single domain. Pass the full domain (e.g. example.com). Use before quoting a registration or suggesting an alternative name.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain to check, e.g. example.com. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It describes the operation as a 'WHOIS availability lookup' implying read-only, but doesn't disclose any side effects, error behavior, or expected return format. Minimal beyond basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no unnecessary words. First sentence establishes purpose and method, second provides example and usage advice. Perfectly front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool without output schema, the description covers purpose, usage context, and example. However, it omits what the return value will be (boolean? availability status?), leaving the agent partially informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with description for the only parameter. The description adds 'Pass the full domain' reinforcing the format, but this is already in the schema. No additional semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb 'Check' and resource 'domain name availability' with context 'pre-purchase WHOIS availability lookup'. It differentiates from domain sibling tools (list_domains, get_domain, register_domain) by focusing on availability checking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises when to use: 'Use before quoting a registration or suggesting an alternative name.' This provides clear context and workflow integration. It lacks explicit 'when not to use' but the purpose is well-scoped.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_ticketA
Close a support ticket. Requires scope tickets:write. Plain write — not gated. id comes from list_tickets. Returns the updated ticket.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ticket id from list_tickets. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses auth requirement and return value, but lacks details on side effects or failure conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise (4 sentences) with no fluff. Every sentence adds value: action, auth, parameter source, return value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool without output schema, description covers key aspects. Lacks explanation of 'not gated' but otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% with parameter description. Description reinforces same info without adding new semantics, meeting baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'close' and resource 'support ticket', distinguishing it from sibling tools like get_ticket, create_ticket, list_tickets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit permission requirement ('tickets:write'), notes it's not gated, and tells parameter source from list_tickets. Does not explicitly state when not to use, but contextually clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_affiliate_linkA
Mint a signed affiliate referral link that redirects to a destination of your choice after placing the affiliate cookie. Requires scope account:write. Plain write — NO money movement (affiliate activate and withdraw are intentionally NOT exposed to agents). The affiliate account must already be active. destination is the absolute http(s) URL to redirect to (1-2048 chars).
| Name | Required | Description | Default |
|---|---|---|---|
| destination | Yes | Absolute http(s) URL to redirect to after the affiliate cookie is placed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description bears full responsibility. It discloses that the tool creates a referral link, places a cookie, redirects, and requires an active affiliate account and write scope. The explicit disclaimer 'NO money movement' helps set expectations. It does not mention error handling or return values, but for a simple creation tool, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at four sentences. Each sentence adds unique value: the main action, scope requirement, clarification about money movement, prerequisite, and parameter explanation. No extraneous words; front-loaded with the primary verb.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter creation tool with no output schema, the description covers the essential: what it does, prerequisites, scope, and parameter details. It could optionally mention the return value (the generated link), but this is a minor gap given the tool's simplicity and the overall clarity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers the destination parameter with full description, min/max length. The description adds a redundant explanation but essentially repeats the schema. With 100% schema coverage, baseline is 3; no significant added value beyond confirming it must be an absolute http(s) URL.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Mint a signed affiliate referral link that redirects to a destination of your choice after placing the affiliate cookie.' This is a specific verb-resource pair. It also distinguishes from siblings by noting that affiliate activate and withdraw are not exposed, making this the sole affiliate creation action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit context: 'Requires scope account:write' and 'The affiliate account must already be active.' It also clarifies 'Plain write — NO money movement,' indicating this tool is not for financial transactions. While it doesn't name alternatives, the sibling list includes get_affiliate for reading, so the usage boundaries are reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_cluster_kubeconfigA
Create a LONG-LIVED, revocable kubeconfig credential (a per-credential ServiceAccount) for a managed Kubernetes cluster, for standing automation (CI, GitOps). Requires scope services:write. role=admin (cluster-admin) or view (read-only); optional ttl is one of 30d, 90d, 1y, never (default 90d; "never" mints a 10-year token). SECURITY: the result is a LIVE CREDENTIAL — a kubeconfig YAML embedding a bearer token. Treat it as a secret: do NOT echo it back or repeat its contents unless the user explicitly asks; pass it straight to the consuming tool. Returns the raw kubeconfig YAML as a text block. service_id comes from list_services (a cloud-k8s service). Revoke later with revoke_cluster_kubeconfig.
| Name | Required | Description | Default |
|---|---|---|---|
| ttl | No | Optional token lifetime; one of 30d, 90d, 1y, never. Omit for the default (90d). | |
| name | Yes | Human label for the credential (shown in list_cluster_kubeconfigs). | |
| role | Yes | admin (cluster-admin) or view (read-only). | |
| service_id | Yes | Managed-Kubernetes service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description fully covers behavioral traits: warns that the result is a live credential containing a bearer token, instructs not to echo it, explains TTL defaults and that 'never' mints a 10-year token, and describes the return format as raw kubeconfig YAML.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with purpose, and efficiently covers all necessary details without redundant sentences. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters, no output schema, and no annotations, the description provides solid coverage: security, prerequisites, return format, revocation. Could mention idempotency or error states, but it's fairly complete for the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds context: explains enum options for role and ttl, clarifies that 'never' means 10-year token, and ties service_id to list_services. This adds meaningful value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'create', the resource 'kubeconfig credential for managed Kubernetes cluster', and the purpose 'standing automation (CI, GitOps)'. It distinguishes from sibling tools like revoke_cluster_kubeconfig and download_cluster_kubeconfig.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit scope requirement (services:write), role options, TTL details, and references list_services for service_id. Also suggests revocation with revoke_cluster_kubeconfig. Lacks explicit when-not-to-use or alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_firewallA
Create a new cloud firewall (security group). Requires scope services:write. Plain write — not gated. name is the display name (1-63 chars). Add rules with add_firewall_rule, then attach it to a VM with attach_firewall.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Firewall display name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description must provide behavioral context. States scope requirement and that it's a 'plain write — not gated,' indicating no extra guardrails. Does not mention idempotency, error behavior, or whether it returns the created resource.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus a short parameter note. Front-loaded with action and prerequisites. No redundant information. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter creation tool with no output schema, the description covers what, prerequisites, and subsequent steps. Could mention return value or synchronous nature, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. Description repeats schema info ('name is the display name (1-63 chars)') without adding new semantic meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states action: 'Create a new cloud firewall (security group).' Distinguishes from siblings by mentioning 'Add rules with add_firewall_rule, then attach it to a VM with attach_firewall.' Highlights requirement 'Requires scope services:write.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states required scope and that it's a plain write (not gated). Implicitly guides usage order: create firewall, add rules, attach. Lacks explicit when-not-to-use or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_load_balancerA
Create a new L4 (TCP) load balancer: a VIP on your subnet, a listener + pool on port, the given VMs as members, and a public floating IP. Requires scope services:write and per-customer tenancy. SPENDS MONEY: the load balancer is billed hourly, AND the public floating IP it allocates is billed hourly as well — two separate hourly meters for one call. Pass confirm:true only after the user has approved the cost. name is the display name (1-253 chars); port is the listener + member port (1-65535); memberServerIds are the Nova server ids to balance across (at least one); healthCheck enables a TCP health monitor (defaults to true server-side if omitted). Manage it afterward with add_load_balancer_member / remove_load_balancer_member.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Load balancer display name. | |
| port | Yes | Listener + member port (1-65535). | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. | |
| healthCheck | No | TCP health monitor (default true). | |
| memberServerIds | Yes | Nova server ids to balance across. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool spends money (two separate hourly meters), requires confirm for cost approval, and describes the default for healthCheck. Lacks details on irreversibility beyond the confirm flag and error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single paragraph, front-loaded with purpose, no wasted words. Every sentence adds value, from the operation summary to billing implications to parameter details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and no annotations, the description is comprehensive. It covers purpose, billing, scope, parameters, and sibling tools. Minor gap: does not describe the return value on success.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have schema descriptions, but the description adds significant extra meaning: confirm must only be true after user approval, port is both listener and member port, healthCheck defaults to true server-side, memberServerIds are Nova server ids, and name character range.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates an L4 TCP load balancer with VIP, listener, pool, and floating IP. It distinguishes from sibling tools like add_load_balancer_member and remove_load_balancer_member by noting management afterward.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly mentions required scope (services:write) and tenancy, and warns about spending money with the need for confirm:true after user approval. Does not explicitly state when NOT to use this tool, but the context of creation vs. management is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_networkA
Create a new private network (VPC). Requires scope services:write. Plain write — not gated (VPCs carry no separate charge). name is the display name (1-253 chars); a /16 CIDR is auto-allocated. Move VMs into it afterward with attach_network_vm.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | VPC display name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behaviors. It mentions auto-allocation of /16 CIDR and the write nature. However, it does not detail potential side effects (e.g., default rules), idempotency, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that front-load the purpose and requirements. Every sentence adds value, with no redundancy or unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple create tool with one parameter and no output schema, the description covers the operation, authorization, constraints, and next steps comprehensively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter described as 'VPC display name.' Description adds the character limits (1-253 chars) and notes auto-allocation of a /16 CIDR, providing useful context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Create a new private network (VPC)' with a specific verb and resource. Differentiates from sibling tools like delete_network and attach_network_vm by explicitly mentioning the creation and the follow-up action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides authorization requirement ('scope services:write'), explains that VPCs carry no separate charge, describes the name constraint, and suggests using attach_network_vm afterward. Lacks explicit when-not-to-use scenarios but is otherwise clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_proxy_requestA
Create a proxy-request (country + rotation-interval + count group) on a GB Residential bucket, allocating endpoints from it. Requires scope services:write (proxy writes share the same scope as VM/k8s mutations — there is no proxy-specific scope). GB Residential only — ISP fixed-IP plans expose their endpoints directly via get_proxy_list. countryId comes from list_gb_residential_countries; rotationInterval comes from list_gb_rotation_intervals. Plain write — not gated. id comes from list_proxies (a GB Residential service).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | GB Residential proxy service id from list_proxies. | |
| countryId | Yes | A country id from list_gb_residential_countries. | |
| proxyCount | Yes | How many proxies to allocate. | |
| rotationInterval | Yes | Rotation interval id from list_gb_rotation_intervals. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses the required scope (services:write), that it's a plain write (not gated), and the GB Residential-only constraint. It omits return values and potential errors, but overall is fairly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 sentences), front-loads the purpose, and every sentence adds unique value (scope, constraints, parameter sources). No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 params, no output schema, many siblings), the description covers purpose, constraints, and parameter sourcing. It lacks information on the return value and error conditions, but is otherwise complete for a create tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes each parameter (100% coverage), and the description adds valuable sourcing context (e.g., id from list_proxies, countryId from list_gb_residential_countries). This enhances meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a concrete action (create a proxy-request) on a specific resource (GB Residential bucket), and distinguishes from ISP fixed-IP plans that use get_proxy_list. This differentiates among sibling tools effectively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when not to use this tool (ISP fixed-IP plans) and provides source endpoints for each parameter. However, it does not compare against other proxy-related siblings like order_proxy, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_service_backupA
Create an on-demand backup of a legacy VPS service. Requires scope services:write. Plain write — no billing impact, not destructive. service_id from list_services.
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | Service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full transparency burden. It discloses that the operation is a plain write with no billing impact and is not destructive. It could mention backup retention limits or concurrency, but the provided information is sufficient for an agent to understand the behavioral profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—four short sentences, each adding distinct information. It front-loads the purpose and follows with critical usage details, with no unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with no output schema, the description is adequate but leaves gaps: it does not describe the return value (e.g., backup ID or status), error conditions, or limits on backup frequency. Given the tool's low complexity, this is acceptable but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, and the description adds value by specifying that service_id should come from list_services. This helps the agent know how to obtain the required parameter beyond the schema's type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create an on-demand backup'), the resource type ('legacy VPS service'), and differentiates from sibling tools (there is no other create_backup tool). It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides prerequisites (scope services:write) and safety guidance (no billing impact, not destructive), and tells how to obtain the parameter. However, it does not explicitly discuss when not to use this tool or alternative methods for backup creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_ticketA
Open a support ticket. Requires scope tickets:write. Plain write — not gated. subject (1-150); department is a department id from list_ticket_departments (1-64); priority is one of low | medium | high; body is the message (1-50000). attachments is an optional list (max 5) of {name, data} where data is base64-encoded file content.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The message body. | |
| subject | Yes | Ticket subject. | |
| priority | Yes | low | medium | high. | |
| department | Yes | Department id from list_ticket_departments. | |
| attachments | No | Optional file uploads (max 5). Each item is {name, data} where data is base64-encoded content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses auth requirements and constraints, but does not explain side effects (e.g., whether ticket ID is returned), success/failure signals, or idempotency. The phrase 'Plain write — not gated' adds some transparency but overall incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that front-loads the purpose and covers all parameters efficiently. It could benefit from structured bullets but remains concise without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations or output schema, the description adequately covers all parameters and constraints (length limits, optional attachments). Missing return value info and potential errors, but sufficient for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds valuable context: linking department to list_ticket_departments, clarifying priority enum values, and detailing attachment format (base64, no data: URI prefix). This goes beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Open a support ticket' as the primary action, with specific verb and resource. It distinguishes from sibling tools like reply_ticket and close_ticket by focusing on creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions required scope ('tickets:write') and that it is 'not gated,' but does not provide guidance on when to use this tool vs alternatives (e.g., when to reply to an existing ticket). Implicit usage from context but lacks explicit when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_volumeA
Create a new block storage volume (Cinder). Requires scope services:write. SPENDS MONEY: billed per-GB monthly, not a catalog SKU. Pass confirm:true only after the user has approved the size and its cost. sizeGb is the size in GB (1-2048); name is an optional display name (max 253 chars, defaults to 'volume' server-side). Attach it to a VM afterward with attach_volume.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional display name (default 'volume'). | |
| sizeGb | Yes | Volume size in GB (1-2048). | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full burden. It discloses cost implications, scope requirement, confirm safety mechanism, size range, and name default. Does not mention idempotency or error behavior, but key behavioral traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences that are concise and front-loaded. Could be more structured (e.g., bullet points), but each sentence adds necessary information without wordiness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so return format is not described. However, the description covers all parameters, required scope, cost, and follow-up action. For a 3-param tool, it is fairly complete but missing output info.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with decent descriptions. The description adds extra context for confirm (user approval), name default, and size range, but doesn't significantly enhance beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Create a new block storage volume (Cinder)' with a specific verb and resource. It distinguishes itself from related tools like attach_volume, delete_volume, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: requires scope services:write, spends money, and advises to pass confirm:true only after user approval. Also mentions next step (attach_volume). No explicit when-not-to-use, but adequate guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_account_ssh_keyADestructive
Delete an account-wide SSH key. Requires scope account:write. IRREVERSIBLE: removes an access credential from the account (the key must be re-added to use it again). Pass confirm:true only after the user has explicitly approved. id comes from list_account_ssh_keys.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | SSH key id from list_account_ssh_keys. | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the 'destructiveHint: true' annotation, the description adds important behavioral details: irreversibility, required scope, and the need for explicit user confirmation. This enriches the agent's understanding of the tool's impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (3 sentences) and front-loaded with the core purpose. Every sentence adds essential information without redundancy, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and adequate annotations, the description covers all critical aspects: purpose, prerequisites, side effects, and parameter usage. It is fully sufficient for safe and correct tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the description enhances parameter semantics by reiterating the source of 'id' and emphasizing the conditional use of 'confirm'. This adds practical guidance beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and the resource ('account-wide SSH key'). It distinguishes from siblings like 'add_account_ssh_key' and 'list_account_ssh_keys' by specifying the deletion operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage guidance: requires scope 'account:write', uses 'confirm:true' only after user approval, and references 'list_account_ssh_keys' for the ID. It lacks explicit exclusions but covers essential usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_billing_alertADestructive
Remove the month-to-date spend alert. Requires scope billing:write. Low blast radius and easily re-created via set_billing_alert, but kept confirm-gated for uniformity with the other delete tools. Pass confirm:true only after the user has approved. Takes no other input (the alert is a singleton).
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Confirms destructiveHint annotation with 'Low blast radius and easily re-created' context. Describes confirm-gated behavior and that it makes no API call if confirm is false or omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences front-loaded with purpose, requirements, behavior, and usage. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, permissions, confirmation flow, and singleton nature. Lacks description of return value on success, but given simplicity and destructive hint, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with good description. Description adds that the alert is a singleton and that confirm must be user-approved, providing extra context beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Remove the month-to-date spend alert', a specific verb+resource. Mentions it's a singleton, distinguishing from other delete tools, and references sibling set_billing_alert.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says requires scope billing:write, explains confirm parameter usage with approval requirement, and notes the alert is easily re-created via set_billing_alert, providing alternative context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_cluster_poolADestructive
Remove a worker node pool from a managed Kubernetes cluster. Requires scope services:write. DESTRUCTIVE: the pool and its worker nodes are drained and destroyed (the cluster must keep at least one pool — removing the last one is rejected). Pass confirm:true only after the user has explicitly approved. service_id from list_services; pool is the pool name from list_cluster_pools.
| Name | Required | Description | Default |
|---|---|---|---|
| pool | Yes | Node-pool name from list_cluster_pools. | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. | |
| service_id | Yes | Managed-Kubernetes service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description adds that worker nodes are drained and destroyed, and that the operation is rejected if it would leave zero pools. This provides meaningful behavioral context without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted words. The most critical information (action, destructiveness, constraints, parameter sources) is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, and the description does not mention what the tool returns on success or failure. For a destructive action, agents would benefit from knowing the expected response (e.g., a confirmation object). Otherwise, the description covers inputs and constraints adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining how to obtain service_id (from list_services) and pool (from list_cluster_pools), and for confirm clarifies the refusal behavior when not true. This is helpful but not extensive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Remove') and resource ('worker node pool from a managed Kubernetes cluster'), clearly distinguishing it from sibling tools like add_cluster_pool, update_cluster_pool, and rename_cluster_pool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: requires scope services:write, states the constraint that the last pool cannot be removed, and mandates user approval via confirm:true. However, it does not explicitly compare to alternatives (e.g., update_cluster_pool) but the naming is sufficiently distinct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_firewallADestructive
Delete a cloud firewall. Requires scope services:write. IRREVERSIBLE, and refused server-side while it is still attached to any VM (detach first with detach_firewall). Pass confirm:true only after the user has explicitly approved. id comes from list_firewalls.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Firewall id from list_firewalls. | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond destructiveHint annotation, description reveals irreversibility, server-side refusal when attached, and the exact behavior of confirm parameter. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states core purpose, second provides critical usage details. No wasted words, front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with no output schema, the description covers prerequisites, constraints, user confirmation, and parameter source. Complete and actionable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with identical descriptions. The description provides no additional semantic value beyond the schema (e.g., same text for confirm). Baseline 3 due to 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Delete a cloud firewall' – a specific verb and resource. It clearly distinguishes from siblings like detach_firewall by noting the prerequisite to detach first.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides when to use (delete firewall), when not (if still attached – detach first), prerequisites (scope services:write, id from list_firewalls), and user confirmation protocol (confirm:true only after explicit approval).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_firewall_ruleADestructive
Remove a rule from a cloud firewall. Requires scope services:write. IRREVERSIBLE: the rule stops applying immediately, changing what traffic is allowed. Pass confirm:true only after the user has explicitly approved. id and ruleId both come from get_firewall.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Firewall id from list_firewalls / get_firewall. | |
| ruleId | Yes | Rule id from get_firewall. | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the 'destructiveHint: true' annotation by explaining the irreversible nature: 'IRREVERSIBLE: the rule stops applying immediately, changing what traffic is allowed.' It also details the confirm parameter behavior (omit/false leads to refusal). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (three sentences), front-loaded with the purpose, and each sentence adds distinct information: purpose, scope, irreversibility, confirm usage, and parameter origins. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does not need to explain return values. It covers the core operation, side effects, and prerequisites. It could mention that the removal is reflected in subsequent get_firewall calls, but this is implied. Overall, it provides sufficient context for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so baseline is 3. The description adds value by specifying that 'id and ruleId both come from get_firewall,' providing a data source hint. For the confirm parameter, the schema already explains behavior fully, so no extra credit needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Remove a rule from a cloud firewall,' which is a specific verb+resource. It implicitly distinguishes from the sibling tool 'add_firewall_rule' by being the inverse operation, and the tool name itself indicates deletion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides necessary prerequisites ('Requires scope services:write') and operational guidance ('Pass confirm:true only after the user has explicitly approved'). It also explains that id and ruleId come from get_firewall, aiding source selection. However, it does not explicitly state when not to use this tool versus alternatives like add_firewall_rule, though the name makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_load_balancerADestructive
Delete a load balancer. Requires scope services:write. IRREVERSIBLE: cascade-deletes the listener/pool/members/health-monitor and releases the VIP floating IP. Refused server-side for k8s-managed load balancers (manage those via the Kubernetes Service instead). Pass confirm:true only after the user has explicitly approved. id comes from list_load_balancers.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Load balancer id from list_load_balancers. | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description details the irreversible cascade deletion and VIP release, explains the authorization requirement, and describes the refusal behavior for k8s-managed resources. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four efficient sentences, front-loaded with purpose, followed by scope, effects, exceptions, and usage instructions. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers all essential aspects: purpose, side effects, authorization, constraints, and parameter usage (id source, confirm requirement). It provides sufficient context for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for both parameters. The description reiterates that 'id comes from list_load_balancers' and the importance of confirm, but adds no significant new meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Delete a load balancer' and lists the cascade effects (listener/pool/members/health-monitor, VIP floating IP), distinguishing it from creation or listing tools. It also notes the exception for k8s-managed load balancers, further clarifying its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly requires scope 'services:write', advises to pass confirm:true only after user approval, and warns that it is refused for k8s-managed load balancers (directing to Kubernetes Service instead). This provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_networkADestructive
Delete a private network (VPC). Requires scope services:write. IRREVERSIBLE, and refused server-side for the default VPC or one that still has VMs attached. Pass confirm:true only after the user has explicitly approved. id comes from list_networks.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | VPC id from list_networks. | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant context beyond the destructiveHint annotation: explains irreversibility, server-side refusal conditions, and scope requirement. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact yet complete: three sentences covering action, prerequisites, constraints, and user approval. Front-loaded with core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Sufficient for a deletion tool: covers what, when to use, safety, and failure scenarios. Missing return value but not critical given destructive nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and description adds meaning: id comes from list_networks, confirm must be explicitly approved. This reinforces schema descriptions effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Delete a private network (VPC)', clearly indicating the action and resource. It distinguishes from sibling tools like create_network and attach_network_vm.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: requires scope services:write, irreversible, refused for default VPC or with VMs attached, and instructs to pass confirm:true only after user approval. No direct alternative mentioned but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_proxy_requestADestructive
Delete a proxy-request from a GB Residential bucket. Requires scope services:write (proxy writes share the same scope as VM/k8s mutations — there is no proxy-specific scope). GB Residential only. IRREVERSIBLE: the allocated endpoints stop working immediately. Pass confirm:true only after the user has explicitly approved. id comes from list_proxies; reqId comes from list_proxy_requests.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | GB Residential proxy service id from list_proxies. | |
| reqId | Yes | Proxy-request id from list_proxy_requests. | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds beyond destructiveHint annotation by stating IRREVERSIBLE and immediate endpoint termination. Also explains confirm parameter behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence serves a purpose: action, scope, irreversibility, parameter guidance. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all critical context: scope, irreversibility, prerequisites, and confirm usage. Complete for a destructive tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds value beyond schema by specifying data sources (list_proxies, list_proxy_requests) and confirm semantics (omit/false refuses).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it deletes a proxy-request from a GB Residential bucket, specifies required scope, and distinguishes from other proxy-request operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: scope services:write, GB Residential only, and prerequisites for id and reqId. Does not explicitly contrast with other deletion tools, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_volumeADestructive
Delete a block storage volume permanently. Requires scope services:write. IRREVERSIBLE: the volume and its data are gone for good. Pass confirm:true only after the user has explicitly approved. id comes from list_volumes.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Volume id from list_volumes. | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the destructiveHint annotation: it labels the operation as 'IRREVERSIBLE: the volume and its data are gone for good,' specifies the auth scope, and explains the confirm parameter's behavior (omit/false results in refusal). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with three brief sentences that front-load the purpose and key behavioral points. Every sentence adds essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema), the description covers purpose, permissions, irreversibility, and parameter usage. It could mention billing impact or recovery options, but overall it is sufficiently complete for a delete operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and parameter descriptions are already detailed. The description for id ('id comes from list_volumes') duplicates the schema, and the confirm behavior is also echoed. Minimal additional value over schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete a block storage volume permanently,' specifying the action (delete) and resource (block storage volume). It distinguishes from sibling tools like detach_volume or delete_network by naming the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the permission requirement ('Requires scope services:write') and the confirm parameter condition, but does not explicitly compare to alternatives like detach_volume or reinstall. It lacks when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deploy_serviceA
Deploy (order + provision) a new service and CHARGE the account. Requires scope services:write. Polymorphic: category selects the product family (cloud-vm | cloud-k8s | cloud-volume | cloud-loadbalancer | cloud-network | server | hosting | proxy | domain); category may be omitted and is then inferred from the catalog product. productId (alias plan) is the catalog SKU; the other fields depend on the family — discover them with get_product_details, list_catalog_listings, list_kubernetes_versions, list_regions, list_images. SPENDS MONEY: this places a real order and provisions billable infrastructure. You MUST pass confirm:true, and only after the user has approved the plan and its cost (preview cost with get_product_details).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Alias for hostname. | |
| plan | No | Alias for productId. | |
| port | No | ||
| tags | No | ||
| image | No | Alias for imageId. | |
| pools | No | ||
| vpcId | No | ||
| addons | No | ||
| region | No | Region code (see list_regions). | |
| sizeGb | No | ||
| sshKey | No | Alias for sshKeyId. | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. | |
| imageId | No | ||
| payWith | No | ||
| category | No | Product family; inferred from the SKU if omitted. | |
| hostname | No | ||
| sshKeyId | No | ||
| productId | No | Catalog SKU / backend product id. | |
| workerMax | No | ||
| workerMin | No | ||
| k8sVersion | No | ||
| healthCheck | No | ||
| machineType | No | ||
| billingCycle | No | ||
| customFields | No | ||
| rootPassword | No | ||
| sshPublicKey | No | cloud-vm: raw public key injected via cloud-init. | |
| configOptions | No | ||
| memberServerIds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Clearly warns that it spends money and provisions billable infrastructure. States that confirm:true is required for execution, otherwise no API call is made. Irreversibility implied. No annotations exist, so description carries full burden and does so well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is brief yet comprehensive: main purpose first, then behavioral warnings, then parameter guidance. Every sentence adds value. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (29 params, polymorphic, billing), the description covers the essential workflow, prerequisites, cost implications, and parameter discovery. No output schema, so return value explanation is omitted appropriately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 31% schema description coverage, the description adds significant value by explaining polymorphic behavior (category selects family), aliases (name, plan, image, sshKey), and directing users to discover family-specific fields via other tools. However, it does not describe all 29 parameters individually.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it deploys a new service and charges the account. Distinguished from sibling tools like stop, destroy, etc. by focusing on ordering/provisioning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly requires scope services:write and user approval before passing confirm:true. Recommends previewing cost with get_product_details and discovering parameters with helper tools. Provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
destroy_serviceADestructive
Permanently destroy a service and release its resources. Requires scope services:write. IRREVERSIBLE: the service and its data are gone for good. You MUST pass confirm:true, and only after the user has explicitly approved. service_id comes from list_services.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. | |
| service_id | Yes | Service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond the destructiveHint annotation, stating 'IRREVERSIBLE: the service and its data are gone for good' and that the operation spends from the account balance. This goes beyond what the annotation alone conveys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: two short sentences and a numbered instruction. The critical information (irreversibility, confirm requirement, service_id source) is front-loaded with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema, no nested objects), the description covers all necessary aspects: what it does, prerequisites, and behavioral implications. It fully equips the agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the description still adds value by clarifying that confirm must only be true after user approval and that service_id comes from list_services. This enriches the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'Permanently destroy a service and release its resources.' It uses strong, specific language that distinguishes this destructive tool from sibling tools like get_service, stop_service, or reboot_service.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states prerequisites: 'You MUST pass confirm:true, and only after the user has explicitly approved.' and 'service_id comes from list_services.' This provides clear context for when and how to use the tool, though it does not explicitly mention when not to use it or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detach_firewallA
Detach a cloud firewall from a cloud VM. Requires scope services:write. Plain write — not gated. id comes from list_firewalls; serverId is the Nova server id to detach from.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Firewall id from list_firewalls. | |
| serverId | Yes | Nova server id to detach from. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description discloses it's a write operation ('Plain write — not gated') and scope requirement, but does not mention reversibility, side effects, or behavior on duplicate calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences. First states purpose, second adds prerequisites and parameter sources. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, permissions, and parameter sources. For a simple two-parameter write operation, this is adequate. No output schema, but return value is not described. Could mention if it returns the firewall or just success.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% but description adds value by specifying that 'id comes from list_firewalls' and clarifying 'serverId is the Nova server id to detach from', which goes beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Detach a cloud firewall from a cloud VM' with specific verb and resource. Distinguishes from sibling tools like attach_firewall and delete_firewall.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit context: requires scope 'services:write', parameter sources (id from list_firewalls, serverId is Nova server id). No explicit when-not or alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detach_reserved_ipA
Detach a reserved public IP from its VM. The IP stays allocated and billed until you release it with release_reserved_ip. Requires scope services:write. Plain write — not gated. id comes from list_reserved_ips.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Reserved IP id from list_reserved_ips. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses key behavioral details: the IP remains allocated and billed after detach, and the permission requirement for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, all relevant: first states the action, second explains lifecycle, third gives permission and source of id. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description fully covers effect, lifecycle, permissions, and parameter source. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the 'id' parameter as 'Reserved IP id from list_reserved_ips.' The description adds minimal extra value by restating 'id comes from list_reserved_ips.' With 100% schema coverage, baseline is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Detach a reserved public IP from its VM' and distinguishes from sibling tools like release_reserved_ip and attach_reserved_ip by mentioning the IP stays allocated and can be released later.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states the required scope ('services:write') and notes that it is a plain write not gated, giving clear guidance on when to use this tool and when to use release_reserved_ip instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detach_volumeA
Detach a block storage volume from a cloud VM. Requires scope services:write. Plain write — not gated. id (the volume) comes from list_volumes; serverId is the Nova server id to detach from.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Volume id from list_volumes. | |
| serverId | Yes | Nova server id to detach from. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must self-disclose behavior. It correctly identifies it as a write operation and mentions authorization, but does not detail side effects like whether the volume persists independently after detachment or if any data loss occurs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, front-loading the action and providing necessary detail without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given only two required parameters and no output schema, the description covers the essential aspects: the operation, authorization, and parameter sources. It is sufficient for an agent to correctly select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes both parameters (volume id and server id) but the description adds value by specifying that the volume id comes from list_volumes and that serverId is a Nova server id, which provides context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Detach) and the resource (block storage volume from a cloud VM), and distinguishes it from sibling tools like attach_volume, create_volume, and delete_volume.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies the required scope (services:write) and indicates it's a 'plain write' operation. It also mentions that the volume id comes from list_volumes, providing context for when to use this tool. However, it does not explicitly state when not to use it or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_cluster_kubeconfigA
Re-download a LONG-LIVED kubeconfig credential for a managed Kubernetes cluster by its credential id — a revocable, per-credential ServiceAccount kubeconfig for standing automation that must keep working (unlike the short-lived admin config from get_cluster_kubeconfig). Works for ACTIVE credentials only; revoked or expired credentials return an error. SECURITY: the result is a LIVE CREDENTIAL — a kubeconfig YAML embedding a bearer token. Treat it as a secret: do NOT echo it back to the user or repeat its contents unless the user explicitly asks to see it; pass it straight to the tool that consumes it. Returns the raw kubeconfig YAML as a text block. service_id and credential_id both come from list_cluster_kubeconfigs.
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | Managed-Kubernetes service ID from list_services (a cloud-k8s service). | |
| credential_id | Yes | Long-lived credential id from list_cluster_kubeconfigs (an active credential). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the result is a live credential with a bearer token, gives security instructions, and mentions revocability. It does not explicitly cover auth or rate limits, but the security context is strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action, then adds conditional, security, and return info in logical order. Slightly verbose but each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains the return type (raw kubeconfig YAML). It also covers prerequisites, security handling, and error conditions. Fully complete for a 2-parameter read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the parameter provenance (from list_cluster_kubeconfigs) and the active-credential constraint, which is not in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Re-download') and resource ('LONG-LIVED kubeconfig credential'), and explicitly distinguishes from the sibling tool get_cluster_kubeconfig by contrasting long-lived vs short-lived credentials.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states when to use this tool ('for standing automation that must keep working'), when not to use ('revoked or expired credentials return an error'), and explicitly names the data source for parameters (list_cluster_kubeconfigs).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enable_cluster_haA
Enable the HIGH-AVAILABILITY control plane on a managed Kubernetes cluster (multi-zone API server / etcd). Requires scope services:write. SPENDS MONEY: HA adds ~+EUR 30/mo to the cluster. ADD-ONLY and irreversible — Gardener does not allow turning HA back off; idempotent if the cluster is already HA. Pass confirm:true only after the user has approved the added cost. service_id from list_services.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. | |
| service_id | Yes | Managed-Kubernetes service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses all key behaviors: money spent, irreversibility, idempotence, required scope, and confirm requirement. No annotations provided, so description fully carries the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences plus a phrase, no fluff. Information is front-loaded with purpose, then requirements and caveats. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given tool complexity and no output schema, description covers all necessary aspects: action, prerequisites, cost, irreversibility, and confirmation needed. Complete for agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% but description adds value: explains confirm is needed only after user approval and that service_id comes from list_services. Goes beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it enables HA control plane on a managed Kubernetes cluster, with specific effect (multi-zone API server/etcd). Distinguishes from siblings by being a unique enabling action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says it's add-only, irreversible, and requires user approval due to cost. Specifies when to use (after user approves) and where to get service_id. Provides idempotency info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_accountA
Get the authenticated user's profile: email, name, country, billing currency, account creation date. Use for "what account am I on?" or to confirm identity before suggesting cross-account actions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It discloses the returned fields, which is good, but does not mention that the tool requires authentication, is read-only, or has no side effects. The term 'authenticated user' implies auth, but it's not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two short, focused sentences. The first sentence enumerates the returned fields, and the second provides usage guidance. No wasted words; it is efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with no parameters and no output schema, the description covers the essential aspects: what it returns and when to use it. It does not mention error cases or authentication details, but given the low complexity, it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and the schema coverage is 100% (empty). The description adds value by listing the fields returned, giving the agent context about what data to expect. This goes beyond the schema and justifies a score above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the authenticated user's profile with specific fields (email, name, country, billing currency, account creation date). It also gives a concrete use case ('what account am I on?'), distinguishing it from sibling tools like get_billing_state or get_account_limits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use it to confirm identity before cross-account actions or to answer 'what account am I on?'. This provides clear context. It doesn't explicitly state when not to use it, but the use case is specific enough to avoid misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_activityA
Get the account audit trail (newest first): sign-ins, 2FA changes, service actions, and billing operations. Page with limit (1–200, default 50) and before (a cursor from a prior page). Use for "show my recent account activity" or a security review.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max entries to return (1–200, default 50). | |
| before | No | Pagination cursor — return entries older than this (from a previous page). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses pagination behavior, default ordering, and the types of events included. It does not mention authorization or rate limits, but for a read-only audit trail tool, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence covers purpose and content, the second covers pagination and usage. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description provides adequate context: it lists event types, ordering, and pagination. It could mention what fields are returned, but for a simple list tool, the description is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both parameters have descriptions in the schema). The tool description rephrases the same information without adding new meaning. Per the scoring rule, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 ('account audit trail'), lists specific event types (sign-ins, 2FA changes, etc.), and specifies ordering (newest first). This clearly distinguishes it from sibling tools like get_bonus_ledger or get_billing_alert.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Use for "show my recent account activity" or a security review.' It does not mention when not to use or compare to alternatives, but the provided use cases are clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_limitsA
Get account resource limits and current usage (servers / vCPUs / snapshots / IPs / volumes / DNS zones / etc). Use before recommending a deploy to make sure the user has headroom.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as whether the operation is read-only, requires authentication, or has rate limits. For a tool with no annotations, the description should fill this gap; it only states what it retrieves without further safety or side-effect information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two succinct sentences: first clearly defines purpose, second provides usage context. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (no parameters, no output schema). The description lists resource categories and gives a usage scenario. It would benefit from noting that it returns both limits and current usage values, but overall is sufficiently complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters (100% coverage via empty schema). With no params, the baseline is 4. The description does not need to add param details, and it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states 'Get account resource limits and current usage', with a specific verb and resource type. It lists the categories (servers, vCPUs, etc.), distinguishing it from sibling tools like get_account which returns account metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance: 'Use before recommending a deploy to make sure the user has headroom.' Provides clear context for when to use, though does not mention when not to use or name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_affiliateA
Get the authenticated account's affiliate status and stats: referral link, visitors / signups / conversion rate, commissions summary (pending maturation / available balance / total withdrawn), payout minimum, and the per-referral list. Returns {active:false} when the affiliate program is not enabled. Use for "how are my referrals doing?".
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It discloses a key behavioral trait: returns {active:false} when the affiliate program is not enabled. It also describes the return structure comprehensively. Could mention authentication or rate limits, but for a read-only tool without parameters, this is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: starts with main purpose, lists output fields, handles the edge case, and ends with a use case. Every sentence adds value without redundancy. It is front-loaded with the essential operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately covers the return values by listing the main fields (referral link, stats, commissions, etc.) and the failure case. It is mostly complete for an AI agent to understand what to expect, though exact JSON key names or types are inferred rather than specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so schema coverage is 100%. The description implicitly confirms no parameters by focusing entirely on output. It adds value by explaining what the tool returns, which is appropriate given zero parameters. Baseline is 4 for no-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool's purpose: 'Get the authenticated account's affiliate status and stats.' It specifies the exact data returned (referral link, visitors/signups/conversion rate, commissions summary, etc.) and distinguishes itself from siblings like create_affiliate_link by focusing on retrieval of stats rather than creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a direct use case: 'Use for "how are my referrals doing?"' This gives clear context for when to use the tool. However, it does not explicitly list alternatives or conditions when not to use it, though the sibling list contains no other affiliate stats tool, so the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_billing_alertA
Get the spending-alert state: the configured threshold, month-to-date spend, and whether the alert has triggered. Use for "am I close to my spending alert?".
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the read behavior (getting state) but does not explicitly state it is read-only or mention side effects, authentication needs, or error conditions. While 'get' implies safe reading, explicit disclosure would improve safety understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, and no extraneous text. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description sufficiently lists the return fields. There are no nested objects, pagination, or other complexities. The description is complete for a simple getter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are 0 parameters, so the baseline is 4. The description adds value by explaining what the tool returns (threshold, spend, triggered status), which goes beyond just the tool name. No parameter information is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves spending-alert state including threshold, month-to-date spend, and triggered status. It uses a specific verb 'Get' and resource 'spending-alert state'. The sibling list shows no other getter for billing alerts, so it's well-distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides a use case: 'Use for "am I close to my spending alert?"' This gives clear guidance on when to invoke the tool. However, it does not mention when not to use it or alternatives, but given the simplicity, this is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_billing_campaignA
Get the currently-active credit (deposit-match) campaign in public shape — the "double your credits" promo — or {campaign:null} when none is running. Check before suggesting a top-up so the user can catch a bonus match.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears the full burden of behavioral disclosure. It explains the return value (active campaign or null) and implies no side effects, but doesn't discuss authentication requirements or potential rate limits. While adequate, it could be more explicit about being read-only (though inferred).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the purpose, and every sentence adds value. No redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description adequately covers what it does, its return type, and a primary use case. It doesn't detail the campaign structure or auth, but for a simple read tool this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and the schema coverage is 100% (no parameters to cover). The description adds no parameter details, which is acceptable as there are none. Baseline of 4 applies for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets the currently-active credit/deposit-match campaign and specifies it returns {campaign: null} when none is running. It distinguishes itself from sibling tools like get_bonus_ledger or get_credit_balance by focusing specifically on the promotional campaign.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises checking before suggesting a top-up to catch a bonus match, providing a clear use case. It doesn't explicitly exclude other scenarios or mention alternatives, but the context is adequately clear for this simple read operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_billing_stateA
Get the cloud auto-suspend state for the account — normal / grace-period / suspended — that drives the dashboard billing banner. Use to check whether a low balance is putting services at risk of suspension.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It clearly indicates a read-only query returning state, though it omits details like error handling or rate limits. The simplicity of the tool mitigates the gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundancy. First sentence defines purpose and output, second sentence provides usage advice. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description fully explains what is returned and the purpose. The context of low balance risk completes the picture. No missing elements for a simple no-param getter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (0-param tool), so baseline is 4. The description adds no parameter info, but nothing is needed. It adds value by explaining the output values and purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the cloud auto-suspend state (normal/grace-period/suspended) and connects it to the billing banner, distinguishing it from sibling tools like get_billing_alert which handle alert thresholds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use it ('check whether a low balance is putting services at risk of suspension'), but does not contrast with alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bonus_balanceA
Get the account's promo (bonus) balance in cents (EUR). This is a SEPARATE non-WHMCS balance that depletes first, as a taxed discount line, at consumption. Pair with get_credit_balance for the full "how much can I spend?" picture.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description adds behavioral context: the balance is a separate promo balance that depletes first as a taxed discount line. This goes beyond a simple 'get balance' and informs the agent about the balance's nature and priority.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loading the purpose and then adding behavioral detail. Every sentence is informative without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description sufficiently explains the return value and how it integrates with get_credit_balance. It does not cover error states or availability, but for a simple read tool this is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. The description adds value by explaining the return value (balance in cents EUR) and the balance's role, which is helpful beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the account's promo balance in cents EUR, and distinguishes it as a separate non-WHMCS balance. It also differentiates from sibling tool get_credit_balance by explaining how this balance depletes first.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises pairing with get_credit_balance for a complete spending picture, providing usage context. However, it does not give strict when-not-to-use guidance or alternative tools for other scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bonus_ledgerA
List all bonus-credit ledger entries (newest first): campaign grants (positive) and promo consumption (negative). Use to explain "where did my bonus go?" — distinct from get_credit_ledger, which tracks real (WHMCS) credit.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions ordering and entry types but does not describe whether the operation is read-only, requires authentication, returns paginated results, or what fields are included. While adequate for a simple list, it leaves some behavior implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the main purpose, and adds just enough context to differentiate from siblings. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has zero parameters and no output schema, the description sufficiently covers what the tool does and why one would use it. It answers the likely user question. However, it omits any mention of potential filtering or the exact return format, which could be useful but is not critical for such a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema coverage is 100%. The description does not need to add parameter details. Per guidelines, 0 parameters yields a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists bonus-credit ledger entries, specifies ordering (newest first), and distinguishes between positive (campaign grants) and negative (promo consumption) entries. It also explicitly differentiates from the sibling tool get_credit_ledger, which tracks real credits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case ('explain where did my bonus go?') and explicitly names the alternative get_credit_ledger for real credit tracking, guiding when to use which. However, it does not explicitly list when not to use the tool or conditions that might make get_bonus_balance more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_catalog_planA
Get full details for a single catalog product including all plans (sizes), their specs (vCPU, RAM, disk, bandwidth), pricing for every supported billing cycle, and supported billing tracks. Use before generating a Terraform plan or before recommending a specific SKU.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | Yes | Product SKU from list_catalog_products (e.g. "whmcs.kvm-servers-plus-vps"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It does not mention that the tool is read-only, requires authentication, or handles errors (e.g., invalid SKU). The description implies a safe query but lacks explicit transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first explains what the tool returns, second tells when to use it. No fluff, every sentence earns its place. Ideal length for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description enumerates the return contents (plans, specs, pricing, billing tracks) and usage context. It lacks details on error handling or output structure, but for a one-parameter tool with no output schema, this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single 'sku' parameter 100%, and the description adds value by specifying the source ('from list_catalog_products') and providing an example. This goes beyond the schema's description, earning a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool retrieves 'full details for a single catalog product including all plans, specs, pricing, and billing tracks'. It clearly distinguishes from sibling tools like 'list_catalog_products' which lists SKUs, and 'get_product_details' which may be less specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using the tool 'before generating a Terraform plan or before recommending a specific SKU', providing clear context. It lacks explicit when-not-to-use or alternative tool mentions, but the guidance is sufficient for a focused tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cluster_kubeconfigA
Fetch a SHORT-LIVED admin kubeconfig for a managed Kubernetes cluster — a freshly-minted cluster-admin credential that expires within hours and leaves NO standing credential behind. Prefer this for one-off, interactive kubectl access. For standing automation that must keep working, use a long-lived credential instead (list_cluster_kubeconfigs + download_cluster_kubeconfig). SECURITY: the result is a LIVE CREDENTIAL — a kubeconfig YAML embedding a bearer token that grants cluster-admin. Treat it as a secret: do NOT echo it back to the user or repeat its contents unless the user explicitly asks to see it; pass it straight to the tool that consumes it. Returns the raw kubeconfig YAML as a text block. The service_id comes from list_services (a cloud-k8s service).
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | Managed-Kubernetes service ID from list_services (a cloud-k8s service). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully covers behavioral traits: credential expiration, no standing credential, security warning about live credential (bearer token, cluster-admin), and instruction to treat as secret and not echo back. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but well-structured: front-loaded with purpose, then usage guidance, then security note, then output format, then parameter source. Every sentence adds necessary value, though it could be slightly shortened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a security-sensitive tool with one parameter, no output schema, and no annotations, the description is remarkably complete: covers purpose, usage, security behavior, return type, and parameter source. The agent has all needed context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema coverage is 100% for the single parameter. The description adds the same context as the schema (service_id from list_services), providing no additional semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Fetch' and resource 'SHORT-LIVED admin kubeconfig', and contrasts with sibling tools (list_cluster_kubeconfigs, download_cluster_kubeconfig) by emphasizing the short-lived nature, making it distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (one-off, interactive kubectl access) and when not to (standing automation), and provides alternative sibling tools (list_cluster_kubeconfigs + download_cluster_kubeconfig).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cluster_scaleA
Get the current scale of a managed Kubernetes cluster: its worker node pools plus any add-ons (autoscaler bounds, HA control plane, etc.). Use to answer "how big is my cluster right now?" or to read current sizing before planning a resize. Read-only; changing the scale is a write and is not exposed as an MCP tool. The service_id comes from list_services (a cloud-k8s service).
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | Managed-Kubernetes service ID from list_services (a cloud-k8s service). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It clearly states 'Read-only' and lists what information is retrieved (worker node pools, add-ons). While it could detail the return format, it sufficiently discloses the operation's nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, front-loading the core purpose, then providing usage context and read-only clarification. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, no annotations), the description adequately covers purpose, usage, parameter sourcing, and read-only nature. It could mention the specific add-ons or response structure, but it's sufficient for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter 'service_id'. The description adds that it comes from 'list_services', but the schema already provides a similar description. No additional parameter meaning beyond the schema is offered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'gets the current scale of a managed Kubernetes cluster', specifying resources like worker node pools and add-ons. It distinguishes itself from the sibling 'set_cluster_scale' by emphasizing read-only nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use it ('how big is my cluster right now?', 'before planning a resize') and clarifies that changing scale is not exposed as an MCP tool, implying use of 'set_cluster_scale' sibling. It also guides on obtaining the required 'service_id' from 'list_services'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_credit_balanceA
Get the current account credit balance (Pattern A v2 prepaid credit). Use for "how much do I have left?", or to check before suggesting actions that would consume credit (cloud-compute hourly billing).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but the description implies a read-only operation ('Get') with no side effects. It could mention rate limits or auth requirements, but the behavior is clear given its simplicity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no wasted words. First sentence states purpose, second adds contextual guidance. Perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, no annotations, and no output schema, the description sufficiently explains what the tool does and when to use it. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100% from emptiness. The description adds meaning by clarifying the credit type, which is not evident from the schema alone, justifying baseline 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'current account credit balance', and specifies 'Pattern A v2 prepaid credit' to distinguish from sibling tools like get_credit_ledger or get_bonus_balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides two use cases: checking how much credit is left and checking before suggesting credit-consuming actions, which guides appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_credit_ledgerA
List credit ledger entries (top-ups, voucher redemptions, hourly metering debits, refunds) for the authenticated account. Use to explain "where did my credit go?" or to reconcile a balance.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It correctly indicates a read-only list operation without side effects. It does not mention pagination or sorting, but given no parameters, the behavior is straightforward and transparent enough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The first sentence immediately states the action and scope; the second provides usage context. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no parameters and no output schema, the description covers the purpose, contents, and use cases. It could mention if there are any default limits or ordering, but completeness is high given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and schema coverage is 100%. The description adds value by explaining the contents of the ledger, but parameter semantics are not applicable. Baseline of 4 is appropriate for a no-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists credit ledger entries and enumerates entry types (top-ups, voucher redemptions, etc.). It also provides a use case, effectively distinguishing it from related tools like get_credit_balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use it: to explain 'where did my credit go?' or to reconcile a balance. This gives clear context and implies alternatives (e.g., get_credit_balance for a simple balance check).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domainA
Get one domain: nameservers, transfer lock, WHOIS privacy, auto-renew, expiry. Use after list_domains for management detail.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Resource id from the matching list_* tool. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the returned fields and implies a read operation, offering good 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient, front-loaded sentences with no wasted words: first explains what the tool does, second provides usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get tool with one parameter, the description fully covers purpose, output, and usage context, making it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and description adds context by specifying that the 'id' is from a matching list_* tool, enhancing understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Get' and resource 'one domain', lists specific fields (nameservers, transfer lock, etc.), and distinguishes from more specific siblings like get_domain_nameservers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use after list_domains for management detail', providing clear context for when to use this tool, though does not list specific alternatives to avoid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domain_contactsA
Get the registrant WHOIS contact on an owned domain (registrar-dependent). Use to review who the domain is registered to. Read-only; updating the contact is a write and is not exposed as an MCP tool yet. The id comes from list_domains.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Domain id from list_domains. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Declares read-only nature and registrar-dependence, but without annotations, the description should also disclose return format, errors (e.g., domain not found), or auth requirements. It does not, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with main action. Every sentence adds value: what it does, when to use, source of id. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given tool simplicity (1 param, no output schema, no nested objects), description covers main aspects. However, lacking description of return value (e.g., contact fields) slightly reduces completeness for an agent without output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema provides the 'id' parameter description. Description adds value by specifying the source ('from list_domains'), which aids agent in correctly obtaining the id. No further syntax/format details needed for single param.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb (Get) and resource (registrant WHOIS contact on owned domain), with context 'registrar-dependent' and purpose 'review who domain is registered to.' While it doesn't explicitly distinguish from sibling domain tools like get_domain or set_domain_contacts, the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('review who the domain is registered to') and when not to ('updating is write not exposed as tool yet'). Also provides prerequisite ('id comes from list_domains'), giving complete usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domain_dnsA
Get the DNS host records on an owned domain — its A / CNAME / MX / TXT / etc entries (registrar-dependent; returns a not-implemented error when the registrar exposes no DNS API). Use to read the domain's current records. Read-only; replacing the records is a write and is not exposed as an MCP tool yet. The id comes from list_domains.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Domain id from list_domains. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully handles behavioral disclosure. It notes the tool is read-only, registrar-dependent, and may return a 'not-implemented error' when the registrar lacks a DNS API. This transparency about error conditions and constraints is comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, at 54 words, and front-loads the primary action and scope. Every sentence adds value: the verb 'Get', the resource 'DNS host records', limitations, and parameter source.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and no output schema, the description covers all necessary context: what it does, its limitations (registrar dependency), its read-only nature, and the parameter's origin. It is fully complete for an AI agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'id' has a schema description (Domain id from list_domains) and is reinforced by the description. Since schema coverage is 100%, additional semantic value is minimal, but the connection to list_domains is useful context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves DNS host records (A, CNAME, MX, TXT) for an owned domain. It distinguishes itself from write operations by explicitly noting that replacing records is not exposed as an MCP tool, and it differentiates from similar read tools like get_domain by focusing on DNS entries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'Use to read the domain's current records' and warns that writing is not available. It also specifies that the required 'id' comes from list_domains, setting clear context for when to use this tool versus others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domain_managementA
Get the combined management snapshot for an owned domain in one call: status, expiry, auto-renew, WHOIS ID protection, nameservers, and transfer lock (per-registrar fields are null when the registrar exposes no API for them). Use as the one-stop "how is this domain configured?" read. The id comes from list_domains.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Domain id from list_domains. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It mentions that per-registrar fields are null when no API is exposed, which adds transparency. However, it does not disclose auth requirements, rate limits, or other side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the core purpose and listing key fields. Every sentence adds value, and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input (one parameter) and no output schema, the description is fairly complete. It specifies the included fields and clarifies null behavior. A minor gap is the lack of return type indication, but it's sufficient for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description simply repeats the schema's parameter description ('id comes from list_domains'), adding no extra semantic value beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets a 'combined management snapshot' for an owned domain, listing specific fields (status, expiry, etc.). It uses a specific verb ('get') and resource ('domain management snapshot'), distinguishing it from sibling tools like get_domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly suggests using it as a 'one-stop read' for domain configuration and notes the id source ('from list_domains'). However, it does not mention when not to use it or provide explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domain_nameserversA
Get the nameservers currently set on an owned domain — where its DNS is delegated. Use to see the domain's delegation before recommending a change. Read-only; replacing the nameservers is a write and is not exposed as an MCP tool yet. The id comes from list_domains.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Domain id from list_domains. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses that the tool is read-only, that replacing nameservers is a write operation not exposed, and that the domain ID is sourced from list_domains. This provides clear behavioral context without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, front-loaded with the core purpose, and every sentence adds value. No redundant or missing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is largely complete for a simple read tool, but it does not specify the return format (e.g., list of strings). However, the purpose is clear enough without output schema. Minor gap in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter already described. The description's mention that 'The id comes from list_domains' aligns with the schema description, adding no new semantic meaning beyond confirming the source.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies 'Get the nameservers currently set on an owned domain' with a clear verb and resource. It distinguishes from sibling tools like set_domain_nameservers by noting that replacing is a separate write operation not exposed as an MCP tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Use to see the domain's delegation before recommending a change.' Provides context and a prerequisite: 'The id comes from list_domains.' Implicitly advises when not to use (for writing changes) by noting the write tool is unavailable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_firewallA
Get one firewall (security group) including its full inbound/outbound rule set and which VMs it is attached to. Use after list_firewalls to inspect a firewall's rules.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Resource id from the matching list_* tool. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description fully discloses the return content (rules and attachments) and implies a read-only nature. No contradictions or hidden behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. First sentence describes purpose, second provides usage guidance. Efficiently front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one parameter and no output schema, the description adequately covers what the tool returns (rules, attachments) and usage order. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'id' is described in the schema ('Resource id from the matching list_* tool.') and the description does not add additional semantic meaning beyond what the schema provides. Schema coverage is 100%, so baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'get', resource 'firewall (security group)', and explicitly lists what is included: inbound/outbound rule set and attached VMs. It is distinct from sibling tools like list_firewalls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly recommends using after list_firewalls to inspect a firewall's rules, providing clear sequential context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invoiceA
Get full details for a single invoice: every line item, taxes, payment method used, payment timestamp. Use after list_invoices when more detail is needed.
| Name | Required | Description | Default |
|---|---|---|---|
| invoice_id | Yes | Invoice ID from list_invoices. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description must carry full burden. It describes what is returned but omits potential side effects, auth requirements, or error conditions. Adequate for a simple read operation but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no redundancy. Every word contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get tool with one parameter and no output schema, the description covers purpose, usage context, and parameter source. Lacks mention of return format or potential errors, but adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a description for invoice_id. The tool description adds no additional parameter meaning beyond what the schema already provides, warranting a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves full invoice details (line items, taxes, payment method, timestamp) and explicitly mentions use after list_invoices, distinguishing its purpose from the list sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises 'Use after list_invoices when more detail is needed', providing a clear usage context and differentiating from a sibling tool. Could be more explicit about when not to use, but the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invoice_pay_previewA
Preview what paying an invoice from the account balance would consume — promo bonus first, then real credit, then any remaining shortfall. Read-only; consumes nothing. Pass an invoice id from list_invoices. Use before discussing a "pay from balance" action.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Invoice id from list_invoices. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description bears full responsibility. It declares 'Read-only; consumes nothing' and explains the consumption priority. This covers the key behavioral trait, though it could mention edge cases like insufficient balance or already-paid invoices.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: action description, read-only note, and usage instructions. Every sentence adds value without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks details on the return value structure (e.g., breakdown fields). Given no output schema, the agent might need more context on what the preview outputs. However, for a simple preview tool, the current info is sufficient but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'id' parameter, which has a clear description. The description repeats this guidance but does not add extra semantic meaning beyond what the schema provides, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool previews paying an invoice from account balance, detailing consumption order (promo bonus, real credit, shortfall). It distinguishes itself from sibling tools like get_invoice or get_credit_balance by focusing on a specific payment preview scenario.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit instructions: 'Pass an invoice id from list_invoices. Use before discussing a "pay from balance" action.' This provides clear context for when to use the tool and implies not to use it for actual payment, as it is read-only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_load_balancerA
Get one load balancer with its members (backend VMs and ports). Use after list_load_balancers to inspect membership.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Resource id from the matching list_* tool. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It describes the tool as read-only ('get') and mentions the output includes members, but does not discuss authorization needs, error handling, or side effects. A score of 3 reflects adequate but incomplete disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences: one stating the core functionality and another providing usage context. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get tool, the description covers the key aspects: what it retrieves (load balancer with members) and when to use it. No output schema exists, so it might benefit from detailing the output structure, but the description is sufficient in context of its simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with the parameter 'id' described as 'Resource id from the matching list_* tool.' The tool description reinforces this by referencing list_load_balancers, adding slight clarity. Baseline 3 is appropriate as the description adds marginal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get one load balancer with its members (backend VMs and ports).' It specifies the verb 'get', the resource 'one load balancer', and the scope 'with its members', distinguishing it from sibling tools like list_load_balancers or list_load_balancer_members.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use after list_load_balancers to inspect membership.' This provides clear context on when to use the tool, though it could explicitly state when not to use it, such as for listing multiple load balancers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_networkA
Get one private network (VPC): id, name, CIDR, status, whether it is the default, and its attached VMs. Use after list_networks to inspect a single network.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Resource id from the matching list_* tool. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses returned fields and implies read-only operation ('get one'). Does not explicitly mention prerequisites or side effects, but adequate for a simple get tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. First sentence states purpose and return fields, second provides usage context. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple tool with one parameter and no output schema, description covers what is returned and when to use. Could mention that network must exist, but schema implies id comes from list_networks.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with description for the single parameter 'id' as 'Resource id from the matching list_* tool.' Description does not add extra parameter info, but schema already provides needed context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it retrieves one private network (VPC) and lists the specific fields returned (id, name, CIDR, status, default flag, attached VMs). Distinguishes from sibling tools like list_networks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use after list_networks to inspect a single network,' providing clear context for when to use it. Does not explicitly state when not to use, but the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_orderA
Get one order by id: its line items (product, plan, cycle, price), status, paymentStatus, and the invoice it belongs to. Use after list_orders to see exactly what a purchase contained. The id comes from list_orders.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Resource id from the matching list_* tool. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It describes return fields but does not explicitly state read-only behavior or idempotency. The verb 'get' implies reading, but additional context about side effects or safety would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted words. Purpose is front-loaded, followed by usage guidance and parameter source. Extremely concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with 1 parameter and no output schema, the description covers core functionality and expected fields. It omits error handling or response format, but is largely complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and parameter description says 'Resource id from the matching list_* tool.' The description reinforces this by specifying 'list_orders' specifically, adding value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get one order by id' and lists specific return fields (line items, status, paymentStatus, invoice). It distinguishes from siblings by specifying it is used after list_orders and that the id comes from that tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use after list_orders' and 'The id comes from list_orders', providing clear context. Does not mention error handling or when not to use, but the guidance is strong for a simple read tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_detailsA
Get the live, order-ready detail for one product SKU: every billing cycle with its price, the plans (sizes) on offer, and the config options (e.g. the OS-template field) a purchase must fill in. Richer than get_catalog_plan — use this right before building an order or quoting a price. The sku comes from list_catalog_products or a list_catalog_listings card.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | Yes | Product SKU from list_catalog_products / list_catalog_listings (e.g. "whmcs.kvm-servers-plus-vps"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It indicates a read operation ('Get') and describes what data is returned, but does not explicitly state it is non-destructive or imply any side effects. This is adequate but could be more explicit about behavioral traits like read-only nature 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of just two sentences. The first sentence immediately conveys the tool's core purpose and output, while the second provides usage context and source of the SKU. Every sentence adds value, and there is no unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no nested objects, no output schema), the description is fairly complete. It explains what the tool returns (billing cycles, price, plans, config options), when to use it, and how to obtain the input. It does not detail the exact response structure, but for a detail retrieval tool this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the only parameter (sku), including an example value. The description adds no additional semantic meaning beyond what the schema already provides, so it meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: retrieving live, order-ready details for a single product SKU, including billing cycles, prices, plans, and config options. It distinguishes itself from the sibling tool 'get_catalog_plan' by noting it is richer and intended for use before building an order or quoting a price.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'right before building an order or quoting a price.' It also specifies where the SKU comes from (list_catalog_products or list_catalog_listings). It contrasts with get_catalog_plan, implying an alternative for simpler needs. However, it does not explicitly state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_provisioning_stateA
Setup state of a pending service: whether its order is paid, whether the VM exists yet, and whether provisioning looks stuck (paid but unprovisioned past the grace period). Use after a deploy to watch it land, or to diagnose a service that stays pending.
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | Service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It discloses the specific checks performed (paid, VM existence, stuck) but does not explicitly state read-only nature or error conditions. Still, it provides good transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently convey purpose, details, and usage. No extraneous information, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with one parameter and no output schema, the description adequately covers purpose, usage, and return content (state details). No critical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for the single parameter. The description adds no additional meaning beyond what the schema already provides, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves the setup state of a pending service, listing specific statuses (order paid, VM exists, stuck). It distinguishes from sibling tools like get_service and get_order by narrowing focus to provisioning state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage guidance is provided: 'Use after a deploy to watch it land, or to diagnose a service that stays pending.' This clearly indicates when to apply the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_proxyA
Get one residential proxy service: flavor (ISP fixed-IP plan vs GB Residential bandwidth bucket), status, plan, location, and expiry/renewal. Use after list_proxies to inspect a single service. The id comes from list_proxies.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Resource id from the matching list_* tool. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It implies a read operation via 'Get' but does not explicitly state non-destructiveness, idempotency, or other behavioral traits like rate limits or authorization.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. Front-loads purpose then usage. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one parameter and no output schema, the description covers purpose, usage, and return fields. Lacks behavioral details but is mostly adequate given low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and clearly describes the id parameter. The description reinforces that the id comes from list_proxies, adding marginal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it gets a residential proxy service and lists returned fields. It distinguishes from list_proxies but not fully from sibling get_proxy_* tools like get_proxy_catalog or get_proxy_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use after list_proxies' and notes the id comes from list_proxies, providing clear usage context. Does not exclude other use cases or mention alternatives for different info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_proxy_authA
Get the authentication settings for a proxy service: the auth method, the proxy credentials (null when the service is IP-authenticated only), the IP whitelist, and the caller's detected IP. Use to see how the service authenticates before adding a whitelisted IP or switching auth mode. SECURITY: the result may contain LIVE CREDENTIALS — the proxy username and password (null for IP-only services). Treat it as a secret: do NOT echo it back to the user or repeat its contents unless the user explicitly asks to see it; pass it straight to the tool that consumes it. Read-only; changing the auth method / credentials / whitelist are writes and are not exposed as MCP tools yet. The id comes from list_proxies.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Proxy service id from list_proxies. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description fully covers behavior: it is read-only, returns live credentials, and includes a security warning about not echoing sensitive data. Clearly states the tool does not mutate state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: purpose first, then usage, security warning, and limitations. Every sentence serves a purpose, no redundancy. It is comprehensive yet concise for the information conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description details what is returned (auth method, credentials, whitelist, caller IP) and the null case. It also covers read-only nature and security handling. Sufficient for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'id' is fully documented in the schema. The description adds value by clarifying the source ('from list_proxies'), which is not in the schema. With 100% schema coverage, the baseline is 3, and the additional context justifies a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves authentication settings for a proxy service, including specific fields. It distinguishes from siblings like get_proxy by focusing on auth-specific data and references list_proxies for the ID source.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises using the tool to check authentication before adding a whitelisted IP or switching auth mode. Mentions that write operations are not yet exposed as MCP tools, guiding the agent on scope and limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_proxy_catalogA
Get the residential proxy catalog for the order wizard: ISP IP-count tiers with EUR + USD pricing per Day/Week/Month, orderable locations, protocol + authentication options, plus a gb section of monthly GB Residential bandwidth-bucket tiers (EUR + USD). Use to quote what an ISP plan or a GB bucket costs before recommending or ordering a proxy service. No input.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so burden is on description. Implies a read operation but does not detail data freshness, caching, or authentication requirements. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense paragraph that is front-loaded with purpose. Could be more structured, but every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description fully explains what the catalog contains (pricing, locations, options) and gives usage context. Complete for an agent to decide to invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so schema coverage is 100%. Description adds 'No input' which is redundant but baseline is 4 for 0-param tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets the residential proxy catalog and details its contents (ISP tiers, pricing, locations, options). It distinguishes from sibling tools like get_proxy and get_proxy_list by focusing on the catalog for quoting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use to quote what an ISP plan or a GB bucket costs before recommending or ordering a proxy service.' Does not explicitly mention when not to use, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_proxy_listA
List the live proxy endpoints and credentials (ip, port, username, password) for an active proxy service — this is the direct endpoint list for ISP fixed-IP plans. For a GB Residential bucket the endpoints live under its proxy-requests instead (use list_proxy_requests + get_proxy_request_list). SECURITY: the result contains LIVE CREDENTIALS — usernames and passwords that grant use of the proxies. Treat it as a secret: do NOT echo it back to the user or repeat its contents unless the user explicitly asks to see it; pass it straight to the tool that consumes it. The id comes from list_proxies.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Proxy service id from list_proxies. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description adequately discloses that the result contains live credentials and includes a security warning about not echoing the contents. It does not mention rate limits or error behavior, but the security context is valuable and makes the tool's sensitive nature clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise, containing three functional segments: primary action, alternative usage, and security warning. It is front-loaded with the main purpose. Minor redundancy could be trimmed, but it efficiently conveys key information without excessive verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter and no output schema, the description covers the return data format (ip, port, username, password), security handling, and usage context. It explains when to use alternative tools. This is fairly complete for a simple tool, though it could mention potential error states.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, as the single parameter 'id' is described in the schema as 'Proxy service id from list_proxies.' The description adds no new information beyond restating that the id comes from list_proxies, so it meets the baseline but does not enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'List the live proxy endpoints and credentials' for an active proxy service. It distinguishes between ISP fixed-IP plans and GB Residential buckets, and names alternative tools for the latter, making the purpose unambiguous and differentiating it from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: use this tool for ISP fixed-IP plans, and for GB Residential use list_proxy_requests + get_proxy_request_list instead. It also states that the id comes from list_proxies, implying a prerequisite. This clearly tells the agent when to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_proxy_replacementsA
Get the IP-replacement allowance and history for a proxy service: the included monthly allowance (1/month), how much is used, and past replacement requests. Use to check whether a free IP replacement is available before requesting one. Read-only; requesting a replacement is a write and is not exposed as an MCP tool yet. The id comes from list_proxies.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Proxy service id from list_proxies. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully covers behavioral aspects: it states the tool is read-only, describes the data returned (allowance, used amount, history), and clarifies that requesting a replacement is a write operation not available as an MCP tool. This is comprehensive for a simple read tool, though it could mention any limits on the history length or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of four focused sentences, each adding specific information: purpose, use case, read-only nature, and parameter source. It is front-loaded with the core function, and every sentence contributes meaningfully without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is complete. It explains what data is returned, how to use it (checking replacement availability), and the prerequisite for the id. It also addresses the relationship with the write counterpart, ensuring the agent understands the tool's role in the broader context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, 'id', has a schema description of 'Proxy service id from list_proxies', and the description adds 'The id comes from list_proxies.' Since schema coverage is 100%, the baseline is 3. The added value is minimal, as the schema already explains the parameter adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'IP-replacement allowance and history for a proxy service', specifying the data fields (monthly allowance, usage, past requests). It distinguishes from the sibling 'request_proxy_replacement' by noting that this tool is read-only and that the write operation is not yet exposed. The verb 'get' and the specific resource make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use to check whether a free IP replacement is available before requesting one', providing a clear use case. It also notes that the id comes from 'list_proxies', indicating a prerequisite. While it doesn't list cases when not to use, the context is sufficient to guide appropriate invocation, especially with the sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_proxy_request_listA
List the live proxy endpoints and credentials (ip, port, username, password) for one proxy-request on a GB Residential bucket. Use to fetch the endpoints for a specific country/rotation group; for ISP fixed-IP plans use get_proxy_list instead. SECURITY: the result contains LIVE CREDENTIALS — usernames and passwords that grant use of the proxies. Treat it as a secret: do NOT echo it back to the user or repeat its contents unless the user explicitly asks to see it; pass it straight to the tool that consumes it. The id (a GB Residential service) comes from list_proxies and the request_id from list_proxy_requests.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | GB Residential proxy service id from list_proxies. | |
| request_id | Yes | Proxy-request id from list_proxy_requests. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description discloses critical behavioral information: the output contains live credentials and must be treated as secret, not echoed to user. This adds value beyond schema. Could mention idempotency, but the security warning is essential.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences, each serving a distinct purpose: main action, usage guidance, security warning, parameter sources. No redundancy, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but the description provides a reasonable idea of the return structure (ip, port, username, password). It specifies it's for one proxy-request. Could mention if multiple endpoints are returned, but overall sufficient given tool complexity and sibling context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with descriptions for both parameters. The description adds context by stating the provenance of each parameter (id from list_proxies, request_id from list_proxy_requests), which aids correct usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists live proxy endpoints and credentials for a specific GB Residential bucket proxy-request. Distinguishes from sibling tool get_proxy_list for ISP fixed-IP plans.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes when to use (to fetch endpoints for a specific country/rotation group) and when not to use (ISP fixed-IP plans use get_proxy_list). Also tells where to obtain the required parameters (id from list_proxies, request_id from list_proxy_requests).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_serviceA
Get full details for a single service by ID: status, network config, billing state, current-month usage. Use when you need more than the list_services summary (e.g. to inspect logs, current cost, attached resources).
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | Service ID from list_services (e.g. "srv_01H8E9..."). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It lists the data categories (status, network config, etc.) but does not explicitly state that it is a read-only operation or mention side effects. Given the tool is a 'get', the read-only nature is implied but not confirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence front-loads the tool's purpose and data fields, and the second provides usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool with no output schema, the description adequately covers what the tool returns and when to use it. It does not mention error cases or output format, but these are less critical given the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter. The description adds context by specifying the parameter source ('Service ID from list_services') with an example format, providing more guidance than the schema description alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (Get) and resource (single service by ID), lists specific data fields returned (status, network config, billing state, current-month usage), and distinguishes from the sibling tool list_services.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when to use: 'when you need more than the list_services summary' with concrete examples (inspect logs, current cost, attached resources), implying not to use for just a summary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_service_autorenewA
Get whether a service auto-renews from account balance ({enabled}). Auto-renew defaults on: at the due date the renewal invoice is paid automatically from promo bonus first, then real credit — enabled:false is the per-service opt-out (bonus still applies). Use to confirm a service won't lapse, or explain an unexpected renewal charge. The service_id comes from list_services.
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | Service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but the description explains the behavior: it returns whether auto-renew is enabled, defines what enabled:false means (per-service opt-out without affecting bonus). This adequately discloses the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with main purpose, no filler. Every sentence adds value: purpose, definition, use cases, parameter source.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description explains the return value ('{enabled}') and its meaning (default on, per-service opt-out). Given the tool's simplicity, this is complete and sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds context that service_id comes from list_services, which is helpful but not essential beyond the schema's own description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'service auto-renew status', and the return value ('{enabled}'). It distinguishes from siblings like the set counterpart and other get tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states use cases ('confirm a service won't lapse, or explain an unexpected renewal charge') and tells the agent that service_id comes from list_services. While not exhaustive, it provides clear context for when to invoke.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_service_isoA
Get the mounted-ISO status for a legacy VPS: whether a rescue/install ISO is currently attached and, if so, which one. Use to check a server's boot media before a reinstall or rescue. Read-only; mount/unmount are writes and are not exposed as MCP tools. The service_id comes from list_services.
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | Service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It declares the tool as read-only and describes the output (whether an ISO is attached and which one). It lacks details on rate limits or auth needs, but for a simple read operation it is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted words. Each sentence serves a purpose: function, usage, and prerequisite.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one parameter and no output schema, the description fully covers what the tool does, when to use it, and the input source. Output is described in the first sentence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the parameter with 100% coverage. The description adds value by explaining that service_id comes from list_services, providing source context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'mounted-ISO status', and scope 'for a legacy VPS'. It explicitly distinguishes from sibling mount/unmount tools by stating they are writes and not exposed as MCP tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells when to use it: 'Use to check a server's boot media before a reinstall or rescue.' It also notes that service_id comes from list_services. However, it does not explicitly mention when not to use it or alternatives beyond mount/unmount.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_service_metricsA
Get resource metrics (CPU / RAM / disk / bandwidth time series) for a single service. Use to answer "is my server busy?" or "how much bandwidth have I used?".
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Aggregation window (default: hour). | |
| service_id | Yes | Service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the metrics retrieved (CPU, RAM, disk, bandwidth) which implies a read-only operation, but does not explicitly declare it as such. It also lacks details on authentication or rate limits, though these are likely standard for the API. The description is adequate but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first clearly states what the tool does, and the second gives usage examples. Every sentence is meaningful, with no wasted words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, no output schema), the description covers all essential context: what it retrieves, for which service, with aggregation period, and example use cases. It is complete for an AI agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by explaining the purpose of the tool (returning time series) and providing examples of use, which helps the agent understand the context beyond just the parameter names and enums.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get resource metrics (CPU / RAM / disk / bandwidth time series) for a single service.' It specifies the verb (get), the resource (metrics for a service), and the scope (time series). Among sibling tools, none focus on metrics, so it distinguishes itself effectively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete use cases: 'Use to answer "is my server busy?" or "how much bandwidth have I used?".' This gives clear guidance on when to use the tool. It does not explicitly exclude scenarios, but the examples are strong enough for practical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ticketA
Get a single support ticket with its full message thread. Use after list_tickets to read the conversation or check the latest staff reply.
| Name | Required | Description | Default |
|---|---|---|---|
| ticket_id | Yes | Ticket ID from list_tickets. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the sole responsibility for transparency. It implies a read-only operation via 'Get', but does not explicitly state limitations like idempotency, required permissions, or any side effects. The mention of 'full message thread' hints at behavior but is insufficient for full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the action and key detail ('full message thread'), and includes usage guidance efficiently. Every sentence adds value without unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one parameter, no output schema, and no annotations, the description covers the essential aspects: what it returns (full thread), when to use it (after list_tickets), and why (read conversation or check reply). No significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (the single parameter 'ticket_id' is described in the input schema). The description does not add any additional meaning or constraints beyond the schema's 'Ticket ID from list_tickets.' Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a single support ticket with its full message thread, using specific verbs ('Get') and resource ('support ticket'). It distinguishes itself from siblings like list_tickets (which returns a list) by specifying this is for a single ticket.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises 'Use after list_tickets' and provides two concrete use cases: 'to read the conversation or check the latest staff reply.' This gives clear context, though it lacks explicit when-not-to-use or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tld_pricingA
List register / transfer / renew prices per TLD, in the account currency. Use to quote what a .com / .io / etc costs before recommending or ordering a domain.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions the account currency, which is a behavioral detail, but does not disclose authentication needs, rate limits, or whether the operation is read-only. More context would be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: first states the function, second provides usage guidance. It is front-loaded, concise, and every sentence adds value. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema and no annotations, the description covers the key aspects: what it lists, currency, and when to use. It is fairly complete for a simple list tool with no inputs. Could mention if it lists all TLDs, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema description coverage is 100%. Per guidelines, baseline score is 4. The description adds no parameter information, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists register/transfer/renew prices per TLD in the account currency. It specifies the action (list), resource (TLD pricing), and gives examples (.com, .io). It is distinct from siblings like check_domain_availability or list_domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises using this tool to quote costs before recommending or ordering a domain. This provides clear usage context. While it doesn't mention when not to use, the scenario is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_two_factor_statusA
Get the authenticated user's two-factor (TOTP) status — whether 2FA is enabled on the account. Use to check the account's security posture before advising on hardening.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description carries full burden. Indicates return value (status) but omits details like authentication requirement, read-only nature, or potential side effects. Acceptable for a simple query.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: front-loaded with purpose, then usage guidance. No extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, description sufficiently explains the returned information ('whether 2FA is enabled'). For a zero-parameter tool, it is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100%. Description adds no param details, but none needed. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Get' and resource 'two-factor (TOTP) status', specifying 'whether 2FA is enabled'. No sibling tool covers 2FA, so differentiation is inherent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly suggests using the tool to 'check account security posture before advising on hardening', providing a clear use case. Does not mention when not to use, but no alternatives exist among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_volumeA
Get one block storage volume: id, name, size, status, region, and which VM it is attached to. Use after list_volumes to inspect a single volume.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Resource id from the matching list_* tool. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It indicates a read operation but does not disclose behavior on errors (e.g., missing volume, permissions) or any side effects. Adequate for a simple get but could be more explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One clear sentence listing returned fields and usage advice. Front-loaded and every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema, the description covers purpose, input origin, and output fields. Missing details on response format or error behavior, but these are not critical for a simple get operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter. The description adds context that the id comes from a matching list_* tool, improving understanding beyond the schema description alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('block storage volume'), lists returned fields (id, name, size, status, region, attached VM), and distinguishes from siblings by suggesting use after list_volumes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states to use after list_volumes to inspect a single volume, providing clear context. No exclusions or alternative scenarios mentioned (e.g., when volume not found).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_account_clientsA
List the users linked to this client account — accepted members AND pending invitations. Each entry has a status (active / invited / disabled); the account owner is flagged isOwner. Use for "who has access to my account?" or to find a linked user before discussing collaborators.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It describes the data returned (status, isOwner) and includes pending invitations. While it doesn't explicitly state read-only or auth requirements, the 'list' verb and context imply a safe query. Adds value by detailing output fields beyond what a schema would provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first states the action and data, the second provides usage context. No redundant words, front-loaded with key information. Every sentence is valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, no output schema, and no annotations, the description is sufficient. It explains what the tool does, what it returns, and when to use it. For a simple list operation, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters, the baseline is 4. The description does not need to explain parameters, but it compensates by describing the response structure and usage context, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists users linked to the client account, including both accepted members and pending invitations, with specific fields like status and isOwner flag. This is a specific verb+resource combination that distinguishes it from sibling tools like list_account_emails or list_account_contacts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete use cases ('who has access to my account?' and 'find a linked user before discussing collaborators'), guiding the agent on when to invoke this tool. Does not explicitly state exclusions or alternatives, but the examples imply its primary purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_account_contactsA
List the account's billing / technical contacts — additional email-copy recipients with no login of their own. Use for "who else receives my invoices and notices?".
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not explicitly state that the operation is read-only, has no side effects, or requires no special permissions. The read-only nature is implied but not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action, and no unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description is complete: it explains what kind of contacts are listed and the purpose, which is sufficient for context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema coverage is 100%. The description does not need to add parameter info, and baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists billing/technical contacts who are email-copy recipients without login, and provides a use case question. It distinguishes from sibling tools like list_account_clients.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage with a question, but lacks explicit guidance on when not to use this tool versus alternatives, or any prerequisites. Minimal but adequate for a simple tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_account_emailsA
List the emails WHMCS sent to this account (invoices, notices, password resets), newest first. Pass id to fetch a single message including its HTML body; page older results with offset. Use for "what emails did I get?" or to read one message.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Fetch one email by id (returns its HTML body). Omit to list. | |
| offset | No | Pagination offset into the list (default 0). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses ordering, pagination, and the effect of passing id (returns HTML body). However, it does not mention authentication, rate limits, or error handling, which would add completeness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and examples, followed by usage patterns. No filler or redundant information. Each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main functionality but lacks detail on response format for list operations (beyond ordering) and error scenarios. Given simple parameters and no output schema, it is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good parameter descriptions. The tool description adds context about ordering (newest first) and the HTML body for id, but the schema already covers the core semantics. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists emails sent to the account, with specific examples (invoices, notices, password resets) and ordering (newest first). It also explains the dual functionality: list or fetch single by ID, distinguishing it from any sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases: "Use for 'what emails did I get?' or to read one message." It implies when to use but does not explicitly mention when not to or provide alternatives. However, no other email tool exists, so it's clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_account_ssh_keysA
List the account-wide SSH public keys registered on the profile — the keys offered at deploy time when creating a new server. Account-scoped, NOT per-server: for the keys already installed on one running server use list_ssh_keys (service_id) instead.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the scope and that these keys are used at deploy time. No side effects or destructive actions mentioned; it's a read operation. Could mention pagination or format but not necessary for a parameterless list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with primary action, second sentence provides context and differentiation. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a simple list tool with no parameters and no output schema. Explains what is listed, its scope, and how it differs from a similar tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has no parameters, so schema coverage is 100%. Description adds no parameter info, which is appropriate. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'list' and specific resource 'account-wide SSH public keys'. The description states the keys are registered on the profile and offered at deploy time. It also distinguishes from sibling tool list_ssh_keys.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states account-scoped vs per-server and provides an alternative sibling for per-server keys. Tells when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_backupsA
List existing backups for a single legacy VPS server. Use to check whether a recent backup exists before a risky change, or to find a backup ID for restore.
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | Server ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation by using 'list', but with no annotations provided, it does not explicitly state the lack of side effects, authentication requirements, or other behavioral traits. The mention of 'legacy VPS server' adds some context, but more disclosure would be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that effectively states the main purpose and use cases. No redundant information; every part serves a purpose. Front-loaded with the primary action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and no output schema, the description adequately covers the tool's purpose and usage. However, it does not describe the structure of the returned backup list (e.g., fields like backup ID, date) or mention pagination. Slightly incomplete given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a clear description for service_id. The tool description adds minimal extra context by referring to 'legacy VPS server', but the baseline is met. No additional parameter explanation needed beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool lists existing backups for a single legacy VPS server. The description distinguishes it from sibling tools by specifying the resource type and action, and there are no other list_backups tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use cases: checking for a recent backup before risky changes or finding a backup ID for restore. However, it does not mention when not to use this tool or suggest alternative tools for related tasks (e.g., creating backups).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_catalog_listingsA
List the deploy-wizard product cards for one category — the same tiles the console shows on the "create" screen, each with sku, display name, tier, pricing, specs, and available regions. Use to browse "what can I deploy in this category?" and to grab a sku to pass on to get_product_details.
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | Which deploy-wizard category to list cards for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the full burden. It discloses the return content but does not mention side effects (none expected), auth requirements, pagination, or limits. It is adequate but not exhaustive for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences. The first sentence states the action and results; the second gives usage context. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with one parameter and no output schema, the description is fairly complete. It lists the returned fields and provides usage context. It lacks only minor details like ordering or pagination, which are not critical for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the parameter with an enum and description. The description adds context by tying the parameter to the deploy-wizard category but does not provide additional semantic meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists deploy-wizard product cards for one category, specifying the returned fields (sku, display name, tier, pricing, specs, available regions). It distinguishes itself from siblings like get_product_details by indicating it's for browsing and obtaining a sku to pass to that tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: to browse products in a category and grab a sku for get_product_details. It does not explicitly exclude alternatives like list_catalog_products, 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.
list_catalog_productsA
List orderable products from the RareCloud catalog. Use to answer "what plans can I deploy?" Returns SKU, kind (legacy_vps / cloud_compute / proxy / ...), category, display name. Filter by kind or backend to narrow results.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Filter by product kind. Most users want legacy_vps (KVM VPS) or cloud_compute (hourly OpenStack VMs). | |
| backend | No | Filter by underlying backend. Usually you do NOT need this — pick by kind instead. | |
| category | No | Filter by category name (e.g. "KVM Servers", "Proxies"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses return fields and filtering capability. As a read-only list operation, it is transparent about its non-destructive nature. Could optionally mention pagination, but not required for a simple catalog listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose and return fields, second provides filtering guidance. No redundant information, front-loaded, and efficient. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (listing with optional filters) and no output schema, the description adequately covers essential details. Could mention whether results are paginated, but the lack of this is a minor gap. No annotations or output schema to complement, but description stands well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage with detailed parameter descriptions (e.g., enum values and hints). The description adds overall context but does not significantly enhance parameter semantics beyond the schema. Baseline 3 due to high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List', the resource 'orderable products from the RareCloud catalog', and the purpose 'answer what plans can I deploy?'. It explicitly lists return fields (SKU, kind, category, display name), distinguishing it from sibling list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear use case ('what plans can I deploy?') and filtering guidance ('Filter by kind or backend to narrow results'). The kind parameter description adds context ('Most users want legacy_vps or cloud_compute'). Does not explicitly state when not to use, but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_cluster_kubeconfigsA
List the LONG-LIVED kubeconfig credentials issued for a managed Kubernetes cluster — metadata only (id, name, role admin|view, createdAt, expiresAt, revokedAt, lastDownloadedAt, status active|expired|revoking|revoked). Each is a revocable, per-credential ServiceAccount meant for standing automation (CI, GitOps). The token itself is NEVER returned here — re-download an active one with download_cluster_kubeconfig. Use to see which credentials exist, which are still active, and to find a credential_id. The service_id comes from list_services (a cloud-k8s service).
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | Managed-Kubernetes service ID from list_services (a cloud-k8s service). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. Discloses that only metadata is returned, token is never included, credentials are revocable ServiceAccounts for standing automation, and lists all metadata fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences packed with information, no filler. Could be slightly more streamlined but content is efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description enumerates all return fields and explains credential lifespan and purpose. Completely covers what the agent needs to understand usage and output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds that service_id comes from list_services and is for a managed Kubernetes service, but schema already provides similar context. Marginal added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'list the long-lived kubeconfig credentials' with specific metadata fields. Distinguishes from sibling tools like download_cluster_kubeconfig by noting the token is never returned here.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context on when to use (see which credentials exist, find credential_id) and directs to download_cluster_kubeconfig for actual token retrieval. Lacks explicit 'when not to use' but effectively guides selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_cluster_poolsA
List the worker node pools of a managed Kubernetes cluster — each pool's name, machine type/flavor, node count, and autoscaling min/max. Use to inspect how the cluster's compute is organized before a scale change, or to find a pool by name. Read-only; adding/editing/removing pools are writes and are not exposed as MCP tools. The service_id comes from list_services (a cloud-k8s service).
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | Managed-Kubernetes service ID from list_services (a cloud-k8s service). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
States read-only nature, which is key behavioral information. No annotations provided, so description carries full burden. Lacks details on pagination or limits but adequate for a simple list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no waste. Front-loaded with main action and returns. Efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simplicity (1 param, no output schema), description fully covers purpose, input origin, and usage context. No missing information relevant for calling the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description of service_id. Description adds mention of its origin (list_services) but repeats schema info. No additional semantic value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists worker node pools of a managed Kubernetes cluster, specifies returned fields, and distinguishes from sibling write tools by explicitly stating that write operations are not exposed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use cases: inspect compute before scale change or find pool by name. Also clearly states it is read-only and that write operations are separate tools, guiding appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_domainsA
List registered domains: id, name, status, expiry, auto-renew. Use for "what domains do I own?" or to find a domain id.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Implies read-only behavior via 'list', but doesn't explicitly confirm non-destructiveness or authorization needs. Adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with action and output details, followed by use cases. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Describes output fields and use cases. No output schema, but coverage is sufficient. Could mention pagination, but overall complete for a simple list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, schema coverage 100%. Description adds no parameter info needed; baseline 4 for zero-param tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states action (list), resource (registered domains), and output fields (id, name, status, expiry, auto-renew). Provides use cases, distinguishing it from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly states when to use (find owned domains or domain id). Lacks explicit exclusions or alternatives, but context is clear enough for a simple list tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_firewallsA
List cloud firewalls (security groups): id, name, status, attached VM count, rule count. Use for "what firewalls do I have?" or to find a firewall id.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the output fields (id, name, status, etc.) implying a read-only list operation. It does not mention pagination or limits, but given no parameters, it's acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: the first defines the action and outputs, the second provides usage examples. No wasted words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters, no output schema, and clear output description, the description is complete. It covers what the tool does, what it returns, and when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema coverage is 100%. Per guidelines, baseline is 4. The description adds no parameter info, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists cloud firewalls with specific fields (id, name, status, attached VM count, rule count) and provides explicit use cases ('what firewalls do I have?' or find a firewall id). It differentiates from sibling tools by focusing on firewalls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage guidance with example queries ('what firewalls do I have?' or find a firewall id). It does not explicitly state when not to use, but given the tool's simplicity, the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_gb_residential_countriesA
List the countries (id + name) selectable when creating a GB Residential proxy-request. Use to pick a valid country before creating a proxy-request on a GB bucket. GB Residential only — ISP fixed-IP plans do not use this. No input.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the full disclosure burden. It states the tool returns 'id + name' and that there is 'No input,' implying a read-only, parameterless operation. However, it does not mention whether results are paginated, sorted, or if authentication is required. The behavioral disclosure is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences with no superfluous words. The first sentence immediately conveys the purpose, and the second adds context. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema, the description should provide more detail about the return format. It mentions 'id + name' but doesn't specify whether the result is an array of objects, the data types (e.g., string for id), or if there are any restrictions. For a simple list, this is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty (0 parameters) with 100% schema description coverage. The description confirms 'No input,' which is fully sufficient. Since there are no parameters, the baseline score of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'List the countries (id + name) selectable when creating a GB Residential proxy-request.' It clearly identifies the verb (list), resource (countries), and specific context (GB Residential proxy-request). It also disambiguates from sibling tools by noting 'GB Residential only — ISP fixed-IP plans do not use this.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use to pick a valid country before creating a proxy-request on a GB bucket.' It also clarifies exclusivity: 'GB Residential only — ISP fixed-IP plans do not use this.' This tells the agent when to use and when not to, though it doesn't mention alternative tools for ISP fixed-IP plans.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_gb_rotation_intervalsA
List the rotation intervals (id + label: all, high, 1min, 10min, 30min) selectable when creating a GB Residential proxy-request. Use to pick a valid rotation before creating a proxy-request on a GB bucket. GB Residential only — ISP fixed-IP plans do not use this. No input.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses the tool's behavior: it lists rotation intervals with id and label, and it has no input. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no waste. Front-loaded with purpose and specific values. Efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no parameters, the description fully covers what the tool returns (id+label), lists the values, and provides usage context. Complete for a simple listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, schema coverage is 100% trivially. Baseline of 4 is appropriate as the description does not need to add parameter detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'List' and resource 'rotation intervals' with explicit values (all, high, 1min, 10min, 30min). It clearly distinguishes from sibling tools like list_gb_residential_countries by focusing on rotation intervals for GB Residential proxies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: before creating a proxy-request on a GB bucket, and when not to: for ISP fixed-IP plans. Provides clear context and exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_imagesA
List available OS images (Ubuntu / Debian / Rocky / Windows Server / etc) that can be installed on new servers. Use to validate an image slug before recommending it.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It indicates a read-only list operation, but does not describe output structure (e.g., slugs, names) or any other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the purpose and provide immediate usage guidance without redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains what the tool does and when to use it, but for a parameterless tool without output schema, it should include what fields are returned (e.g., slugs, versions) to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. Baseline is 4 for zero parameters; description adds no param info but that is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists available OS images with specific examples, and includes a use case for validating slugs, distinguishing it from similar tools like list_os_templates by focusing on images for new servers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly guides to use when validating an image slug before recommending it, providing clear context. However, it does not mention when not to use or compare to siblings like list_os_templates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_invoicesA
List invoices for the authenticated account: number, status (paid / unpaid / cancelled), issued date, total. Use for "summarize my last 6 months of spend" or "which invoices are unpaid".
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Cap results (default: 50, max: 200). | |
| status | No | Optional filter on invoice status. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses authentication scope and returned fields. No annotations exist, so description covers safety and output adequately. Could mention pagination but limit param hints at it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first defines purpose and fields, second gives concrete examples. No wasted words, front-loaded with critical info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers return fields and use cases well. No output schema, but description compensates. Pagination details could be added but not essential given limit parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already describes both parameters (limit, status) at 100% coverage. Description adds practical usage context and example filters, enhancing meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists invoices with key fields (number, status, date, total). Provides concrete use-case examples that distinguish it from similar tools like get_invoice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly suggests when to use (summarize spend, find unpaid invoices) and notes optional status filter. Lacks explicit when-not-to-use or alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_kubernetes_versionsA
List the managed-Kubernetes (Gardener shoot) versions currently offered, newest-supported first. Use to pick or validate a version before deploying a cloud-k8s cluster.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description partially covers behavior by stating ordering and purpose. However, it does not disclose the return format or whether there are any side effects, though it is likely read-only. Could be more explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundant information. All content is essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description is largely complete. It specifies the resource, ordering, and usage. Could mention if it returns all versions or only available ones, but 'currently offered' implies availability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema_description_coverage is 100%. The description adds context about the versions being managed-Kubernetes (Gardener shoot), which is extra value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists managed-Kubernetes versions, specifies the context (Gardener shoot), and mentions ordering (newest-supported first). It is specific and distinguishes from siblings as no other tool lists these versions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'to pick or validate a version before deploying a cloud-k8s cluster.' While no alternatives are provided, the tool is unique among siblings, so no when-not-to-use is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_load_balancer_membersA
List the backend members of a load balancer — each member VM's private fixed IP and its port in the pool. Use after list_load_balancers to inspect exactly which VMs sit behind a load balancer. The id comes from list_load_balancers.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Load balancer id from list_load_balancers. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It accurately describes the read-only behavior of listing members with their IP and port. While it doesn't detail authorization or rate limits, the simplicity of the tool makes this sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences with no redundancy. The key information is front-loaded, and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, no output schema), the description is complete. It explains what is listed (IP and port) and the prerequisite, which is all the agent needs for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'id', and the description adds little beyond the schema's own description. The baseline score of 3 is appropriate as the schema already defines the parameter clearly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists backend members of a load balancer with specific attributes (private fixed IP and port). It also distinguishes itself from siblings by specifying it should be used after list_load_balancers, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use after list_load_balancers and states that the id parameter comes from that tool. This provides clear sequencing and prerequisite, helping the agent decide when to invoke this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_load_balancersA
List L4 load balancers: id, name, status, public IP, listener port, member count. Use for "what load balancers exist?".
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the transparency burden. It states the tool lists L4 load balancers and the fields returned, but does not disclose behavioral traits like pagination, sorting, filtering, authentication requirements, or rate limits. This is a minimal but acceptable disclosure for a simple list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences with no wasted words. It front-loads the action and resource, and provides a clear use case sentence. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description is fairly complete. It mentions the key fields returned. It could mention pagination or limits, but for a simple list tool, it adequately addresses the user's need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so the baseline is 4. The description adds value by listing the output fields (id, name, status, public IP, etc.), which is helpful for the user to know what to expect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'L4 load balancers', listing specific fields returned. It explicitly says the use case 'what load balancers exist?', which distinguishes it from siblings like 'get_load_balancer' and 'list_load_balancer_members'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit use case ('Use for "what load balancers exist?"'), implying when to use it. However, it does not mention when not to use it or explicitly mention alternatives, though the sibling tools provide context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_networksA
List private networks (VPCs): id, name, CIDR, status, attached VM count, whether it is the default. Use to map the account's network topology.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, pagination, rate limits, or ordering. The agent has no information beyond the basic purpose, which is a significant gap for a data-retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, and no unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While adequate for a zero-parameter list endpoint, the description lacks details on pagination, ordering, or whether all networks are returned at once. The sibling tools include many actions, but this description does not position it as a read-only operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100%. The description correctly implies there are no filters or options. Following the guideline, 0 parameters earns a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists private networks (VPCs) and enumerates the fields returned (id, name, CIDR, status, attached VM count, default flag). This distinguishes it from siblings like get_network (single network) and delete_network.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Use to map the account's network topology,' providing a clear usage context. However, it does not explicitly state when not to use it or list alternatives, but the context is sufficient for a simple listing tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ordersA
List the authenticated account's orders — the purchase records behind its services. Each has an id, orderNumber, date, status, paymentStatus, the linked invoiceId, and its line items. Use for "what have I ordered?" or to find an order id to inspect.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but the description discloses that the tool lists orders for the authenticated account. It also describes the fields in the returned data. It does not mention pagination or side effects, but since it's a read operation, the behavior is sufficiently transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence states the action and resource, the second lists fields and usage. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains the return structure (fields). It lacks mention of pagination or limits, but for a simple list with no parameters, it is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters and is 100% covered. The description adds meaning by explaining the output structure and purpose. Per rubric, 0 parameters gives a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists the authenticated account's orders, describing them as 'purchase records behind its services' and listing specific fields. It distinguishes from siblings like 'get_order' (single order) and 'list_invoices' (invoices vs orders).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use for "what have I ordered?" or to find an order id to inspect,' providing clear use cases. It does not mention when not to use it, but with no parameters and a simple list, this is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_os_templatesA
Operating systems a legacy VPS can be reinstalled with (Virtualizor templates). Read-only; the reinstall itself is a destructive write and is not exposed as an MCP tool.
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | Server ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description clearly declares read-only behavior and warns about the destructive nature of the reinstall action not being available. This provides sufficient transparency beyond what structured fields would cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is highly efficient, no filler, and front-loaded with the core purpose. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter and no output schema, the description covers purpose, read-only nature, usage context, and relationship to destructive actions. It is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with a clear description for service_id ('Server ID from list_services.'). The description adds no extra parameter semantics beyond the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns operating system templates for legacy VPS reinstallation, using specific verbs and resource context. It distinguishes from siblings by mentioning Virtualizor and legacy VPS.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the tool is read-only and that the reinstall action (destructive) is not exposed as an MCP tool, guiding when to use. However, it doesn't directly mention alternative tools like reinstall_service for performing the reinstall.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_payment_methodsA
List the account's available payment options (WHMCS gateways). There is no stored-card vault — these are the gateways offered at checkout. Use for "how can I pay?".
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It implies read-only by saying 'list' but does not explicitly state it is non-destructive or require permissions. Adequate but could be more explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with no wasteful phrasing. Each sentence adds crucial information: what is listed, what is not included, and when to use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool without output schema, description covers the purpose and scope. Lacks details on output format but output is likely self-explanatory (list of gateway names). Nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in schema, so description does not need to explain them. It adds value by describing what the list contains (gateways at checkout) beyond the minimal schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists account payment options (WHMCS gateways) and specifies it is not a stored-card vault. Differentiates from billing siblings by narrowing to checkout gateways.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Includes explicit use case 'Use for "how can I pay?"' and clarifies what it does not do (no stored-card vault). Could mention alternatives like billing tools for stored cards but sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_prepurchase_os_templatesA
List the OS templates selectable at purchase time for a legacy VPS / dedicated-server SKU — each with slug, display name, and version. Use to pick a valid OS before ordering one of these products. (For the OS list of an already-running server use list_os_templates with a service_id instead.) The sku comes from list_catalog_products.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | Yes | Legacy/dedicated product SKU from list_catalog_products. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes what it returns (slug, display name, version) and scope (prepurchase, legacy products). No annotations provided, but description covers typical read behavior. Minor omission: not explicitly stating it's read-only, but implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each with a clear purpose: what it does, when to use, and alternative/source. No unnecessary words, front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a simple 1-param tool with no output schema. Covers purpose, usage, alternatives, and what fields are returned. Meets all needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already describes parameter fully. Description adds context: 'sku comes from list_catalog_products', linking to another tool. Adds value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists OS templates selectable at purchase time for legacy VPS/dedicated-server SKU, with specific fields (slug, display name, version). Distinguishes from sibling list_os_templates by specifying context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (before ordering) and when not (for already-running server, use list_os_templates with service_id). Also tells where to get the sku (list_catalog_products).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_proxiesA
List your residential proxy services: id, name, flavor (ISP fixed-IP plan vs GB Residential bandwidth bucket), status, plan, and expiry. Use for "what proxy services do I have?" or to find a proxy service id.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It implies a read-only operation by saying 'list', but does not disclose any behavioral traits such as safety, side effects, pagination, or authentication requirements. This is minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two succinct sentences: first states action and output fields, second gives when to use. No fluff, front-loaded with essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic purpose and output fields but lacks details about sorting, filtering, or differentiation from similar sibling tools like get_proxy_list. For a simple list tool without output schema, it is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100% vacuously. The description adds value by explaining the output fields and usage, which is appropriate for a no-param tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists residential proxy services and enumerates the fields (id, name, flavor, status, plan, expiry). It distinguishes from siblings like get_proxy (singular) by specifying 'list' and 'residential proxy services', and provides example use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly gives two use scenarios: 'what proxy services do I have?' and 'find a proxy service id'. It does not mention when not to use or alternatives like get_proxy_list, but the guidance is clear enough for a simple list tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_proxy_requestsA
List the proxy-requests on a GB Residential bandwidth bucket — the country + rotation-interval + count groups that allocate endpoints from the bucket. Use to see the groups on a GB service or to find a proxy-request id. GB Residential only; ISP fixed-IP plans expose their endpoints directly via get_proxy_list. The id comes from list_proxies (a GB Residential service).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Proxy service id from list_proxies. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries the burden. It implies read-only behavior via 'list' and describes the output structure (groups). However, it could clarify pagination, limits, or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each serving a distinct purpose (what, why, scope, source). No redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and one parameter, description provides sufficient context: input source, output structure, and scope. Could mention return format or count, but not necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has one parameter with description, and the description adds value by specifying that the id comes from list_proxies. With 100% schema coverage, baseline is 3, and the extra context justifies a higher score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists proxy-requests on a GB Residential bandwidth bucket, specifying they are country + rotation-interval + count groups. It distinguishes itself from get_proxy_list for ISP fixed-IP plans, making its purpose specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use it (to see groups or find proxy-request id) and restricts scope to GB Residential only. It also tells where to get the input id (from list_proxies) and implicitly advises against using it for ISP fixed-IP plans.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_regionsA
List available RareCloud datacenter regions. Each region has a slug (e.g. "frankfurt-de"), display name, country code, and which backends can provision there.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It clearly indicates a read-only operation (listing regions) with no side effects, and describes the output fields, but could be more explicit about its idempotent nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences that front-load the purpose and detail the region properties, with zero wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately covers what each region contains (slug, display name, country code, backends), offering sufficient context for an agent to use the results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in the schema, so baseline is 4. The description does not add parameter info since there are none, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists available datacenter regions, specifies example properties (slug, display name, country code, backends), and is distinct from sibling tools that list other entities like images or OS templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives or when not to use it. However, as a simple list operation, the context is implied; it is adequate but lacks depth.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_reserved_ipsA
List reserved (static) public IPs: id, address, status, which VM it is attached to. Use to see floating IPs and what they point at.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It indicates the tool is read-only and returns specific fields, but lacks details on pagination, filtering, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundancy. The first sentence states purpose and output fields; the second gives usage context. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description provides complete context: it lists reserved IPs with key attributes. No gaps for an AI agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so no additional meaning is needed. The description correctly lists the returned fields, adding value beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists reserved (static) public IPs with specific fields (id, address, status, attached VM). It distinguishes from sibling tools like reserve_ip and attach_reserved_ip by being a listing operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description suggests use 'to see floating IPs and what they point at', providing clear usage context. However, it does not explicitly exclude scenarios where alternative tools might be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_servicesA
List all services in the authenticated account: VPS servers, cloud VMs, proxies, hosting, domains. Returns each service's id, kind, name, status, IPv4, region, specs, billing cycle. Use to answer "what do I have running?" or to find a service ID for follow-up calls.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Optional filter by service category: "server" (legacy VPS), "cloud-vm", "cloud-k8s", "proxy", "hosting", "domain". Omit to return all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the burden. It describes a read-only list operation returning specific fields. However, it does not mention pagination, rate limits, or behavior for large accounts, which is a minor gap for a list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first covers what the tool does and returns, second provides concrete use cases. Every sentence adds value with no redundancy or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately lists the returned fields (id, kind, name, status, etc.) and explains the parameter. However, it lacks mention of pagination or limits for large result sets, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single optional 'category' parameter. The description adds value by listing the categories (server, cloud-vm, etc.) and stating that omitting it returns all, which enhances understanding beyond the schema's basic description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists all services in the authenticated account and enumerates service types (VPS, cloud VMs, etc.) and returned fields. It distinguishes itself from sibling tools like get_service (single service) by being a list-all tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use to answer "what do I have running?" or to find a service ID for follow-up calls,' providing clear context. It implies when not to use (when you need a specific service, use get_service) but does not explicitly state exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_service_ssh_key_libraryA
List the SSH keys registered in a legacy VPS's key library (Virtualizor) — each with id, name, publicKey, and a server-computed fingerprint. These are the keys selectable when reinstalling this server. Distinct from list_ssh_keys, which returns the keys already installed on the running server. The service_id comes from list_services.
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | Service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It explains the data source (Virtualizor), the nature of keys (selectable for reinstallation), and differentiates from installed keys. It does not mention pagination or side effects, but for a list tool, this is adequately transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with main action, no verbosity. Each sentence adds essential information: what the tool does, output fields, distinction from sibling, and parameter origin.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter, the description covers all needed context: purpose, output fields, sibling differentiation, and parameter source. No output schema exists, but output fields are listed, making it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter, service_id, with schema description 'Service ID from list_services.' Description adds that it comes from list_services, but schema already covers it. Since schema coverage is 100%, baseline 3 applies—description adds minimal extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists SSH keys from a legacy VPS key library (Virtualizor), specifies output fields (id, name, publicKey, fingerprint), and distinguishes from list_ssh_keys, making the purpose highly specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly contrasts with list_ssh_keys ('keys already installed on the running server') and indicates prerequisite (service_id from list_services), providing clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ssh_keysA
List the SSH keys on a specific server (legacy VPS). SSH keys are per-server in the API, not account-wide. Pass a service_id from list_services.
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | Server ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses that SSH keys are per-server (legacy VPS), which is a key behavioral trait. However, it does not mention safety aspects (read-only), authentication needs, or rate limits. For a simple read tool, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The action is front-loaded and every phrase adds value. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully explains what the tool does and how to use it. It does not describe the output format, but for a simple list operation without an output schema, this is acceptable. The context of per-server versus account-wide keys is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage, with the single parameter service_id described as 'Server ID from list_services'. The tool description reiterates this, adding no new meaning. Baseline 3 applies as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'SSH keys on a specific server (legacy VPS)', and distinguishes it from account-wide SSH keys by noting they are per-server. This helps differentiate from the sibling tool list_account_ssh_keys.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to 'Pass a service_id from list_services', which provides a clear usage pattern. It does not explicitly mention when not to use it, but the distinction from account-wide keys is implied. Sibling tools include list_account_ssh_keys, but no direct comparison is made.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ticket_departmentsA
List the support departments and their numeric ids — the department ids accepted when opening a ticket (POST /tickets). Use before drafting a new ticket to pick the right department.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description implies a read-only list operation with 'List'. It could be more explicit about non-destructive nature, but sufficient for simple tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load the purpose and usage. Every sentence is necessary and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description sufficiently covers what the tool does, its output, and when to use it. Connects to related tool (POST /tickets).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in schema; baseline score 4 applies. Description adds value by explaining the output (department names and IDs) and its purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it lists support departments with numeric IDs, and connects it to opening a ticket. It clearly distinguishes from sibling tools like create_ticket.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description directly says to use this tool before drafting a new ticket to pick the right department, providing explicit when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ticketsA
List support tickets for the authenticated account: id, subject, status (open / awaiting-staff / awaiting-client / closed), department, last-updated. Use for "do I have any open tickets?".
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Optional filter on ticket status. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description states it lists tickets for authenticated account but omits details on pagination, ordering, or rate limits. Adequate for a simple list but could be more transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence plus a usage hint. No wasted words, front-loaded with purpose and key fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, returned fields, and a usage example. No output schema but fields are described. Could mention pagination, but overall adequate for a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the only parameter 'status', so baseline is 3. The tool description does not add extra meaning beyond restating the status values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'list' and resource 'support tickets' with distinct fields enumerated. Distinguishes from siblings like get_ticket (single ticket) and create_ticket by listing multiple tickets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use case 'do I have any open tickets?' but lacks contrast with other ticket list or search options. Still gives clear context for when to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_upgrade_optionsA
Plans (and billing cycles with prices) a service could be upgraded/downgraded to, from its product group. Read-only; the actual upgrade creates an invoice and is not exposed as an MCP tool.
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | Service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It explicitly states 'Read-only' and notes that the upgrade creates an invoice elsewhere, indicating no side effects. Could add more on auth or errors, but sufficient for a read-only list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences: first states purpose, second adds behavioral note. No fluff, front-loaded, every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given single parameter, no output schema, and no annotations, description adequately covers purpose, safety, and usage. Missing details like pagination or return format, but not critical for a list of options.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter with 100% schema description coverage ('Service ID from list_services'). Description adds minimal extra context ('from its product group'), which is helpful but not substantial. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states this tool lists plans with billing cycles and prices for upgrade/downgrade. Verb 'list' matches name, resource 'upgrade options' is specific, and it distinguishes from the actual upgrade tool (upgrade_service) by noting it is read-only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides context: read-only and the actual upgrade is not an MCP tool. It implies usage before performing an upgrade, but does not explicitly mention the sibling upgrade_service. Still, it gives clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_volumesA
List block storage volumes in the account: id, name, size, status, which VM it is attached to, region. Use for "what storage do I have?" or to find a volume id.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It reveals the tool is a read operation (list) and specifies output fields. However, it does not mention pagination, permissions, or rate limits, which are relevant for a listing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: the first states what it does and what it returns, the second gives usage guidance. No wasted words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no annotations, and no output schema, the description sufficiently explains the tool's purpose and output. Could mention if all volumes are returned at once or if there are limits, but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters (100% coverage), so the description does not need to explain parameters. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists block storage volumes and enumerates the returned fields (id, name, size, status, attached VM, region). This distinguishes it from the sibling get_volume, which retrieves a single volume.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use cases: 'what storage do I have?' or finding a volume id. Does not explicitly exclude alternatives like get_volume, but the context of siblings implies appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_account_contactA
Add, update, or delete a billing/technical contact on the account. Requires scope account:write. Plain write — not gated. action selects the operation: add (needs firstname, lastname, email), update (needs id + the fields to change), delete (needs id). id comes from list_account_contacts. generalemails / invoiceemails / supportemails toggle which notification streams this contact receives.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Contact id (required for update/delete). | |
| No | Contact email (required for add). | ||
| action | Yes | add | update | delete. | |
| lastname | No | Family name (required for add). | |
| firstname | No | Given name (required for add). | |
| companyname | No | Company name. | |
| phonenumber | No | Phone number. | |
| generalemails | No | Receive general emails. | |
| invoiceemails | No | Receive invoice emails. | |
| supportemails | No | Receive support emails. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses the mutating nature (add/update/delete), required scope, and that it's a plain write. Does not mention side effects or error conditions, but for a simple CRUD operation this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single dense paragraph with efficient sentences. No wasted words, but could be slightly more structured with bullet points for actions. Still good.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters and no output schema, the description adequately covers the operation, links to sibling tool for ids, and explains notification toggles. Missing error handling details but otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds meaningful context: explains the action enum and which parameters are required for each action, notes that id comes from list_account_contacts, and clarifies the notification stream toggles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it adds, updates, or deletes a billing/technical contact on the account. Distinguishes from sibling tool list_account_contacts which retrieves contacts, and other management tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states required scope (account:write), explains that it's a plain write with no gating, details the three actions and their required parameters, and tells the agent that contact ids come from list_account_contacts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_domainA
Dispatch a single domain management action. Requires scope domains:write. Plain write — not gated. id comes from list_domains. action selects the operation: nameservers (replace 2-5, pass nameservers), lock (transfer lock, pass enabled), autorenew (pass enabled), idprotect (WHOIS privacy, pass enabled), epp (emails the transfer/EPP code to the registrant — no extra fields). See get_domain_management for the current state before choosing an action. When enabled is omitted the server defaults are ASYMMETRIC: lock and autorenew default to true, idprotect defaults to false — always pass enabled explicitly rather than relying on the omitted-value default.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Domain id from list_domains. | |
| action | Yes | The registrar action to dispatch. | |
| enabled | No | Used by lock / autorenew / idprotect actions. | |
| nameservers | No | Required when action is 'nameservers'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Details each action and required fields, notes plain write and asymmetric defaults. Lacks output shape or error behavior, but adequate 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, front-loaded main action, efficiently breaks down sub-actions with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers essential aspects (scope, id source, actions, defaults). No output schema, but description sufficiently compensates for most use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 4 params; description adds meaning for action enum, conditional requirements, and asymmetric default warnings.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it dispatches a single domain management action, distinguishing from read-only siblings like list_domains and get_domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Specifies required scope (domains:write), source of id (list_domains), advises checking state via get_domain_management, and warns about asymmetric defaults.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mount_service_isoA
Mount a rescue/install ISO on a VPS as a virtual CD-ROM. Requires scope services:write. The iso_url is fetched server-side (SSRF-guarded against private/metadata targets). Plain write — not destructive. service_id from list_services.
| Name | Required | Description | Default |
|---|---|---|---|
| iso_url | Yes | URL of the ISO to mount as a virtual CD-ROM. | |
| service_id | Yes | Service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the operation is a write but non-destructive, requires specific scope, and that ISO URL is fetched server-side with SSRF protection. No annotations provided, so description carries full burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: purpose, permission, and security note. No redundancy or irrelevant details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, permissions, security, and non-destructiveness. Could mention whether mount replaces existing ISO or if service must be stopped, but still adequate for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with descriptions. The tool description adds minor behavioral context (SSRF guarding) but does not significantly enhance parameter meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'mount' and the resource 'rescue/install ISO on a VPS as a virtual CD-ROM'. It is distinct from sibling tools like unmount_service_iso and other service actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Specifies required scope (services:write) and source for service_id (list_services). Lacks explicit when-not-to-use or comparison with alternatives, but the context is fairly clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
order_proxyA
Order a new residential proxy plan and CHARGE the account. Requires scope services:write (proxy writes share the same scope as VM/k8s mutations — there is no proxy-specific scope). Two shapes: a US Residential ISP plan {ips, cycle, locationId, protocol, authType} (discover options with get_proxy_catalog / list_regions), or a GB Residential bucket {kind:"residential-gb", gb}. SPENDS MONEY — pass confirm:true only after the user approves the plan and cost.
| Name | Required | Description | Default |
|---|---|---|---|
| gb | No | GB: bucket tier (1,2,5,10,50,100,250,500,1000; monthly only). | |
| ips | No | ISP: IP-count tier (1,3,5,10,20,25,50,100,150,200). | |
| kind | No | Plan family; defaults to residential-isp. | |
| cycle | No | ISP: billing cycle. | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. | |
| authType | No | ISP: auth type. | |
| protocol | No | ISP: protocol. | |
| locationId | No | ISP: catalog location id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses that this operation spends money and is irreversible, requires confirm to execute, and shares scopes with VM/k8s mutations. The refusal behavior when confirm is false/omitted is also explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences cover action, scope, parameter groups, and spending warning. Information is front-loaded with no redundancy. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all key behavioral aspects and parameter groups. Lacks mention of return value (e.g., order ID), but given the complexity and lack of output schema, the description is still thorough enough for an AI agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant value by grouping parameters into two shapes (ISP vs GB bucket), explaining defaults, and associating each shape with its specific parameters, which aids correct parameter selection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Order a new residential proxy plan and CHARGE the account'), identifies two plan shapes, and distinguishes from sibling tools like get_proxy_catalog or cancel_proxy by emphasizing the financial transaction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on required scope ('services:write') and the critical confirm parameter ('pass confirm:true only after the user approves the plan and cost'). It also references discovery tools (get_proxy_catalog, list_regions) for options, though it does not explicitly state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reboot_serviceA
Reboot a service (cloud VM or legacy VPS). Requires scope services:write. Plain write — no billing impact, not destructive. service_id from list_services.
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | Service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It explicitly states 'Plain write — no billing impact, not destructive' and mentions required scope. It could mention temporary downtime, but that is implied by rebooting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Every sentence adds essential information: action, scope, impact, and parameter provenance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a reboot tool with no output schema, the description adequately informs the agent. It might benefit from mentioning return format, but given the context of sibling tools and the simplicity of the operation, it's sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of the single parameter. The description adds value by noting that service_id comes from list_services, reinforcing the parameter's source.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Reboot') and the specific resource ('service (cloud VM or legacy VPS)'), and distinguishes from sibling tools like stop_service, start_service, destroy_service.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies the required scope (services:write) and that it's a plain write with no billing impact or destructiveness. It also instructs to get the service_id from list_services. However, it doesn't explicitly contrast with alternatives like start_service or stop_service, which would clarify when to use reboot.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redeem_voucherA
Redeem a credit voucher / promo code, adding credit to the account balance. Requires scope billing:write. Plain write — not gated (it grants credit; no money leaves the account). code is the voucher code (1-64 chars).
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The voucher / promo code. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description fully discloses it's a write operation, requires scope, and is safe (grants credit only). Could add idempotency or limits, but adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentence description, front-loaded with purpose, then scope and safety. Every sentence adds value. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Single parameter, no output schema. Description covers behavior, scope, and safety sufficiently. Could include return value or error cases, but not critical for simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%. Description repeats code length constraint already in schema, adding no new meaning. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool redeems a credit voucher/promo code and adds credit to account balance. It distinguishes from siblings as the only tool for redemption.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Specifies required scope (billing:write) and clarifies it's a plain write that grants credit (no money leaves). No explicit when-not or alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_domainA
Register a new domain name. Requires scope domains:write. SPENDS MONEY: places a register ORDER + invoice (WHMCS has no "register now" API) that the registrar fulfils once accepted/paid — the returned status starts Pending. Pass confirm:true only after the user has approved the cost. domain is the full name, e.g. example.com; years is the registration term (1-10, default 1); nameservers is an optional list of up to 5 custom nameserver hostnames (omit to use the registrar default); idProtection/dnsManagement are optional WHOIS-privacy / DNS-hosting add-ons (registrar-dependent). Check availability first with check_domain_availability and price with get_tld_pricing.
| Name | Required | Description | Default |
|---|---|---|---|
| years | No | Registration term in years (1-10, default 1). | |
| domain | Yes | The domain to register, e.g. example.com. | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. | |
| nameservers | No | Optional custom nameservers (up to 5); omit to use the registrar default. | |
| idProtection | No | Optional WHOIS-privacy add-on (registrar-dependent). | |
| dnsManagement | No | Optional DNS-hosting add-on (registrar-dependent). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description fully handles behavioral disclosure. It states the money-spending nature, order/invoice process, initial Pending status, and confirm flag requirement. Provides rich transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single paragraph is information-dense and effective, but lacks structural breaks for readability. Minor deduction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description explains return status and prerequisites. Covers all aspects: prerequisites, parameters, behavior, and confirm flag. Very complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds extra context: explains domain format, years default, nameservers limit, and add-ons. Adds value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Register a new domain name' with specific verb+resource. It distinguishes from sibling tools like check_domain_availability and get_tld_pricing by referencing them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to check availability with check_domain_availability and price with get_tld_pricing first. Also explains when to set confirm:true, providing clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reinstall_serviceADestructive
Reinstall (rebuild from scratch) a service — works on BOTH a cloud VM (Nova UUID service_id) and a legacy VPS (numeric service_id). Requires scope services:write. IRREVERSIBLE: wipes the current disk and reinstalls the OS image; the service keeps its IP (and, for a cloud VM, keeps a one-time consolePassword in the response only when no password was supplied). Requires imageId, a curated OS template/image slug (see list_os_templates / list_images / get_service os-templates). password and sshPublicKey are optional (sshPublicKey only applies to a cloud VM). You MUST pass confirm:true, and only after the user has explicitly approved the rebuild and understands the data loss. service_id from list_services. SECURITY: the response may include a one-time consolePassword root credential (cloud VM only, returned when no password was supplied). Treat it as a secret: do NOT echo it back to the user or store it, unless the user explicitly asks for it.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. | |
| imageId | Yes | OS template/image slug (see list_os_templates or list_images). | |
| password | No | Optional root password for the rebuilt server (8–128 chars). Never echoed or logged. | |
| service_id | Yes | Service ID from list_services. | |
| sshPublicKey | No | Optional inline SSH public key to install for root (cloud VM only). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description fully discloses behavioral traits beyond the destructiveHint annotation: it is irreversible, wipes disk and reinstalls OS, retains IP, may return a one-time consolePassword (must be treated as secret). It also notes sshPublicKey only applies to cloud VM and password is never echoed/logged. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is thorough but somewhat lengthy, though well-structured with front-loaded action, then requirements, then security notes. Every sentence adds value, but could be slightly tighter. Score 4 for being informative without excessive verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description adequately explains the one-time consolePassword response behavior and all parameter details. It covers required and optional parameters, confirm flag, and security considerations, making it complete for a destructive reinstall tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description adds significant value: explains imageId as a curated OS template slug, confirms password/sshPublicKey optional, specifies confirm must be explicitly approved by user, and adds security caveats (password not echoed, one-time consolePassword).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: 'Reinstall (rebuild from scratch) a service'. It specifies the resource (service) and action (reinstall/rebuild), and distinguishes from sibling tools like stop, reboot, deploy, and destroy by emphasizing full OS reinstall with data loss.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: requires scope services:write, instructs to get service_id from list_services and imageId from list_os_templates/list_images, and mandates confirm:true only after user approval. It warns about irreversibility but does not explicitly state when not to use or list alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
release_reserved_ipADestructive
Release (permanently delete) a reserved public IP. Requires scope services:write. IRREVERSIBLE: the floating IP is deleted and billing stops. Pass confirm:true only after the user has explicitly approved. id comes from list_reserved_ips.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Reserved IP id from list_reserved_ips. | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description goes beyond destructiveHint annotation by clarifying operation is irreversible, billing stops, and requires explicit confirmation. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, front-loaded with core action, no redundant information. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all essentials: action, scope, irreversibility, parameter usage, and source of id. With no output schema, no expectation for return value details. Complete for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already describes both parameters (100% coverage), but description adds valuable context: id source from list_reserved_ips and emphasis on user approval for confirm. Adds meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'release (permanently delete)' and resource 'reserved public IP', distinguishing it from siblings like reserve_ip, attach_reserved_ip, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states required scope 'services:write', instructs to get id from list_reserved_ips, and mandates user approval before passing confirm:true. Provides clear when-to-use and prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_load_balancer_memberADestructive
Remove a member from a load balancer pool. Requires scope services:write. IRREVERSIBLE: the member stops receiving traffic immediately. Pass confirm:true only after the user has explicitly approved. id comes from list_load_balancers; memberId comes from list_load_balancer_members.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Load balancer id from list_load_balancers. | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. | |
| memberId | Yes | Member id from list_load_balancer_members. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true. Description adds key behavioral detail: 'IRREVERSIBLE: the member stops receiving traffic immediately' and confirms the scope requirement. Sufficiently transparent beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each essential: purpose, scope, irreversibility + confirmation, ID sources. No redundant or missing content. Front-loaded with action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter destructive tool with no output schema, the description covers all necessary context: action, prerequisites, behavior, confirmation requirement, and data dependencies. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with brief descriptions. The description adds value by clarifying the origin of id and memberId, and elaborating on the confirm parameter's role. Enhances understanding beyond schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Remove' + specific resource 'member from a load balancer pool'. Distinguishes from sibling tools like add_load_balancer_member and delete_load_balancer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states required scope (services:write), irreversibility, and the need for explicit user confirmation. Also specifies data sources for IDs. However, does not explicitly contrast with alternatives like 'delete_load_balancer'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_proxy_whitelisted_ipADestructive
Remove an IP address from a proxy service's whitelist. Requires scope services:write (proxy writes share the same scope as VM/k8s mutations — there is no proxy-specific scope). ISP proxy services only. IRREVERSIBLE: that address immediately loses IP-based access to the proxy. Pass confirm:true only after the user has explicitly approved. id comes from list_proxies; ip comes from get_proxy_auth.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Proxy service id from list_proxies (ISP only). | |
| ip | Yes | IPv4 or IPv6 address to remove from the whitelist (from get_proxy_auth). | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the destructiveHint annotation by labeling the operation as 'IRREVERSIBLE' and explaining the immediate loss of access. This helps the agent understand the impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise with five sentences that each convey important information. It is front-loaded with the main action and key constraints, though it could be slightly more compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with destructiveHint, the description covers all essential aspects: purpose, prerequisites, constraints, irreversibility, parameter sourcing, and usage instructions. It is fully adequate for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While the schema already describes each parameter with 100% coverage, the description adds sourcing information ('id comes from list_proxies; ip comes from get_proxy_auth') and explains the confirm parameter's purpose, providing additional value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove an IP address from a proxy service's whitelist') with a specific verb and resource. It effectively distinguishes this tool from its sibling 'add_proxy_whitelisted_ip' by focusing on removal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context including required scope, service type constraint (ISP proxy only), and explicit instruction to pass confirm:true only after user approval. However, it does not explicitly mention alternative tools or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_cluster_poolA
Rename a worker node pool of a managed Kubernetes cluster. Requires scope services:write. The rename adds a new pool and removes the old one, which rolls (replaces) the pool's worker nodes. name is the new pool name (lowercase letters/digits/hyphens, start with a letter, max 15). Plain write — not gated. service_id from list_services; pool is the current pool name from list_cluster_pools.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | New node-pool name (lowercase letters/digits/hyphens, start with a letter, max 15). | |
| pool | Yes | Current node-pool name from list_cluster_pools. | |
| service_id | Yes | Managed-Kubernetes service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden. It discloses that the rename is destructive (replaces nodes) and requires a specific scope. This provides useful behavioral insight beyond the action itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loading the purpose and then providing effect and parameter guidance. Every sentence is necessary and concise, with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter tool with no output schema, the description explains the rename process and parameter sources. It could mention whether the operation is synchronous or what the response looks like, but overall it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers all parameters (100% coverage). The description adds value by specifying how to obtain the parameter values (service_id from list_services, pool from list_cluster_pools) and reinforcing the naming constraints for name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Rename a worker node pool'. It identifies the specific verb and resource, distinguishing it from sibling tools like add_cluster_pool, update_cluster_pool, and delete_cluster_pool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides when to use (renaming a pool) and prerequisites (scope services:write, service_id from list_services, pool from list_cluster_pools). It also explains the effect (adds new pool, removes old, replaces nodes). However, it does not explicitly state when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
renew_domainA
Renew an owned domain. Requires scope domains:write. SPENDS MONEY: creates a CHARGED renewal order + invoice (paid from credit or via the invoice flow, same as register/transfer) and optionally flips auto-renew in the same call; the registrar fulfils once the order is paid — the returned status starts Pending. Pass confirm:true only after the user has approved the cost. id comes from list_domains; years is the renewal term (1-10, default 1); autoRenew optionally sets the domain's auto-renew flag.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Domain id from list_domains. | |
| years | No | Renewal term in years (1-10, default 1). | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. | |
| autoRenew | No | Optionally set the domain's auto-renew flag in the same call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool SPENDS MONEY, creates a CHARGED renewal order + invoice, is irreversible after confirm, and returns a Pending status. It also covers the registrar fulfillment flow. While it doesn't mention rate limits or auth scope explicitly in the description (it is present), the behavioral traits are well-covered for a money-spending operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph, front-loaded with the core action. It packs all necessary information without fluff. However, it could be slightly improved by structuring parameter details (e.g., as separate sentences or bullet points) for easier scanning. Overall efficient and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but the description mentions the initial status (Pending). It covers the full lifecycle: required scope, cost, confirm flag, order/invoice creation, auto-renew option, parameter constraints. It doesn't explain post-renewal actions (e.g., checking order status) but that is likely handled by other tools. For a renewal tool, the information is sufficient and complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds context beyond schema: explains the confirm flag's purpose (only after user approval), id source (list_domains), years default 1, and autoRenew's effect. It integrates parameter meaning with the overall flow, adding value over the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Renew an owned domain' with a specific verb and resource. It distinguishes from siblings like register_domain, transfer_domain, and set_domain_nameservers by detailing the renewal workflow (creates charged order, invoice, optionally sets auto-renew). Purpose is unambiguous and well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: 'Pass confirm:true only after the user has approved the cost.' It also explains that id comes from list_domains and that the operation spends money. While it doesn't directly list alternatives, the context of sibling tools and the clear renewal focus provide sufficient direction. Could be improved by explicitly stating when not to use (e.g., for initial registration).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
renew_proxyA
Renew a proxy service for another billing term. Requires scope services:write (proxy writes share the same scope as VM/k8s mutations — there is no proxy-specific scope). SPENDS MONEY: creates a CHARGED renewal invoice, settled from credit/bonus when available. periods (1, 3, 6, or 12 — default 1) selects how many terms to prolong in one call; bulk periods carry a discount (3 -> 5%, 6 -> 10%, 12 -> 20%). Pass confirm:true only after the user has approved the cost. id comes from list_proxies.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Proxy service id from list_proxies. | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. | |
| periods | No | How many billing periods to extend (bulk discounts: 3 -> 5%, 6 -> 10%, 12 -> 20%). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses financial impact: creates a charged renewal invoice, settled from credit/bonus, and bulk discounts. With no annotations, this adequately warns about mutation and cost, though lacks details on failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Efficiently packed with critical info in a few sentences. Front-loaded with purpose, then scope, then financial warning, then parameter details. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers key aspects: required scope, source for id, financial impact, confirm guard, bulk options. No output schema but return value not essential for action tool. Could mention result type, but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters described in schema (100% coverage). Description adds value: id source, confirm semantics, periods with discount details, enhancing schema info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'renew' and resource 'proxy service' for another billing term. Distinguishes from siblings like renew_service, order_proxy, set_proxy_auto_renew, and cancel_proxy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly mentions required scope (services:write), source for id (list_proxies), and when to use confirm flag (only after user approval). Does not explicitly contrast with alternatives but provides sufficient context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
renew_serviceA
Ensure a renewal invoice exists for a service (renew the current term). Requires scope services:write. SPENDS MONEY: generates/settles a renewal invoice from your balance. Pass confirm:true only after the user has explicitly approved. service_id from list_services.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. | |
| service_id | Yes | Service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the operation spends money by generating/settling a renewal invoice from balance. No annotations provided, so description fully carries the burden. Highlights irreversibility via user approval requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences. First states purpose, second covers scope and side effect, third gives parameter guidance. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all critical aspects for a financial operation: purpose, prerequisites (scope, user approval, source of ID), and side effect (spends money). No output schema needed; description is self-sufficient for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good descriptions for both parameters. Description adds minimal value beyond schema (e.g., reinforcing confirm warning and service_id source). Does not introduce new parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it ensures a renewal invoice exists for a service and renews the current term. It distinguishes from sibling tools like set_service_autorenew by explicitly mentioning invoice generation and spending.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states required scope (services:write), user approval prerequisite, and source of service_id (list_services). Tells when to pass confirm:true and implies not to use without explicit approval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reply_ticketA
Post a reply to an existing support ticket. Requires scope tickets:write. Plain write — not gated. id comes from list_tickets; body is the reply text (1-50000). attachments is an optional list (max 5) of {name, data} where data is base64-encoded file content.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ticket id from list_tickets. | |
| body | Yes | The reply body. | |
| attachments | No | Optional file uploads (max 5). Each item is {name, data} where data is base64-encoded content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses auth scope (tickets:write), writes are not gated, and constrains body length, attachment count, and base64 encoding. Does not mention idempotency or rate limits, but sufficient for a simple write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with no redundant words. Each sentence adds unique information: purpose, scope, parameter sources, and constraints. Front-loaded with verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers usage, parameters, constraints, and auth. Missing output description (no output schema) – agent doesn't know what the response contains. For a simple reply action, this is a minor gap; overall fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds value by explaining id comes from list_tickets, restating body length constraints, and detailing attachments format (max 5, base64). Clarifies intent beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (post a reply) and resource (existing support ticket). Distinguishes from sibling tools like create_ticket and close_ticket by focusing on replying to an existing ticket. Includes scope requirement and input source guidance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit scope requirement and notes id comes from list_tickets. Implicitly distinguishes from create_ticket by specifying 'existing' ticket, but lacks explicit 'do not use for creating tickets' statement. Clear enough for most agents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_proxy_replacementA
Request an IP replacement for a proxy service, consuming the included monthly allowance (1/month). Requires scope services:write (proxy writes share the same scope as VM/k8s mutations — there is no proxy-specific scope). ISP proxy services only. Opens a support ticket that fulfils the swap; check get_proxy_replacements first to confirm an allowance is available this month — the request is refused server-side once the allowance is used. Plain write — not gated. id comes from list_proxies.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Proxy service id from list_proxies (ISP only). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description fully discloses behavior: consumes allowance, requires specific scope, opens a support ticket, and is a plain write. It mentions server-side refusal if allowance depleted. Minor gap: does not describe immediate response (e.g., returns ticket ID?).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise yet packs all necessary info. It is front-loaded with main action and consumption. Each sentence adds value. Could be structured with clearer separation of prerequisites and post-conditions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is fairly complete: covers allowance, prerequisite check, scope, ISP restriction, and server-side behavior. Missing only immediate response details, but acceptable given simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (id) with schema description matching the description. Schema coverage is 100%, so description adds minimal extra meaning. The description echoes that id comes from list_proxies, but that's already in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool requests an IP replacement for a proxy service, consuming a monthly allowance. It distinguishes from siblings by specifying the need to check get_proxy_replacements first and mentions ISP-only limitation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use (request IP replacement), when not to use (if no allowance remains), what to check first (get_proxy_replacements), and scope requirement (services:write). Also indicates it's ISP proxy only and that the request fails server-side if allowance used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resend_email_verificationA
Resend the account's email-address verification email. Requires scope account:write. Plain write — not gated. Takes no input (the target is the authenticated account); a no-op if the email is already verified. Returns { sent, reason? }.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses behavioral traits: write operation requiring scope, no-op condition, and return format. It does not mention rate limits or error cases, but for a simple resend tool this is sufficiently transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: three sentences covering purpose, scope, behavior, and return. Every sentence earns its place without redundancy. Front-loaded with the key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, no output schema, and no annotations, the description covers all necessary context: what it does, prerequisites, no-op behavior, and return value. It is fully adequate for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero parameters and 100% coverage trivially. The description adds value by confirming no input and explaining the target is the authenticated account, meeting the baseline of 4 for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Resend' and the resource 'account's email-address verification email'. It is distinct from sibling tools, which are mostly get/list or other mutate operations, with no other email verification tool present.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies required scope ('account:write'), states it is a plain write action, and notes that it is a no-op if already verified. This provides clear when-to-use and when-not-to-use guidance, though it lacks explicit alternatives (e.g., check verification status via get_account).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reserve_ipA
Reserve a new static public IP (EUR 2/mo). Requires scope services:write. SPENDS MONEY: billed monthly until released. Optionally pass serverId to reserve AND attach it to that cloud VM in the same call. Pass confirm:true only after the user has approved the cost. Manage it afterward with attach_reserved_ip / detach_reserved_ip / release_reserved_ip.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. | |
| serverId | No | Optional cloud VM id to attach the new IP to immediately. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses behavioral traits: it spends money billed monthly, requires a specific scope, the confirm flag acts as a safety mechanism, and the optional serverId triggers an attach. It also notes irreversibility implied by the confirm requirement. No contradictions with annotations exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at three sentences. It is front-loaded with the core purpose and cost, then details optional behavior, and ends with confirmation instructions and management pointers. No redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 parameters, no output schema, and no annotations, the description is comprehensive. It covers purpose, cost, prerequisites, optional attach, confirmation semantics, and post-creation management. It provides enough context for an agent to use the tool correctly without additional information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both parameters described). The description adds meaning beyond schema by clarifying confirm's role in cost approval and serverId's purpose for immediate attachment. This provides richer semantic context than the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Reserve a new static public IP (EUR 2/mo)', specifying the action (reserve), resource (static public IP), and cost. It distinguishes from sibling tools by naming attach_reserved_ip, detach_reserved_ip, and release_reserved_ip for management after creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: requires scope services:write, option to attach immediately via serverId, and mandatory confirm=true to execute. It excludes usage by stating confirm must only be true after user approval, and points to sibling tools for ongoing management.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reset_service_passwordADestructive
Reset the root password on a RUNNING cloud VM (Nova UUID service_id) live via qemu-guest-agent — the VM keeps running and keeps its data (this is NOT a reboot/rebuild). Requires scope services:write. CLOUD VM ONLY: a legacy VPS (numeric service_id) is rejected — use set_service_password for that. You must supply the new password (8–128 chars); the value is a secret and is never echoed back or logged. The previous credential stops working immediately, so pass confirm:true only after the user has explicitly approved. service_id from list_services.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. | |
| password | Yes | New root password (8–128 chars). Never echoed or logged. | |
| service_id | Yes | Service ID from list_services (cloud VM / Nova UUID only). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only set destructiveHint=true. The description adds critical behavioral details: live operation via qemu-guest-agent, no reboot/data loss, immediate credential invalidation, secret value handling, and the confirm safety check. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is front-loaded with key action and constraints. All sentences are informative, but slightly verbose. Could be trimmed without losing meaning, but still effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 required params and no output schema, the description covers all contextual needs: when to use, scope requirements, parameter semantics, side effects, and safety confirmations. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters. The description adds value beyond schema: password is secret/never echoed, confirm requires explicit approval, and service_id source (list_services). Minor improvement would be noting the exact UUID format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (reset root password), the target (running cloud VM via qemu-guest-agent), and distinguishes from sibling tool set_service_password for legacy VPS. It also clarifies it's not a reboot/rebuild, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (cloud VM with Nova UUID) and when not to (legacy VPS, directing to set_service_password). Provides prerequisites like 'services:write' scope and warns about the confirm flag requirement for irreversible actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resize_serviceA
Resize a cloud VM service to a new flavor (target plan PUBLIC SKU, e.g. c-4vcpu-8gb). Requires scope services:write. Runs asynchronously (returns 202) and MAY CHANGE the price of the service. Pass confirm:true only after the user has approved the new size and its cost. service_id from list_services.
| Name | Required | Description | Default |
|---|---|---|---|
| flavor | Yes | Target plan public SKU (e.g. c-4vcpu-8gb). | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. | |
| service_id | Yes | Service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description covers key behaviors: async (202), price change, and confirmation requirement. Mentions irreversibility. Could add info on service availability during resize, but sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with front-loaded purpose. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, auth, async, pricing, confirmation, and source of service_id. Lacks response format and how to get available flavors, but acceptable given sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3). Description adds significant context for confirm: explains how to use it and consequences, exceeding schema. Also provides flavor example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool resizes a cloud VM to a new flavor, with a specific verb and resource. Distinguishes from sibling tools like stop_service and reboot_service.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear guidelines: requires scope services:write, runs asynchronously, may change price, and requires explicit user approval via confirm:true. Mentions service_id from list_services. Lacks explicit 'do not use if' scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revoke_cluster_kubeconfigADestructive
Revoke a LONG-LIVED kubeconfig credential of a managed Kubernetes cluster by its credential id — deletes the underlying ServiceAccount so the token stops working immediately. Requires scope services:write. DESTRUCTIVE and irreversible: any automation still using that credential breaks at once. Pass confirm:true only after the user has explicitly approved. service_id and credential_id both come from list_cluster_kubeconfigs.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. | |
| service_id | Yes | Managed-Kubernetes service ID from list_services. | |
| credential_id | Yes | Long-lived credential id from list_cluster_kubeconfigs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds significant context beyond the destructiveHint annotation: explains the internal mechanism (deletes ServiceAccount), the immediate effect (token stops working), and the irreversible impact ('breaks any automation'). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two succinct sentences with no filler. Front-loads the critical action and key constraints. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage, parameter sources, safety, and destructive nature. Lacks mention of return value or success indicators, but given the destructive action, this is acceptable. Complete enough for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds the source for service_id and credential_id (from list_cluster_kubeconfigs) and reinforces the confirm safety requirement, but does not add new semantic details beyond what the schema descriptions already provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Revoke'), the resource ('LONG-LIVED kubeconfig credential'), and the mechanism ('deletes the underlying ServiceAccount'), distinguishing it from sibling tools like create_cluster_kubeconfig or list_cluster_kubeconfigs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit context: requires scope services:write, is irreversible, requires user approval via confirm:true, and specifies that parameter values come from list_cluster_kubeconfigs. Does not explicitly state when not to use, but gives sufficient guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_billing_alertA
Set (or update) the month-to-date spend alert. Requires scope billing:write. Plain write — not gated (no money moves; it only configures a notification). thresholdCents is the alert threshold in cents (minimum 100 = €1); enabled optionally turns the alert on/off (defaults on). See get_billing_alert for the current state.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | No | Turn the alert on/off (defaults on). | |
| thresholdCents | Yes | Alert threshold in cents (min 100 = €1). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses that it only configures a notification, no money moves, and mentions default behavior for enabled parameter. No destructive implications, which is appropriate for a config write.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded purpose, concise. Every sentence adds necessary context without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-param tool with no output schema, description covers purpose, authorization, parameter details, defaults, and suggests companion tool. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; description repeats schema info (threshold min, default for enabled) without adding new meaning. Meets baseline for high coverage but provides no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear statement: 'Set (or update) the month-to-date spend alert.' Includes scope requirement and distinguishes from a read operation by referencing get_billing_alert.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states required scope (billing:write) and clarifies it is a non-financial configuration ('plain write - not gated'). Suggests checking current state via get_billing_alert, but does not explicitly contrast with delete_billing_alert sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_cluster_scaleA
Set the autoscaling bounds (minimum/maximum worker count) of the FIRST node pool of a managed Kubernetes cluster. Requires scope services:write. minimum >= 1 and maximum >= minimum (enforced server-side). Adjusts an existing pool — it does not add one (use add_cluster_pool for that). service_id comes from list_services (a cloud-k8s service); read current sizing with get_cluster_scale.
| Name | Required | Description | Default |
|---|---|---|---|
| maximum | Yes | Maximum worker count (must be >= minimum). | |
| minimum | Yes | Minimum worker count for the first pool (>= 1). | |
| service_id | Yes | Managed-Kubernetes service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the required scope ('Requires scope services:write'), server-side constraints ('minimum >= 1 and maximum >= minimum'), and that it adjusts an existing pool. It could mention whether it overrides or merges with existing settings, but the action 'Set' implies override.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences with no wasted words. It front-loads the action, then covers requirements, constraints, and differentiation from a sibling tool. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with three required parameters and no output schema, the description covers all necessary information: what it does, prerequisites, server-side constraints, and how it relates to other tools (list_services, get_cluster_scale, add_cluster_pool). It is complete for agent selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds context beyond the schema by explaining the purpose of each parameter in the tool's action: 'minimum' and 'maximum' are worker counts for the first pool, 'service_id' comes from list_services. It reinforces constraints already in schema but adds meaning in context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Set' and the resource 'autoscaling bounds (minimum/maximum worker count) of the FIRST node pool of a managed Kubernetes cluster.' It distinguishes from the sibling tool 'add_cluster_pool' by explicitly noting that it adjusts an existing pool rather than adding one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: 'Adjusts an existing pool — it does not add one (use add_cluster_pool for that).' It also specifies prerequisites: 'service_id comes from list_services' and how to read current sizing with 'get_cluster_scale'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_domain_contactsA
Update an owned domain's registrant WHOIS contact (registrar-dependent). Requires scope domains:write. Plain write — not gated. id comes from list_domains; contact carries only the fields to change (all optional) — firstName, lastName, organisation, email, phone, address1, address2, city, state, postcode, country (2-letter ISO code).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Domain id from list_domains. | |
| contact | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses write nature, not gated, and registrar dependency. Omits response format or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, but dense with information. Front-loaded with action, then details. Slightly wordy but efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Mutation tool with nested object and no output schema. Description covers purpose, constraints, parameter origin, and update semantics. Lacks return value info but adequate for tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 50% provides descriptions for id and country. Description adds that contact fields are optional and only those needing change should be sent, clarifying partial update semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states updates registrant WHOIS contact for owned domain. Distinguished from sibling tools like set_domain_nameservers by specifying 'registrant WHOIS contact'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions required scope (domains:write) and source of id (list_domains). Does not explicitly state when to use vs alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_domain_dnsA
Replace an owned domain's DNS host records (registrar-dependent — returns a not-implemented error when the registrar exposes no DNS API). Requires scope domains:write. Plain write — not gated. id comes from list_domains. records is the full replacement set (up to 100); each record needs hostname (e.g. '@', 'www', 'mail'), type (A/AAAA/CNAME/MX/TXT/NS/SRV/CAA), and address (the record value/target); priority is used for MX/SRV records.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Domain id from list_domains. | |
| records | Yes | Full replacement set of DNS host records. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states 'Plain write — not gated', declares the full replacement nature of the 'records' parameter (up to 100), and explains the error condition. It omits mention of return value, but the operation is straightforward.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loading the main action. It uses three dense sentences, each providing essential information: operation, prerequisite, error condition, scope requirement, and parameter details. No redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, no output schema), the description covers the function, prerequisites, error case, and parameter details. It could explicitly state the destructive nature (full replacement) but that is implied. Overall, it is thorough for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds significant value: explains that 'id' comes from list_domains, describes 'records' as a full replacement set (up to 100), details required fields (hostname, type, address), and specifies 'priority' usage for MX/SRV. This goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Replace an owned domain's DNS host records', specifying the action and resource. It distinguishes itself from siblings like 'get_domain_dns' (read) and 'set_domain_nameservers' (different record type). The mention of registrar dependency adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes the required scope 'domains:write', specifies that 'id comes from list_domains', and warns about the 'not-implemented error' for registrars without a DNS API. It does not explicitly contrast with alternatives like partial updates, 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.
set_domain_nameserversA
Replace an owned domain's nameservers (2-5). Requires scope domains:write. Plain write — not gated. id comes from list_domains. For a single-action alternative see manage_domain with action:'nameservers'.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Domain id from list_domains. | |
| nameservers | Yes | Replacement nameservers (2-5 required). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description discloses mutation ('Replace'), scope requirement, and plain write nature. Could be more explicit about full replacement vs partial, but 'replace' is clear enough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four concise sentences front-loaded with action, covering all key points (function, constraints, source, alternative) without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple tool with no output schema, description covers purpose, constraints, source, and alternative. Slightly missing success indication, but adequate for agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions. Description adds context (owned domain, scope) but does not significantly enhance parameter meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Replace an owned domain's nameservers', which is a specific verb-resource combination. Sibling mentions like get_domain_nameservers and manage_domain provide differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use (replace nameservers), where to get id (list_domains), required scope (domains:write), and provides an alternative single-action tool (manage_domain with action:'nameservers').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_proxy_auth_methodA
Switch a proxy service's authentication method (ip / password / combined). Requires scope services:write (proxy writes share the same scope as VM/k8s mutations — there is no proxy-specific scope). ISP proxy services only. Plain write — not gated. Switching to 'ip' relies on add_proxy_whitelisted_ip entries instead of a username/password. Use get_proxy_auth first to see the current method. id comes from list_proxies.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Proxy service id from list_proxies (ISP only). | |
| method | Yes | The authentication method to switch to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description discloses important behavioral traits: it is a plain write (not gated), and explains the dependency on whitelisted IPs for 'ip' method. It does not mention reversibility or side effects, but the disclosed info is substantial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat lengthy but every sentence is informative and contributes to understanding. It is front-loaded with the core purpose and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 2 parameters and no output schema, the description comprehensively covers prerequisites (scope, service type), usage pattern (check current method first), and behavioral notes. It references related tools (get_proxy_auth, list_proxies, add_proxy_whitelisted_ip) for full context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value by noting that 'id' comes from list_proxies and that the 'method' enum has implications (e.g., 'ip' uses whitelisted IPs). This goes beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Switch'), the resource ('proxy service's authentication method'), and the valid values ('ip / password / combined'). It distinguishes itself from sibling tools like set_proxy_credentials and add_proxy_whitelisted_ip by specifying the context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage guidance: requires scope 'services:write', applies only to ISP proxy services, and advises using get_proxy_auth first. Also notes that switching to 'ip' relies on add_proxy_whitelisted_ip entries, giving a clear when-to-use and when-not-to.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_proxy_auto_renewA
Turn a proxy service's auto-renew on or off. Requires scope services:write (proxy writes share the same scope as VM/k8s mutations — there is no proxy-specific scope). ISP proxy services only. Plain write — not gated (no charge happens now; a future auto-renewal will still spend money on its own schedule). id comes from list_proxies.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Proxy service id from list_proxies (ISP only). | |
| enabled | Yes | true enables auto-renew; false disables it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description compensates by disclosing that it is a plain write with no immediate charge, that future auto-renewal will spend money, and the scope requirement. It does not cover all possible side effects (e.g., idempotency), but provides sufficient behavioral insight for a simple toggle.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 sentences) and front-loaded with the core purpose. Every sentence adds value: action, scope, constraints, cost implication, and parameter source. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description adequately covers purpose, constraints, scope, and cost. It explains the source of 'id' and the behavior of 'enabled'. Missing error conditions or validation details, but sufficient for a low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and schema descriptions already convey the parameter meanings. The description adds minimal value beyond restating 'id comes from list_proxies' and the toggle behavior, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Turn a proxy service's auto-renew on or off' and specifies 'ISP proxy services only', distinguishing it from sibling tool 'set_service_autorenew' for regular services. It also mentions the source of the 'id' parameter, making the action unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states scope requirement ('services:write'), proxy type constraint ('ISP proxy services only'), and cost implications ('not gated, no charge happens now'). It implicitly advises against using for non-ISP proxies or regular services, though does not explicitly mention alternatives like 'set_service_autorenew'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_proxy_credentialsA
Set a proxy service's username/password credentials. Requires scope services:write (proxy writes share the same scope as VM/k8s mutations — there is no proxy-specific scope). ISP proxy services only. username and password are secrets (1-64 chars each) — never echo them back to the user or log them; the response does not return them either. Plain write — not gated (see set_proxy_auth_method to also flip the auth method itself). id comes from list_proxies.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Proxy service id from list_proxies (ISP only). | |
| password | Yes | New proxy password (1-64 chars). Never echoed or logged. | |
| username | Yes | New proxy username (1-64 chars). Never echoed or logged. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that username and password are secrets (1-64 chars), never echo back or log them, and the response does not return them. It mentions the scope requirement and that it's a plain write (not gated). Missing details on idempotency or error handling, but sufficient for a credential setter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (3 sentences) and front-loaded with the core purpose. Every sentence adds value: scope, secret handling, sibling tool reference. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema or annotations, the description covers all essential aspects: purpose, scope, parameter secrets, constraints, and relationship to sibling tool. It is complete for a credential-setting tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions, but the description adds context: secrets, never echoed/logged, 1-64 char constraints, and id from list_proxies. This improves the agent's understanding beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Set a proxy service's username/password credentials', using a specific verb and resource. It also specifies 'ISP proxy services only' and distinguishes from sibling set_proxy_auth_method, which sets the auth method itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear when-to-use guidance, including scope requirement (services:write), a note that proxy writes share scope with VM/k8s mutations, and an explicit alternative (set_proxy_auth_method) for flipping the auth method. It also mentions that id comes from list_proxies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_service_autorenewA
Toggle auto-renew (renew automatically from account balance) for a service. Requires scope services:write. Plain write — no immediate charge, not destructive. service_id from list_services.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | true to enable auto-renew, false to disable. | |
| service_id | Yes | Service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that it's a 'plain write' with no immediate charge and not destructive, but omits details like response format, side effects if already enabled, or rate limits. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the core purpose, the second adds authorization and behavioral notes. No fluff, front-loaded, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple toggle with no output schema, the description adequately covers purpose and authorization. However, it does not explain what the caller should expect after invocation (e.g., success/failure indication) or prerequisites beyond the service_id. Adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema descriptions are already clear. The description repeats 'service_id from list_services' which adds no new meaning. Baseline 3 is appropriate as the schema handles parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool toggles auto-renew for a service, distinguishing it from sibling tools like get_service_autorenew (read) and other service actions (stop, reboot). The verb 'Toggle' combined with 'auto-renew' is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions required scope 'services:write' and indicates the service_id comes from list_services, providing clear context. While it does not explicitly state when not to use it, the purpose is self-evident and alternatives are implied by sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_service_hostnameA
Set the hostname of a service (cloud VM or legacy VPS). Requires scope services:write. The service_id comes from list_services; hostname is a valid DNS hostname (1–253 chars). Plain write — no billing impact, not destructive.
| Name | Required | Description | Default |
|---|---|---|---|
| hostname | Yes | New hostname (valid DNS name, 1–253 chars). | |
| service_id | Yes | Service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations were provided, so the description carries full burden. It discloses it's a 'plain write' with 'no billing impact' and 'not destructive', but does not detail potential side effects like service restart or downtime, which would be helpful for a mutation operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core action, and every sentence adds necessary context. There is no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple set operation with two fully described parameters and no output schema, the description covers purpose, prerequisites, and behavioral impact. It could mention whether a restart occurs, but overall it's sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and already describes both parameters adequately. The description repeats information from the schema without adding new details, so it does not enhance parameter understanding beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action ('Set the hostname of a service') and specifies the resource type ('cloud VM or legacy VPS'). It clearly differentiates from sibling tools like stop_service or reinstall_service by focusing on hostname modification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the required scope ('services:write') and provides context for parameter sources ('service_id comes from list_services; hostname is a valid DNS hostname'). It implies usage is straightforward but does not explicitly state when not to use this tool or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_service_passwordADestructive
Set the root/administrator password of a VPS service. Requires scope services:write. The password value is a secret — it is never echoed back or logged. DESTRUCTIVE: overwrites the current credential and may reboot the guest. Pass confirm:true only after the user has explicitly approved. service_id from list_services.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. | |
| password | Yes | New root/admin password (8–128 chars). Never echoed or logged. | |
| service_id | Yes | Service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=true. The description adds meaningful context: password is a secret never echoed or logged, the operation overwrites credentials and may reboot the guest. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 sentences), front-loaded with purpose, and each sentence adds essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity (3 required params, destructive action, reboot), the description covers security, destructive nature, approval requirement, and input source, making it complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds minimal extra meaning beyond the schema: it reiterates the secret nature of password and the source of service_id, but the schema already covers these well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it sets the root/administrator password of a VPS service, using specific verb and resource. While it doesn't explicitly differentiate from the sibling reset_service_password, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions required scope (services:write), instructs to pass confirm:true only after user approval, and references service_id from list_services. However, it does not contrast with reset_service_password or other alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_serviceA
Power on a service (cloud VM or legacy VPS). Requires scope services:write. Plain write — no billing impact, not destructive. service_id from list_services.
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | Service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must fully disclose behavioral traits. It covers authorization, safety (non-destructive), and billing impact, which is good. However, it omits potential scenarios like idempotency (what if already running?), async vs sync, or error conditions. This leaves some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences clearly state the action, prerequisites, and safety profile without unnecessary words. It earned its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward power-on action with one parameter and no output schema, the description covers purpose, prerequisite, and behavioral traits (no billing, not destructive). It lacks specification of return value or async behavior, but given the tool's simplicity, this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not add significant semantic value beyond the schema's 'Service ID from list_services.' Both say the same thing. With full schema coverage, a score of 3 is appropriate for adequate but not enhanced parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Power on') and resource ('service'), explicitly clarifying the scope (cloud VM or legacy VPS). It directly contrasts with siblings like stop_service and reboot_service, providing clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes prerequisites (scope and source of service_id) and clarifies the non-destructive, no-billing nature, guiding appropriate use. However, it does not explicitly list alternatives or exclude cases where other tools might be more appropriate (e.g., if you need to force start). Nonetheless, the context is sufficient for most agents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_serviceA
Power off a service (cloud VM or legacy VPS). Requires scope services:write. Plain write — no billing impact, not destructive. service_id from list_services.
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | Service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite lacking annotations, the description discloses key behavioral traits: it is a plain write operation with no billing impact and not destructive. This information helps the agent understand the tool's safety profile and side effects, though it could elaborate on reversibility or async behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using four short sentences to cover purpose, authorization, behavioral traits, and parameter origin. Every sentence adds unique value, and the information is front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple power-off tool with a single parameter and no output schema, the description covers the essential aspects: what it does, required permissions, behavioral safeguards, and parameter source. It could optionally mention the return value or asynchronous nature, but it is largely complete given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage of the single parameter (service_id) with its description. The tool's description merely restates 'service_id from list_services,' adding no new meaning or context beyond what the schema offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (power off) and the target resource (service, specifying cloud VM or legacy VPS). It distinguishes from siblings like reboot_service and start_service by emphasizing it is a power-off operation, and clarifies it is not destructive, setting it apart from destroy_service or cancel_service.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions required scope (services:write) and indicates the parameter source (service_id from list_services). It implicitly guides when to use the tool (to power off a service) but does not explicitly contrast with alternative tools like stop versus restart or shutdown scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_domainA
Transfer a domain in from another registrar. Requires scope domains:write. SPENDS MONEY: places a transfer-in ORDER + invoice using the EPP/auth code from the losing registrar; the registrar fulfils once accepted/paid — the returned status starts Pending. Pass confirm:true only after the user has approved the cost. domain is the full name, e.g. example.com; epp is the EPP/auth code from the losing registrar; years is the term to add on transfer (1-10, default 1); nameservers is an optional list of up to 5 custom nameserver hostnames; idProtection is an optional WHOIS-privacy add-on (registrar-dependent).
| Name | Required | Description | Default |
|---|---|---|---|
| epp | Yes | EPP / auth code from the losing registrar. | |
| years | No | Term to add on transfer (1-10, default 1). | |
| domain | Yes | The domain to transfer in, e.g. example.com. | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. | |
| nameservers | No | Optional custom nameservers (up to 5). | |
| idProtection | No | Optional WHOIS-privacy add-on (registrar-dependent). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavioral traits: 'SPENDS MONEY: places a transfer-in ORDER + invoice...' and notes the returned status starts Pending. It also warns about irreversibility and the need for user approval. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first sentence states purpose and scope, second sentence covers workflow and parameters. Front-loaded, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 params, 3 required, financial implications, no output schema), the description is very complete. It explains the entire transfer process, cost, required approval, and each parameter's role. Mentions return status, providing some output context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the confirm parameter's behavior (omit/false refuses and makes no API call), domain as full name, epp as code from losing registrar, and notes for nameservers and idProtection. This goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Transfer a domain in from another registrar.' It uses a specific verb and resource, distinguishing it from sibling tools like register_domain or renew_domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly requires 'scope domains:write' and instructs to pass 'confirm:true only after the user has approved the cost.' This provides clear when-to-use and when-not-to-use guidance, and implies alternatives for other domain operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unmount_service_isoA
Unmount the currently mounted ISO from a VPS. Requires scope services:write. Plain write — not destructive. service_id from list_services.
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | Service ID from list_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It discloses that the operation is a 'plain write — not destructive' and declares the required scope. This adds behavioral context beyond the action itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each providing distinct and necessary information. No redundant words and front-loaded with the primary action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 param, no output schema, no annotations), the description covers the essential: action, scope, non-destructiveness, and parameter source. Minor gap: no indication of response or return state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, service_id, is described as 'Service ID from list_services,' which adds the important hint of where to obtain the value. Schema coverage is 100%, so the description supplements the schema well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Unmount the currently mounted ISO from a VPS.' It uses a specific verb and resource, and the sibling tool 'mount_service_iso' confirms the inverse relationship.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context: requires 'services:write' scope, notes it is non-destructive, and instructs to get service_id from list_services. Lacks explicit when-not or alternatives, but sibling context implies proper usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_accountA
Update the account's billing / contact profile. Requires scope account:write. Plain write — not gated. Every field is optional; only the fields you pass are changed. firstName/lastName (max 64), companyName (max 128), address (max 128), city (max 64), postcode (max 16), country (2-letter ISO code), phone (max 32), taxId/VAT (max 32), language (en|ro), and email (the billing/contact email — the login email is NOT changed here). Note: the account currency is NOT settable via this endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City. | |
| No | Billing / contact email (not the login email). | ||
| phone | No | Phone number. | |
| taxId | No | Tax / VAT identification number. | |
| address | No | Street address. | |
| country | No | 2-letter ISO country code. | |
| language | No | Preferred language. | |
| lastName | No | Family name. | |
| postcode | No | Postal / ZIP code. | |
| firstName | No | Given name. | |
| companyName | No | Company / organisation name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: it is a write operation, requires a scope, lists all field constraints (max lengths, ISO code, enum values), and notes important limitations (login email unchanged, currency not settable). This is thorough and transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (5 sentences) and well-structured, with the action and scope upfront, followed by field details and caveats. Every sentence provides value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 optional parameters and no output schema, the description adequately covers input and behavior. It mentions that the account currency is not settable, which is a notable constraint. It could optionally mention the response format, but this is not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by summarizing fields in a readable format and providing key context (e.g., distinguishing billing/contact email from login email, clarifying that taxId is optional, and noting the language enum). This goes beyond the schema's brief descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool updates the account's billing/contact profile, specifying the resource (account) and action (update). It distinguishes itself by noting what is NOT updated (login email, currency), and the sibling list includes many read-only or different update tools, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly requires scope account:write, calls it a plain write not gated, and states that every field is optional. This gives clear context for when to use the tool. It does not explicitly mention alternatives, but the specific purpose and sibling list provide enough differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_cluster_poolA
Edit an existing worker node pool of a managed Kubernetes cluster — any of its autoscaling bounds (minimum/maximum), machineType, or per-node volumeSizeGb (10-1000 GiB). Requires scope services:write. Send only the fields you want to change; omitted fields are left as-is. Plain write — not gated. service_id from list_services; pool is the pool name from list_cluster_pools.
| Name | Required | Description | Default |
|---|---|---|---|
| pool | Yes | Node-pool name from list_cluster_pools. | |
| maximum | No | New maximum worker count (>= minimum, <= 16). | |
| minimum | No | New minimum worker count. | |
| service_id | Yes | Managed-Kubernetes service ID from list_services. | |
| machineType | No | New worker machine type / flavor (resolved server-side). | |
| volumeSizeGb | No | New per-node root-volume size in GiB. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses required scope (services:write), partial update behavior, and constraints (volumeSizeGb range). However, it does not mention potential side effects like rolling updates or downtime, nor the impact on running nodes. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences that are front-loaded with the purpose, then authorization, then prerequisites. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers input, prerequisites, and partial update behavior. However, since there is no output schema, the description should ideally mention what is returned (e.g., updated pool or success status). This omission leaves a gap for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the baseline is 3. The description adds little new semantic meaning beyond reinforcing the source of service_id and pool. The note about omitted fields being left as-is is more about usage than parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Edit' and the resource 'existing worker node pool of a managed Kubernetes cluster', listing specific modifiable attributes (autoscaling bounds, machineType, volumeSizeGb). It is distinct from sibling tools like add_cluster_pool, delete_cluster_pool, rename_cluster_pool, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use (editing a pool) and includes prerequisites: 'service_id from list_services; pool is the pool name from list_cluster_pools.' Also advises partial update behavior. Does not explicitly state when not to use or mention alternatives, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upgrade_serviceA
Create an upgrade order moving a service to a new product/plan. Requires scope services:write. SPENDS MONEY: this places a real upgrade order and bills the difference. Pass confirm:true only after the user has approved the change and its cost (preview with list_upgrade_options). service_id from list_services.
| Name | Required | Description | Default |
|---|---|---|---|
| cycle | Yes | Billing cycle for the upgraded product (e.g. monthly, annually). | |
| confirm | Yes | Set to true to execute. This operation spends from your account balance and/or is irreversible; only pass true after the user has explicitly approved. Omit or false → the tool refuses and makes no API call. | |
| service_id | Yes | Service ID from list_services. | |
| newProductId | Yes | Target product id (see list_upgrade_options). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description covers all behavioral transparency. It discloses that the tool spends real money, bills the difference, and requires specific scope. Also explains that confirm=false makes no API call, adding critical safety context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: purpose, behavioral warning with scope, and usage guidance. No wasted words; front-loaded information. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description doesn't specify return format. However, it adequately covers inputs, prerequisites, and behavioral traits. Could mention response (e.g., order details) but is sufficient for an upgrade action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already covers all 4 parameters with descriptions (100% coverage). Description adds value by explaining confirm requires user approval, service_id comes from list_services, and newProductId from list_upgrade_options, enriching parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool creates an upgrade order moving a service to a new product/plan, with specific verb and resource. It also links to sibling tool list_upgrade_options for preview, differentiating it from other service-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to pass confirm:true only after user approval and preview with list_upgrade_options, and mentions required scope services:write. Also warns about spending money, providing clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
156 tool updates
v0.1.2- First observed
add_account_ssh_key - First observed
add_cluster_pool - First observed
add_firewall_rule - First observed
add_load_balancer_member - First observed
add_proxy_whitelisted_ip - First observed
add_service_ssh_key - First observed
add_service_ssh_key_to_library - First observed
apply_service_ssh_key_library - First observed
attach_firewall - First observed
attach_network_vm - First observed
attach_reserved_ip - First observed
attach_volume - First observed
cancel_proxy - First observed
cancel_service - First observed
check_domain_availability - First observed
close_ticket - First observed
create_affiliate_link - First observed
create_cluster_kubeconfig - First observed
create_firewall - First observed
create_load_balancer - First observed
create_network - First observed
create_proxy_request - First observed
create_service_backup - First observed
create_ticket - First observed
create_volume - First observed
delete_account_ssh_key - First observed
delete_billing_alert - First observed
delete_cluster_pool - First observed
delete_firewall - First observed
delete_firewall_rule - First observed
delete_load_balancer - First observed
delete_network - First observed
delete_proxy_request - First observed
delete_volume - First observed
deploy_service - First observed
destroy_service - First observed
detach_firewall - First observed
detach_reserved_ip - First observed
detach_volume - First observed
download_cluster_kubeconfig - First observed
enable_cluster_ha - First observed
get_account - First observed
get_account_activity - First observed
get_account_limits - First observed
get_affiliate - First observed
get_billing_alert - First observed
get_billing_campaign - First observed
get_billing_state - First observed
get_bonus_balance - First observed
get_bonus_ledger - First observed
get_catalog_plan - First observed
get_cluster_kubeconfig - First observed
get_cluster_scale - First observed
get_credit_balance - First observed
get_credit_ledger - First observed
get_domain - First observed
get_domain_contacts - First observed
get_domain_dns - First observed
get_domain_management - First observed
get_domain_nameservers - First observed
get_firewall - First observed
get_invoice - First observed
get_invoice_pay_preview - First observed
get_load_balancer - First observed
get_network - First observed
get_order - First observed
get_product_details - First observed
get_provisioning_state - First observed
get_proxy - First observed
get_proxy_auth - First observed
get_proxy_catalog - First observed
get_proxy_list - First observed
get_proxy_replacements - First observed
get_proxy_request_list - First observed
get_service - First observed
get_service_autorenew - First observed
get_service_iso - First observed
get_service_metrics - First observed
get_ticket - First observed
get_tld_pricing - First observed
get_two_factor_status - First observed
get_volume - First observed
list_account_clients - First observed
list_account_contacts - First observed
list_account_emails - First observed
list_account_ssh_keys - First observed
list_backups - First observed
list_catalog_listings - First observed
list_catalog_products - First observed
list_cluster_kubeconfigs - First observed
list_cluster_pools - First observed
list_domains - First observed
list_firewalls - First observed
list_gb_residential_countries - First observed
list_gb_rotation_intervals - First observed
list_images - First observed
list_invoices - First observed
list_kubernetes_versions - First observed
list_load_balancer_members - First observed
list_load_balancers - First observed
list_networks - First observed
list_orders - First observed
list_os_templates - First observed
list_payment_methods - First observed
list_prepurchase_os_templates - First observed
list_proxies - First observed
list_proxy_requests - First observed
list_regions - First observed
list_reserved_ips - First observed
list_service_ssh_key_library - First observed
list_services - First observed
list_ssh_keys - First observed
list_ticket_departments - First observed
list_tickets - First observed
list_upgrade_options - First observed
list_volumes - First observed
manage_account_contact - First observed
manage_domain - First observed
mount_service_iso - First observed
order_proxy - First observed
reboot_service - First observed
redeem_voucher - First observed
register_domain - First observed
reinstall_service - First observed
release_reserved_ip - First observed
remove_load_balancer_member - First observed
remove_proxy_whitelisted_ip - First observed
rename_cluster_pool - First observed
renew_domain - First observed
renew_proxy - First observed
renew_service - First observed
reply_ticket - First observed
request_proxy_replacement - First observed
resend_email_verification - First observed
reserve_ip - First observed
reset_service_password - First observed
resize_service - First observed
revoke_cluster_kubeconfig - First observed
set_billing_alert - First observed
set_cluster_scale - First observed
set_domain_contacts - First observed
set_domain_dns - First observed
set_domain_nameservers - First observed
set_proxy_auth_method - First observed
set_proxy_auto_renew - First observed
set_proxy_credentials - First observed
set_service_autorenew - First observed
set_service_hostname - First observed
set_service_password - First observed
start_service - First observed
stop_service - First observed
transfer_domain - First observed
unmount_service_iso - First observed
update_account - First observed
update_cluster_pool - First observed
upgrade_service
TDQS
The tools have highly detailed descriptions that clearly distinguish between similar resources (e.g., list_ssh_keys vs list_account_ssh_keys). However, the sheer volume of 156 tools makes it difficult for an agent to quickly differentiate without reading every description.
Most tools follow a consistent verb_noun snake_case pattern (e.g., list_services, create_volume). A few tools like manage_domain are more generic, and some use set_ vs update_ inconsistently, but the overall pattern is clear.
156 tools is far beyond the typical well-scoped range of 3-15. While the server covers a broad API surface, this granularity makes it unwieldy; many tools could be combined or parameterized.
The tools cover nearly all aspects of the RareCloud platform: account, billing, services, domains, proxies, networking, firewalls, and tickets. A few write operations are intentionally omitted, but the surface is comprehensive for common workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Read-only MCP server for turva.dev, an agent-readiness audit and advisory service.
Public, read-only MCP server for FarmNeural company facts, packages, and capabilities.
Read-only MCP server exposing a user ORANO library to their own AI agent.
1- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Related MCP Servers
AlicenseAqualityCmaintenanceRead-only MCP server that allows AI assistants to query and monitor KVM Fleet devices, audit logs, and console sessions through the official REST API.5191MIT- AlicenseNot gradedqualityCmaintenanceA read-only MCP server for AI coding agents to inspect repositories, audit code quality, route engineering skills, and plan safe issue/PR workflows.1MIT
- AlicenseAqualityDmaintenanceA read-only MCP server for Akamai Cloud (Linode) that lets users ask plain-language questions about their account, including inventory, pricing, GPU availability, and account limits.37Apache 2.0
- AlicenseNot gradedqualityCmaintenanceA read-only MCP server that lets an LLM inspect an AWS account — list EC2 instances, S3 buckets, IAM users, and cost — with a structural guarantee against any mutations.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/RareCloudio/rarecloud-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server