Skip to main content
Glama

๐Ÿ”— BoostU Combell MCP

The open-source Combell MCP server. Manage your domains, DNS, hosting, mail and databases from Claude and other AI assistants, in plain language. ๐Ÿค–

CI npm version node Model Context Protocol tools License: MIT Made by BoostU Hosted edition

Prefer not to self-host?

Use the managed, always-on edition at combell-mcp.boostu.be: paste your Combell API key once, magic-link login, and a one-click connector for Claude. Free during the preview, paid plans after.

This repository is the open-source MCP server itself: run it locally with your own Combell API key. The hosted edition adds multi-tenant authentication, a dashboard, usage insights and managed credential storage on top of the same server.


๐Ÿ’ก What is this?

combell-mcp-boostu is a Model Context Protocol server that exposes the Combell API v2 to AI assistants such as Claude Desktop, Claude Code, Cursor and Windsurf. It provides 74 tools spanning the public Combell surface: accounts and servicepacks, domain names, DNS records, Linux and Windows hosting, scheduled tasks, SSH keys, mailboxes and mail zones, MySQL databases and users, and SSL certificates. Point your AI at it and manage your hosting through natural language.

Self-host (this repo)

Managed (boostu.be)

Price

Free, MIT-licensed

Free preview, then paid

Setup

Create an API key in My Combell, run via npx

Copy one connector URL into Claude

Credentials

You manage .env and the IP whitelist

Encrypted at rest, one IP to whitelist

Best for

Developers and self-hosters

Non-technical teams


Related MCP server: whm-mcp-server

๐Ÿ”Œ How it works

flowchart LR
    U["๐Ÿง‘ You"] -->|"plain language"| C["๐Ÿค– Claude / AI assistant"]
    C <-->|"MCP ยท stdio"| S["๐Ÿ”— combell-mcp-boostu"]
    S <-->|"HMAC-signed REST"| T["๐ŸŒ Combell API v2"]

You ask Claude in plain language. Claude calls this MCP server, which signs every request with your Combell API key and secret (HMAC-SHA256) and runs the matching API call. Your data stays at Combell; this server only brokers the calls.

Use the outline button at the top-right of this file to jump to any section.


โœจ Highlights

  • ๐ŸŒ Domains: list and inspect domain names, change name servers, toggle renewal, register and transfer

  • ๐Ÿงญ DNS: list, create, update and delete A, AAAA, CNAME, MX, TXT, SRV, CAA, ALIAS and TLSA records

  • ๐Ÿง Linux hosting: PHP version, memory limit and APCu, GZIP, FTP, subsites, host headers, HTTP/2, Let's Encrypt and HTTPS redirect

  • โฐ Scheduled tasks and SSH: manage cron jobs and SSH keys per hosting

  • โœ‰๏ธ Mail: mailboxes (create, password, auto-reply, auto-forward), aliases, catch-all, anti-spam and SMTP domains

  • ๐Ÿ—„๏ธ MySQL: databases and users, including rights and passwords

  • ๐Ÿ”’ SSL: certificates and certificate requests, with the domain validation steps

  • ๐Ÿ” HMAC authentication done right: lowercased method and path, uppercase percent-encoding, nonce and timestamp, MD5 body hash

  • ๐Ÿงฉ Selectable tool groups: load only the groups you need via COMBELL_TOOLS to keep your assistant's context lean

  • ๐Ÿท๏ธ Tool annotations: every tool declares whether it is read-only, idempotent or destructive, so hosts can ask for confirmation where it matters


๐Ÿš€ Quick Start

Run without installing

npx combell-mcp-boostu

Global install

npm i -g combell-mcp-boostu
combell-mcp-boostu

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "combell": {
      "command": "npx",
      "args": ["-y", "combell-mcp-boostu"],
      "env": {
        "COMBELL_API_KEY": "your-api-key",
        "COMBELL_API_SECRET": "your-api-secret"
      }
    }
  }
}

Claude Code

Add to your project's .mcp.json or ~/.claude/mcp.json:

{
  "mcpServers": {
    "combell": {
      "command": "npx",
      "args": ["-y", "combell-mcp-boostu"],
      "env": {
        "COMBELL_API_KEY": "your-api-key",
        "COMBELL_API_SECRET": "your-api-secret"
      }
    }
  }
}

Or from the terminal:

claude mcp add combell -e COMBELL_API_KEY=your-api-key -e COMBELL_API_SECRET=your-api-secret -- npx -y combell-mcp-boostu

Cursor

Add to .cursor/mcp.json in your project root (or the global ~/.cursor/mcp.json):

{
  "mcpServers": {
    "combell": {
      "command": "npx",
      "args": ["-y", "combell-mcp-boostu"],
      "env": {
        "COMBELL_API_KEY": "your-api-key",
        "COMBELL_API_SECRET": "your-api-secret"
      }
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "combell": {
      "command": "npx",
      "args": ["-y", "combell-mcp-boostu"],
      "env": {
        "COMBELL_API_KEY": "your-api-key",
        "COMBELL_API_SECRET": "your-api-secret"
      }
    }
  }
}

๐Ÿ” Authentication

You need two env vars: COMBELL_API_KEY and COMBELL_API_SECRET. Generate them in My Combell > API (the API section of your Combell control panel).

Combell restricts API access per IP address: add the public IP address (or range) of the machine that runs this server to the whitelist in the same API section, otherwise every call answers 401.

The API uses HMAC authentication; there is no OAuth flow and no token rotation, so nothing has to be persisted between restarts. For the details (how the signature is built, IP whitelisting, troubleshooting) see docs/AUTHENTICATION.md.


โš™๏ธ Configuration

Environment variables

Name

Required

Description

COMBELL_API_KEY

Yes

API key from My Combell > API

COMBELL_API_SECRET

Yes

API secret from My Combell > API; used only to sign requests, never sent

COMBELL_TOOLS

No

Comma-separated list of tool group keys to enable. When unset, all 12 groups are loaded.

COMBELL_API_BASE_URL

No

Override the API base URL (default https://api.combell.com)

Selective tool groups

Use COMBELL_TOOLS to limit which tool groups are registered. This is useful when you want to keep the assistant's tool list small or restrict access to certain areas of your hosting.

COMBELL_TOOLS=domains,dns,mailboxes

Full list of group keys:

Key

What it covers

accounts

Accounts (instances of a servicepack) and servicepacks

provisioning

Provisioning jobs (background operations)

domains

Domain names: detail, register, transfer, name servers, renewal

dns

DNS records

linuxHostings

Linux hosting: PHP, GZIP, FTP, subsites, host headers, HTTP/2, SSL settings

scheduledTasks

Cron jobs on Linux hostings

ssh

SSH access and keys

windowsHostings

Windows hosting (read-only)

mailboxes

Mailboxes

mailZones

Aliases, catch-all, anti-spam, SMTP domains

mysql

MySQL databases and users

ssl

SSL certificates and certificate requests


๐Ÿงฐ Available Tools

Tools that purchase something or cannot be undone say so in their description (SIDE EFFECT:) and carry the destructiveHint annotation.

Accounts and servicepacks

Tool

Description

combell_accounts_list

List accounts, filtered by asset type or identifier

combell_accounts_get

Get an account with its servicepack and addons

combell_accounts_create

Create an account for a servicepack (orders a product; returns a provisioning job)

combell_servicepacks_list

List the servicepacks on your reseller contract

Provisioning jobs

Tool

Description

combell_provisioning_jobs_get

Poll a provisioning job until it reports finished, with links to the created resources

Domains

Tool

Description

combell_domains_list

List domain names with expiration and renewal state

combell_domains_get

Domain detail: name servers, registrant, can_toggle_renew

combell_domains_register

Register an available domain name (purchase)

combell_domains_transfer

Transfer a domain name with its authorization code (purchase)

combell_domains_set_nameservers

Replace the name servers of a domain

combell_domains_set_renew

Enable or disable automatic renewal

DNS records

Tool

Description

combell_dns_records_list

List records, optionally filtered by type, name or SRV service

combell_dns_records_get

Get a record by id

combell_dns_records_create

Create a record (A, AAAA, CNAME, MX, TXT, SRV, CAA, ALIAS, TLSA)

combell_dns_records_update

Update a record: reads it first and changes only the fields you pass

combell_dns_records_delete

Delete a record

Linux hostings

Tool

Description

combell_linux_hostings_list

List Linux hostings

combell_linux_hostings_get

Hosting detail: usage, IP, FTP/SSH, PHP version, sites, databases

combell_linux_hostings_php_versions

Available PHP versions

combell_linux_hostings_set_php_version

Change the PHP version

combell_linux_hostings_set_php_memory_limit

Set the PHP memory limit

combell_linux_hostings_set_php_apcu

Enable/disable APCu and set its size

combell_linux_hostings_set_gzip

Enable/disable GZIP compression

combell_linux_hostings_set_ftp

Enable/disable FTP

combell_linux_hostings_subsites_create

Create a subsite

combell_linux_hostings_subsites_delete

Delete a subsite

combell_linux_hostings_host_headers_create

Add a host header (alias domain) to a site

combell_linux_hostings_set_http2

Enable/disable HTTP/2 on a site

combell_linux_hostings_set_letsencrypt

Enable/disable Let's Encrypt for a hostname

combell_linux_hostings_set_https_redirect

Enable/disable the HTTP to HTTPS redirect for a hostname

Scheduled tasks

Tool

Description

combell_scheduled_tasks_list

List the cron jobs of a hosting

combell_scheduled_tasks_get

Get a cron job

combell_scheduled_tasks_create

Add a cron job

combell_scheduled_tasks_update

Update a cron job (reads it first, changes only the passed fields)

combell_scheduled_tasks_delete

Delete a cron job

SSH

Tool

Description

combell_ssh_keys_list_all

All SSH keys on the account with the hostings they are attached to

combell_ssh_set_enabled

Enable/disable SSH on a hosting

combell_ssh_keys_list

Keys attached to a hosting

combell_ssh_keys_add

Attach a public key to a hosting

combell_ssh_keys_delete

Remove a key (by fingerprint) from a hosting

Windows hostings

Tool

Description

combell_windows_hostings_list

List Windows hostings

combell_windows_hostings_get

Hosting detail: usage, IP, application pool, sites and bindings

Mailboxes

Tool

Description

combell_mailboxes_list

List the mailboxes of a domain

combell_mailboxes_get

Mailbox detail with auto-reply and auto-forward

combell_mailboxes_create

Create a mailbox on a mail zone account

combell_mailboxes_delete

Delete a mailbox

combell_mailboxes_set_password

Change a mailbox password

combell_mailboxes_set_auto_reply

Configure the out-of-office reply

combell_mailboxes_set_auto_forward

Configure forwarding

Mail zones

Tool

Description

combell_mail_zones_get

Mail zone: accounts, aliases, anti-spam, catch-all, SMTP domains

combell_mail_zones_catch_all_create

Set a catch-all address

combell_mail_zones_catch_all_delete

Remove a catch-all address

combell_mail_zones_set_anti_spam

Set the anti-spam level

combell_mail_zones_aliases_create

Create an alias

combell_mail_zones_aliases_update

Replace the destinations of an alias

combell_mail_zones_aliases_delete

Delete an alias

combell_mail_zones_smtp_domains_create

Add an extra SMTP domain

combell_mail_zones_smtp_domains_update

Enable/disable an SMTP domain

combell_mail_zones_smtp_domains_delete

Remove an SMTP domain

MySQL

Tool

Description

combell_mysql_databases_list

List databases

combell_mysql_databases_get

Database detail

combell_mysql_databases_create

Create a database on an account (provisioning job)

combell_mysql_databases_delete

Delete a database

combell_mysql_users_list

List the users of a database

combell_mysql_users_create

Add a (read-only) user

combell_mysql_users_set_status

Enable/disable a user

combell_mysql_users_set_password

Change a user's password

combell_mysql_users_delete

Delete a read-only user

SSL

Tool

Description

combell_ssl_certificates_list

List paid SSL certificates

combell_ssl_certificates_get

Certificate detail by SHA-1 fingerprint

combell_ssl_certificate_requests_list

List pending certificate requests

combell_ssl_certificate_requests_get

Request detail with the domain validations to complete; reports completed/gone

combell_ssl_certificate_requests_create

Order a certificate from a CSR (purchase)

combell_ssl_certificate_requests_verify

Ask Combell to verify the domain validations


๐Ÿ’ฌ Example Prompts

Which of my domains expire in the next 60 days, and is auto-renew on for each of them?
Show me the DNS records of example.be and add a TXT record on @ with "v=spf1 include:_spf.google.com ~all".
Point www.example.be to 203.0.113.10 and lower the TTL to 300.
Which PHP version does example.be run on? Switch it to the latest 8.x that's available.
Enable Let's Encrypt and the HTTPS redirect for www.example.be.
Create a mailbox jobs@example.be with a strong password and forward it to hr@example.be, keeping a copy.
Set an out-of-office on info@example.be until next Monday.
Add a cron job on example.be that runs /www/cron.php every 15 minutes.
List the MySQL databases on my account and add a read-only user "reports" to the shop database.
Add my SSH public key to the hosting of example.be and enable SSH.

๐Ÿณ Docker

docker run --rm \
  -e COMBELL_API_KEY=your-api-key \
  -e COMBELL_API_SECRET=your-api-secret \
  ghcr.io/boostuagency/combell-mcp-boostu

Remember to whitelist the container's outbound IP address in My Combell > API.


๐Ÿ› ๏ธ Development

# Clone and install
git clone https://github.com/boostuagency/combell-mcp-boostu.git
cd combell-mcp-boostu
npm install

# Run in development mode (no build step required)
npm run dev

# Build
npm run build

# Run tests
npm test

# Type-check only
npm run typecheck

๐Ÿ—๏ธ Architecture

The core of the server is createServer in src/server.ts, which is transport-agnostic: it takes a CombellClient and registers the enabled tool groups, returning a plain McpServer instance that the entry point (src/index.ts) wires to a StdioServerTransport. Tool logic lives in per-domain modules under src/tools/, each using the defineTool helper in src/lib/tool.ts (shared try / respond / catch / respondError and annotations). Paths are built with the p tagged template (src/lib/path.ts) so every path parameter is percent-encoded. HMAC signing lives in src/api/auth.ts and the HTTP client with paging, rate-limit and error handling in src/api/client.ts. A hosted, multi-tenant edition of this server is available at combell-mcp.boostu.be.


โœ… Endpoint Verification

The tools are implemented from the official OpenAPI description of the Combell API v2 and exercised with unit tests against a fake client (exact paths, query strings and bodies). They have not yet been run against a live reseller account from this repository; if an endpoint misbehaves the call fails with the API's own error code and text rather than silently misbehaving. The full endpoint manifest is in docs/combell-endpoints.md. The certificate download endpoint (GET /sslcertificates/{fingerprint}/download) is deliberately not exposed: it returns a password-protected PFX binary that does not belong in an AI conversation.


๐Ÿค Contributing

See CONTRIBUTING.md for development setup, commit conventions, and instructions on adding new tool groups.


๐Ÿ”’ Security

Report security vulnerabilities to nick@boostu.be; do not open a public issue. See SECURITY.md for the disclosure policy. Never commit .env files to version control.


โš–๏ธ Disclaimer

This is an independent, community-built integration. It is not affiliated with, endorsed by, or sponsored by Combell NV. "Combell" is a trademark of Combell NV and is used here only to describe compatibility. You are responsible for your own use of the Combell API under Combell's terms, including any products the API orders on your behalf.


๐Ÿ“„ License

MIT License. Copyright (c) 2026 BoostU Agency. See NOTICE.

Available Tools

74 tools
combell_accounts_createA

Create a new account for a servicepack. SIDE EFFECT: this orders a product on your Combell reseller contract and may incur costs. Provisioning runs in the background: the result contains a provisioning job id to poll with combell_provisioning_jobs_get.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYesIdentifier for the account; a domain name for hosting accounts
ftp_passwordNoFTP password when the servicepack contains hosting: 8-20 characters, letters and digits, at least one digit and one letter, no spaces, none of * โ‚ฌ $ & + } { ' " \
servicepack_idYesServicepack id (see combell_servicepacks_list)

TDQS

A4.5/5.0
Behavior5/5

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

The description goes well beyond the annotations by disclosing a meaningful side effect: ordering a product and potentially incurring costs. It also explains that provisioning is asynchronous and that the result contains a provisioning job id. These behavioral details are crucial and not available elsewhere.

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

Conciseness5/5

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

The description is three short sentences with no filler. It front-loads the core purpose, then delivers the most important caveats: side-effect cost and background provisioning. Every sentence earns its place.

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

Completeness5/5

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

For a create operation with a complete input schematons, the description covers the essential operational context: the side effect, async provisioning, and how to track progress. The return format is adequately implied by mentioning the provisioning job id, and there is no output schema to explain.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add parameter-level meaning beyond what the schema provides, but it does not need to because each parameter already has a clear description.

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

Purpose5/5

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

The description states a specific verb and resource: 'Create a new account for a servicepack.' It clearly distinguishes this from sibling tools like combell_accounts_list and combell_accounts_get by describing the creation action, so an agent can tell it apart without opening the schema.

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

Usage Guidelines4/5

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

The description gives clear context about when to use the tool, notably warning that it orders a product and may incur costs animation. It also directs the agent to poll combell_provisioning_jobs_get afterward. It does not explicitly name exclusion or alternative conditions, but no sibling tool provides the same create-account behavior.

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

combell_accounts_getA
Read-onlyIdempotent

Get a Combell account by id, including its servicepack and addons.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idYesThe account id

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, which covers safety. The description adds useful behavioral context by detailing what the response includes (servicepack and addons), which is especially valuable given there is no output schema.

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

Conciseness5/5

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

The description is a single, focused sentence with no filler. It front-loads the primary action and resource, then adds the key detail about included servicepack and addons.

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

Completeness4/5

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

For a simple read-only retrieval by ID, the description is largely complete: it names the input, the resource, and notable response contents. It does not describe not-found behavior or exact response formatting, but with no output schema and low complexity, this is a minor gap.

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

Parameters3/5

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

The input schema provides 100% coverage, including a description of account_id as 'The account id'. The tool description only repeats the same concept ('by id') and does not add extra meaning such as format, source, or validation requirements.

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

Purpose5/5

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

The description uses a specific verb ('Get') and resource ('Combell account'), and clearly scopes the operation to retrieval by ID. It also states the returned content includes servicepack and addons, which distinguishes it from combell_accounts_list.

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

Usage Guidelines4/5

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

The description clearly indicates this tool is for fetching a single account when its ID is known. It does not explicitly name alternatives or exclusions, but the 'by id' phrasing provides clear context relative to the sibling list and create tools.

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

combell_accounts_listA
Read-onlyIdempotent

List Combell accounts (instances of a servicepack such as a hosting package). Filter by asset type or by identifier (usually the domain name).

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of items to skip (default 0)
takeNoNumber of items to return (the API may return fewer)
asset_typeNoOnly accounts containing this asset type
identifierNoOnly accounts matching this identifier (e.g. a domain name)

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds that the tool lists accounts and supports filtering, which is behavioral, but it does not explain pagination behavior, return shape, or any edge considerations. This is a useful but minimal addition over annotations.

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

Conciseness5/5

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

The description is a single sentence that front-loads the action and resource, then defines the key term and names the filter options. Every phrase earns its place with no redundancy or filler.

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

Completeness4/5

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

Given the annotations cover safety and the schema fully documents parameters, the description provides enough domain context to invoke the tool: it defines what an account is and how to filter. It does not contrast itself with sibling list tools or describe the response format, but for a read-only list operation these are minor gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are already documented. The description mentions filtering by asset type and identifier, mirroring the schema; the 'usually the domain name' hint adds little beyond the schema's own 'e.g. a domain name' example. This is baseline value with no substantial extra parameter semantics.

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

Purpose5/5

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

Description clearly states a specific verb and resource: 'List Combell accounts'. The parenthetical defining accounts as 'instances of a servicepack' and the mention of filters by asset type or identifier distinguish it from related tools like accounts_get or domain_list, 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.

Usage Guidelines3/5

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

The description implies when to use the tool: for listing accounts with optional filters. However, it does not explicitly mention alternatives or when-not-to-use cases, such as using combell_accounts_get for a single account or servicepacks_list for servicepacks themselves. Usage is clear but not explicitly contrasted with siblings.

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

combell_dns_records_createA

Create a DNS record on a domain. For A/AAAA/CNAME/MX/TXT/CAA/ALIAS/TLSA pass record_name + content (+ priority for MX); for SRV pass service, protocol, priority, weight, port and target. SIDE EFFECT: changes live DNS.

ParametersJSON Schema
NameRequiredDescriptionDefault
ttlNoTime to live in seconds, 60-86400 (default 3600)
portNoSRV only: port of the service
typeYesRecord type
targetNoSRV only: canonical host name providing the service
weightNoSRV only: weight among records with the same priority (higher is more preferred)
contentNoRecord data: A = IPv4, AAAA = IPv6, CNAME/ALIAS = canonical name, MX = mail host FQDN, TXT = free text, CAA = '{flag} {tag} {ca}' (e.g. '0 issue letsencrypt.org'), TLSA = '{usage} {selector} {matching_type} {data}'. Not used for SRV.
serviceNoSRV only: symbolic service name, e.g. '_sip'
priorityNoPriority for MX or SRV records (lower is more preferred)
protocolNoSRV only: protocol, e.g. 'TCP' or 'UDP'
domain_nameYes
record_nameNoHost name / alias the record defines. Empty or '@' means the domain itself; 'www' means www.<domain>. Not used for SRV records; for TLSA use e.g. '_25._tcp'.

TDQS

A4.4/5.0
Behavior4/5

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

The description explicitly warns 'SIDE EFFECT: changes live DNS', which is valuable behavioral disclosure beyond the annotations (which only say destructiveHint=false). It does not contradict annotations. It could add more context (e.g., propagation time, whether existing records are replaced), but the side-effect warning is a strong addition.

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

Conciseness5/5

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

Two sentences, front-loaded with the action and resource, then a compact parameter-routing rule, then the side-effect warning. Every sentence earns its place; no fluff.

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

Completeness4/5

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

For a create tool with 11 parameters and no output schema, the description covers the essential routing logic and side-effect warning. It doesn't describe the response/return value, but with no output schema and a create operation, that is a minor gap. The parameter grouping is sufficient for an agent to construct a valid call.

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

Parameters4/5

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

Schema coverage is 91%, so the schema already documents most parameters. The description adds value by grouping parameters by record type and clarifying the SRV-specific set, which the schema does not do. It also clarifies record_name semantics ('Empty or '@' means the domain itself') beyond the schema's description.

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

Purpose5/5

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

The description states a specific verb ('Create') and resource ('DNS record on a domain'), and immediately distinguishes the two record-type families (standard vs SRV) with their required parameters. It clearly differentiates from siblings like combell_dns_records_update and combell_dns_records_delete by naming the create action.

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

Usage Guidelines4/5

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

The description gives explicit usage guidance for which parameters to pass for which record types ('For A/AAAA/CNAME/MX/TXT/CAA/ALIAS/TLSA pass record_name + content (+ priority for MX); for SRV pass service, protocol, priority, weight, port and target'). It does not explicitly name alternatives or when-not-to-use, but the sibling set makes the create-vs-update-vs-delete distinction obvious.

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

combell_dns_records_deleteA
Destructive

Delete a DNS record from a domain. SIDE EFFECT: irreversible and changes live DNS.

ParametersJSON Schema
NameRequiredDescriptionDefault
record_idYesThe record id to delete
domain_nameYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark this as destructive and non-idempotent, and the description adds valuable context beyond that: the operation is irreversible and changes live DNS. This explicitly warns the agent about real-world impact, which is genuinely useful behavioral information.

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

Conciseness5/5

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

The description is a single, direct sentence followed by a compact side-effect warning. It is front-loaded with the action and resource, contains no filler, and every word adds meaning.

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

Completeness4/5

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

For a simple two-parameter delete operation with no output schema, the description covers the essential context: what is deleted, from where, and the irreversible live-DNS consequence. The only minor omission is an explicit note about response behavior, but that is not critical for this type of destructive tool.

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

Parameters3/5

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

The schema already documents record_id as 'The record id to delete,' but domain_name has no description in the schema. The tool description only says 'from a domain,' which indirectly clarifies that domain_name is the domain whose record should be deleted, but it does not fully compensate for the 50% schema coverage gap.

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

Purpose5/5

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

The description uses a specific verb ('Delete') and a clear resource ('a DNS record from a domain'), which precisely distinguishes this from sibling tools like combell_dns_records_create, update, list, and get. The side-effect warning also reinforces that this is the destructive removal operation.

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

Usage Guidelines3/5

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

The description clearly implies the tool is used when you need to remove a DNS record from a domain, but it does not explicitly state when to use it over alternatives such as combell_dns_records_create or combell_dns_records_update. The context is unambiguous, but no exclusions or alternative routing are provided.

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

combell_dns_records_getA
Read-onlyIdempotent

Get a single DNS record of a domain by record id.

ParametersJSON Schema
NameRequiredDescriptionDefault
record_idYesThe record id (see combell_dns_records_list)
domain_nameYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered and consistent with the word 'Get'. The description adds only the scoping detail that this returns a single record by ID; it does not describe the return format, error behavior for a missing record, or authentication requirements. Given the annotations carry the safety burden, this is adequate but adds no rich behavioral context beyond scoping.

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

Conciseness5/5

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

A single short sentence front-loads the verb and resource. No filler, no repetition of the tool name, and no extraneous detail โ€” every word earns its place.

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

Completeness4/5

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

For a simple 2-parameter read-only getter whose annotations cover the safety profile, the description is nearly sufficient: it states the scope and the selection criterion. The only real gap is the undocumented domain_name parameter, which would matter if the tool accepted multiple domain formats.

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

Parameters3/5

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

The schema documents record_id with a genuinely useful pointer to combell_dns_records_list for ID discovery, but domain_name is a bare string with no description in schema or description text. With schema coverage at exactly 50%, the description could have compensated for the undocumented domain_name but does not.

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

Purpose5/5

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

States a specific verb ('Get'), a specific resource ('DNS record of a domain'), and a precise selection criterion ('by record id'). The word 'single' clearly differentiates it from the sibling combell_dns_records_list, and the read semantics separate it from combell_dns_records_create/update/delete.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance appears in the description. The only usage signal is indirect: the record_id schema description says 'see combell_dns_records_list', which implies a list-then-get workflow, but the main description never names alternatives or exclusion conditions.

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

combell_dns_records_listA
Read-onlyIdempotent

List the DNS records of a domain. Filter by type (A, AAAA, CAA, CNAME, MX, TXT, SRV, ALIAS, TLSA); record_name and service filters only apply together with a type filter.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of items to skip (default 0)
takeNoNumber of items to return (the API may return fewer)
typeNoOnly records of this type
serviceNoOnly SRV records for this service (requires type=SRV)
domain_nameYesThe domain name, e.g. 'example.be'
record_nameNoOnly records with this name (requires type)

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description need not restate safety. It adds behavioral context about filter dependencies and implies a read-only list operation. It does not contradict annotations and provides useful additional constraint information.

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

Conciseness5/5

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

Two concise sentences with no redundancy. The core purpose is stated first, followed by the essential filter constraint. Every word adds value and the description is front-loaded.

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

Completeness4/5

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

For a list operation with pagination parameters (skip/take) already documented in the schema, the description covers the main functionality and filter constraints. It does not describe the return format, but no output schema exists and it's an implied list of DNS records. The tool is adequately specified for correct invocation.

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

Parameters4/5

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

Schema description coverage is 100%, so all parameters are already documented. The description adds extra meaning by clarifying that record_name and service are only effective when a type filter is present, which is not explicitly stated in the schema. This enhances parameter understanding beyond the schema.

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

Purpose4/5

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

The description clearly states the verb and resource ('List the DNS records of a domain') and enumerates the filter types. It implicitly distinguishes from the sibling get tool via the word 'list', but does not explicitly mention that get retrieves a single record. This is clear but not fully differentiated.

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

Usage Guidelines3/5

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

The description provides a specific usage constraint: 'record_name and service filters only apply together with a type filter.' However, it does not mention when to use this tool versus the sibling combell_dns_records_get, nor does it state any prerequisites or exclusions. The guidance is limited to a single filter dependency.

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

combell_dns_records_updateA
Idempotent

Update an existing DNS record. The current record is read first and only the fields you pass are changed, then the full record is written back. SRV service/protocol/port/target cannot be edited: delete and recreate instead. SIDE EFFECT: changes live DNS.

ParametersJSON Schema
NameRequiredDescriptionDefault
ttlNoTime to live in seconds, 60-86400 (default 3600)
portNoSRV only: port of the service
targetNoSRV only: canonical host name providing the service
weightNoSRV only: weight among records with the same priority (higher is more preferred)
contentNoRecord data: A = IPv4, AAAA = IPv6, CNAME/ALIAS = canonical name, MX = mail host FQDN, TXT = free text, CAA = '{flag} {tag} {ca}' (e.g. '0 issue letsencrypt.org'), TLSA = '{usage} {selector} {matching_type} {data}'. Not used for SRV.
serviceNoSRV only: symbolic service name, e.g. '_sip'
priorityNoPriority for MX or SRV records (lower is more preferred)
protocolNoSRV only: protocol, e.g. 'TCP' or 'UDP'
record_idYesThe record id to update
domain_nameYes
record_nameNoHost name / alias the record defines. Empty or '@' means the domain itself; 'www' means www.<domain>. Not used for SRV records; for TLSA use e.g. '_25._tcp'.

TDQS

A4.6/5.0
Behavior4/5

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

Discloses the read-modify-write mechanism ('current record is read first and only the fields you pass are changed') and the 'SIDE EFFECT: changes live DNS' warning. Annotations already mark readOnlyHint=false, but the description adds the partial-update pattern and the live-DNS impact, which are not in annotations.

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

Conciseness5/5

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

Two concise sentences plus a side-effect note. The purpose and behavior are front-loaded, followed by a critical limitation, then the side-effect warning. Every sentence earns its place with zero waste.

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

Completeness4/5

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

For an 11-parameter tool with rich schema descriptions and annotations, the description covers the update mechanism, the SRV exception, and the live-DNS side effect. It doesn't mention return values, but no output schema exists and that's not essential for calling the tool correctly.

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

Parameters4/5

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

Schema coverage is 91%, so the baseline is 3. The description adds meaning beyond the schema by clarifying that only passed fields are changed (partial update) and that SRV fields are non-editable, which affects how parameters should be used.

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

Purpose5/5

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

States a specific verb+resource: 'Update an existing DNS record.' Clearly distinguishes from siblings (create/delete/list/get) by describing the partial-update behavior and the SRV limitation, leaving no ambiguity about what this tool does.

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

Usage Guidelines5/5

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

Provides an explicit exclusion: SRV service/protocol/port/target cannot be edited; delete and recreate instead. This directly routes the agent to the correct alternative (delete+create) for that case, and the purpose statement implies using this tool for updating existing non-SRV records.

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

combell_domains_getA
Read-onlyIdempotent

Get the details of a domain name: expiration, renewal state, name servers, registrant and whether renewal can be toggled.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_nameYesThe domain name, e.g. 'example.be'

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds value by specifying the exact fields returned, which is beyond the annotation. It doesn't contradict any annotations.

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

Conciseness5/5

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

A single sentence that is front-loaded with the primary purpose and then lists the returned details. No wasted words.

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

Completeness4/5

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

For a simple read-only get with one parameter, the description is complete: it states what the tool does and what details it returns. It doesn't describe error behavior, but given the simplicity and annotations, it's sufficient.

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

Parameters3/5

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

The schema fully describes domain_name with an example ('example.be'). The description does not add any parameter-specific information beyond what the schema provides, which is acceptable given the schema coverage is 100%.

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

Purpose5/5

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

The description clearly states the action ('Get the details') and the resource ('a domain name'), and enumerates the specific fields returned (expiration, renewal state, name servers, registrant, renewal toggle). This distinguishes it from combell_domains_list (which lists domains) and from mutation tools like combell_domains_set_renew.

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

Usage Guidelines4/5

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

The description makes it clear that this is for retrieving details of a single, specific domain (requires domain_name). It doesn't explicitly name alternatives, but the verb 'get' and the field list imply it's for detailed inspection, not for listing or modifying. It could benefit from explicitly contrasting with combell_domains_list, 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.

combell_domains_listA
Read-onlyIdempotent

List the domain names on your Combell account with their expiration date and renewal state.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of items to skip (default 0)
takeNoNumber of items to return (the API may return fewer)

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the return fields (expiration date, renewal state) but does not mention pagination limits or behavior beyond what the schema already documents for skip/take. Since annotations carry the main burden, a 3 is appropriate.

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

Conciseness5/5

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

A single, clear sentence that states the action, scope, and key return fields. No unnecessary words or redundancy. The information is front-loaded and immediately actionable.

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

Completeness4/5

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

For a list tool with annotations covering safety and schema covering parameters, the description is nearly complete. It tells the agent what the list contains (domains with expiration and renewal state). No output schema exists, but the description provides enough return context. Pagination is covered by schema.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (skip and take) are fully documented in the schema. The description does not add additional meaning to the parameters, but it does clarify the purpose of the returned list. Baseline 3 is correct when the schema handles parameter documentation.

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

Purpose5/5

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

The description clearly states the action (List), the resource (domain names on your Combell account), and the specific fields returned (expiration date and renewal state). This distinguishes it from siblings like combell_domains_get (single domain) and combell_domains_register (creation).

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

Usage Guidelines4/5

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

The description provides clear context: it lists all domains on the account. While it doesn't explicitly name alternatives or exclusion criteria, the sibling tools (e.g., combell_domains_get) make it obvious that this is for bulk listing. The scope is unambiguous.

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

combell_domains_registerA

Register an available domain name. SIDE EFFECT: this purchases a domain name and incurs costs. Registration runs in the background (202 Accepted); check the returned provisioning job. '.ca' domains are only available for registrants with country code 'CA'.

ParametersJSON Schema
NameRequiredDescriptionDefault
registrantYes
domain_nameYesDomain part and TLD only, e.g. 'example.be'
name_serversNoName servers; leave empty to use Combell's default name servers

TDQS

A4.6/5.0
Behavior5/5

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

The description prominently discloses that this purchases a domain and incurs costs, that execution is asynchronous with a 202 response, and that a provisioning job must be checked. These are critical behavioral traits beyond the minimal annotations (readOnlyHint=false, idempotentHint=false) and materially help an agent handle side effects.

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

Conciseness5/5

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

Three tight sentences front-load the action and side-effect warning before the async and TLD notes. No sentence is wasted, and critical warnings appear before less urgent details.

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

Completeness4/5

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

For a purchase operation with no output schema, the description covers the essential behavioral context: cost, asynchronous 202 handling, and a TLD eligibility rule. It doesn't spell out the polling contract or explicitly point to combell_provisioning_jobs_get, but 'check the returned provisioning job' gives a sufficient starting point.

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

Parameters4/5

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

The description adds a registrant country_code constraint ('.ca' only for country code 'CA') not present in the input schema, and the term 'available' conditions the domain_name parameter. With 67% schema coverage, the schema already documents most field semantics, so the description's extra constraint is meaningful but not exhaustive.

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

Purpose5/5

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

The description says 'Register an available domain name', which is a specific verb and resource that clearly identifies the action. It distinguishes from sibling operations like combell_domains_transfer and combell_domains_list without ambiguity.

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

Usage Guidelines4/5

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

It clearly indicates this is for newly available domain registrations and states the '.ca' country-code restriction. It doesn't explicitly name alternative tools for transfers or renewals, but the domain registration vs transfer/list distinction is clear from the wording and sibling names.

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

combell_domains_set_nameserversA
Idempotent

Replace the name servers of a domain name. SIDE EFFECT: DNS for the domain will resolve from the new name servers once propagated.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_nameYes
name_serversYesFull list of name server host names, e.g. ['ns1.example.net', 'ns2.example.net']

TDQS

A4.2/5.0
Behavior4/5

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

The description explicitly discloses a side effect: DNS resolution will switch to the new name servers after propagation. The annotations already indicate idempotentHint=true and destructiveHint=false, and the description adds behavioral context about the propagation delay and the fact that this replaces existing nameservers. It does not over-explain and directly warns about the operational impact.

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

Conciseness5/5

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

The description is a single sentence that communicates the core action and the important side effect. It is concise, front-loaded, and contains no filler or redundant restating of the tool name.

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

Completeness4/5

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

Given that the tool has only two parameters and no output schema, the description is reasonably complete: it names the action, the affected resource, and the propagation effect. It could mention the required format for domain_name or the exact semantics of replacing nameservers (e.g., that existing nameservers are overwritten), but overall this definition provides enough context for an AI agent to call the tool correctly with minimal assumptions.

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

Parameters4/5

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

Schema description coverage is 50%, meaning the name_servers parameter has a description, but domain_name has none. The description clarifies that the name_servers array is a full replacement list ('Replace'), which adds meaning to the operation mode. Still, it could state the required format for domain_name (e.g., bare domain vs with www) to improve parameter semantics further.

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

Purpose5/5

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

The description uses a specific verb (Replace) with a clear resource (name servers of a domain name). It accurately distinguishes this tool from siblings like combell_dns_records_update and combell_domains_get, because it targets domain-level nameserver configuration rather than individual DNS records. The scope is unambiguous.

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

Usage Guidelines3/5

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

The description implies usage: use this when you need to change which name servers serve a domain. It does not explicitly state when not to use it, nor does it mention alternatives such as combell_dns_records_create/update for managing individual records instead of delegated nameservers. Some guidance is present, but exclusions and alternatives are absent.

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

combell_domains_set_renewA
Idempotent

Enable or disable automatic renewal of a domain name. Only allowed when can_toggle_renew is true on the domain detail (no unpaid invoices and the renewal does not start within a month) and the API user has the finance role. SIDE EFFECT: disabling renewal lets the domain expire.

ParametersJSON Schema
NameRequiredDescriptionDefault
will_renewYestrue to renew automatically, false to let it expire
domain_nameYes

TDQS

A4.4/5.0
Behavior4/5

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

The description discloses the side effect of disabling renewal (letting the domain expire) and the precondition about can_toggle_renew. Annotations already indicate readOnlyHint=false, idempotentHint=true, destructiveHint=false, and the description adds context about the side effect and role 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.

Conciseness5/5

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

The description is concise, front-loaded with the main action, and every sentence adds value: the action, the precondition, and the side effect. No wasted words.

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

Completeness4/5

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

The description covers the action, preconditions, side effects, and role requirement. It doesn't describe the return value, but there is no output schema and the tool is a simple boolean toggle. The only minor gap is not explaining what the response looks like, but for a setter tool this is acceptable.

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

Parameters3/5

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

Schema description coverage is 50%: the will_renew parameter has a description ('true to renew automatically, false to let it expire'), but domain_name has no description. The description text adds context about the domain detail and can_toggle_renew, but doesn't explain domain_name format. Baseline 3 is appropriate since the schema covers half the parameters and the description adds some context.

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

Purpose5/5

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

The description clearly states the action ('Enable or disable automatic renewal of a domain name') with a specific verb and resource. It distinguishes itself from sibling tools by focusing on the renewal toggle, which is unique among the domain-related tools.

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

Usage Guidelines5/5

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

The description explicitly states when the tool is allowed: only when can_toggle_renew is true on the domain detail, with specific conditions (no unpaid invoices, renewal not starting within a month) and the API user has the finance role. This provides clear guidance on 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.

combell_domains_transferA

Transfer a domain name to Combell using its transfer authorization (EPP) code. SIDE EFFECT: this purchases a transfer and incurs costs. The transfer runs in the background (202 Accepted); check the returned provisioning job.

ParametersJSON Schema
NameRequiredDescriptionDefault
auth_codeYesTransfer authorization code from the current registrar
registrantYes
domain_nameYesDomain part and TLD only, e.g. 'example.be'
name_serversNoName servers; leave empty to use Combell's default name servers

TDQS

A4.2/5.0
Behavior5/5

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

The description goes well beyond the annotations by disclosing that the operation incurs costs, runs asynchronously, returns a 202 Accepted, and requires checking the returned provisioning job. This is exactly the kind of behavioral context an agent needs before invoking the tool.

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

Conciseness5/5

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

Two sentences, front-loaded with the primary action and the critical side effect. No filler, and the asynchronous behavior is stated clearly and compactly.

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

Completeness4/5

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

For a complex transfer operation with no output schema, the description covers the essential contextual points: cost, asynchronous execution, and where to check the result. It does not explain failure modes or prerequisites beyond the EPP code, but the core invocation context is sufficiently covered.

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

Parameters3/5

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

The description adds the 'EPP' framing for the auth_code, but the input schema already documents the parameters thoroughly, including registrant object details and name server meaning. The description does not add significant parameter-level meaning beyond the schema.

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

Purpose5/5

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

The description names an exact operation (transfer), the resource (a domain name), and the required credential (EPP/auth code), making the tool's intent unambiguous. It is clearly distinct from sibling tools like register, set_nameservers, or list because 'transfer' is a specific lifecycle action.

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

Usage Guidelines3/5

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

The description clearly implies when to use the tool: when transferring an existing domain into Combell using an EPP code. However, it does not explicitly state when not to use it or point to alternatives such as combell_domains_register for new registrations.

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

combell_linux_hostings_getA
Read-onlyIdempotent

Get the details of a Linux hosting: webspace size and usage, IP, FTP/SSH status and usernames, active PHP version, websites with host headers and SSL settings, and linked MySQL database names.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_nameYesThe Linux hosting domain name

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds meaningful behavioral context by listing exactly what data the call returns, which goes beyond the annotations. It does not mention error/not-found behavior or authentication, but the annotation coverage lowers that burden.

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

Conciseness5/5

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

The description is one well-structured sentence that front-loads the action and resource, then uses a semicolon-separated list to pack in the returned data categories. Every clause adds value and there is no filler or repetition of the tool name.

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

Completeness4/5

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

Given there is no output schema, the description compensates well by enumerating the main response categories: webspace size/usage, IP, FTP/SSH status and usernames, PHP version, websites with host headers and SSL settings, and linked MySQL databases. It could mention error behavior or the singleness of the result, but for a simple get-by-domain operation the description is sufficiently complete.

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

Parameters3/5

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

Schema description coverage is 100%, with the single parameter domain_name described as 'The Linux hosting domain name'. The description reinforces that the resource is a Linux hosting but adds no new parameter-level details beyond the schema. Baseline 3 is appropriate since the schema already carries the parameter semantics.

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

Purpose5/5

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

The description begins with a specific verb and resource ('Get the details of a Linux hosting') and then enumerates the exact categories of information returned: webspace, IP, FTP/SSH status, PHP version, websites with host headers and SSL, and MySQL databases. This clearly distinguishes it from sibling tools like combell_linux_hostings_list (listing) and the set_* mutation tools.

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

Usage Guidelines4/5

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

The description makes the retrieval intent clear and implies use for inspecting a single Linux hosting by domain name. It does not explicitly state when not to use it or point to alternatives such as combell_linux_hostings_list, but the contrast with the sibling names is strong enough that an agent can infer the right context.

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

combell_linux_hostings_host_headers_createB

Add a host header (an extra domain name or alias that serves the site) to a website on a Linux hosting.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_nameYesName of the site on the hosting
domain_nameYesThe Linux hosting domain name
host_headerYesDomain name to add as host header, e.g. 'alias.be' or 'alias.example.be'

TDQS

B3.3/5.0
Behavior2/5

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

Annotations indicate this is a mutating, non-idempotent operation, but the description adds no behavioral detail beyond the action itself. It does not disclose potential side effects, duplicate handling, propagation timing, or whether the change can be reverted, which is relevant 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.

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the action and resource, with a helpful parenthetical explanation. Every word earns its place, and there is no redundant or filler content.

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

Completeness3/5

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

For a simple three-parameter creation tool with fully documented schema, the description is mostly adequate. However, it omits usage guidance and behavioral consequences, and with no output schema it does not mention what response or confirmation an agent should expect after invoking the tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already documented in the schema. The description adds little semantic value beyond the schema, only framing the operation as adding a host header; it does not deepen understanding of the domain_name, site_name, or host_header relationship.

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

Purpose5/5

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

The description uses a specific verb ('Add'), a clear resource ('host header'), and a scope ('to a website on a Linux hosting'). It also clarifies the domain term with a parenthetical definition, making the tool's function unambiguous and distinguishable from sibling operations like set_gzip or subsites_create.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives such as DNS record creation, domain registration, or subsite creation. The description implies its use for adding aliases but does not state prerequisites, exclusions, or when a different Combell tool would be more appropriate.

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

combell_linux_hostings_listA
Read-onlyIdempotent

List the Linux hosting accounts (by domain name) on your Combell account.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of items to skip (default 0)
takeNoNumber of items to return (the API may return fewer)

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that results are keyed by domain name, which is useful, but it does not disclose pagination behavior or that the API may return fewer items than requested (though the schema hints at this).

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

Conciseness5/5

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

A single, front-loaded sentence that states the action, resource, and result format with zero waste. It earns its place and is appropriately sized for a simple list operation.

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

Completeness4/5

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

For a simple read-only list tool with full schema coverage and annotations covering safety, the description is nearly complete. It could mention that results are paginated via skip/take or that the API may return fewer items, but the schema already covers those details, so nothing critical is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (skip, take) are already documented in the schema. The description adds no additional parameter meaning beyond what the schema provides, so the baseline of 3 applies.

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

Purpose4/5

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

The description states a specific verb ('List') and resource ('Linux hosting accounts') scoped to the Combell account, and clarifies the result is by domain name. It is clear enough to distinguish from siblings like combell_windows_hostings_list, though it doesn't explicitly name that sibling.

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

Usage Guidelines3/5

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

The description implies this is the read-only listing tool for Linux hosting accounts, and the sibling list shows combell_linux_hostings_get for retrieving a single account. However, it does not explicitly state when to use this vs alternatives or mention pagination usage context beyond the schema.

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

combell_linux_hostings_php_versionsA
Read-onlyIdempotent

List the PHP versions available for a Linux hosting.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_nameYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is clear. The description adds a little context by specifying that the listing is scoped to a Linux hosting, but it does not disclose additional behaviors such as return format, ordering, or error cases.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. Every word contributes to identifying the operation, 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.

Completeness4/5

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

Given the tool's low complexity, one parameter, and safe read-only annotations, the description is largely sufficient. There is no output schema, so a slight note about what the returned list contains would improve completeness, but the core invocation context is clear.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate for the undocumented domain_name parameter. It partially does by saying 'for a Linux hosting,' which links domain_name to the hosting's domain, but it does not explicitly explain the parameter's format or required semantics beyond the schema's required flag.

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

Purpose5/5

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

The description uses a specific verb ('List') and a clear resource ('PHP versions available for a Linux hosting'), which makes the tool's read-only purpose immediately obvious. It also distinguishes itself from sibling tools like combell_linux_hostings_set_php_version by emphasizing enumeration rather than modification.

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

Usage Guidelines3/5

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

The description implies when to use the tool: when the agent needs to know which PHP versions are available for a Linux hosting. However, it does not explicitly state when not to use it or mention alternatives such as combell_linux_hostings_set_php_version for changing the version.

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

combell_linux_hostings_set_ftpB
Idempotent

Enable or disable FTP access on a Linux hosting.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYes
domain_nameYes

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, so the safety profile is covered. However, the description adds no behavioral detail beyond restating the operation: no mention of whether disabling FTP affects existing FTP accounts, whether the change applies immediately, or whether re-enabling restores prior state. It adds essentially nothing beyond what the name and annotations already convey.

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

Conciseness5/5

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

A single 10-word sentence that front-loads the action ('Enable or disable FTP access') and then scopes it ('on a Linux hosting'). Every word earns its place; there is zero redundancy or filler.

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

Completeness3/5

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

The tool is low-complexity (2 required params, no output schema, no nesting) and annotations cover idempotency and non-destructiveness, so a short description is defensible. However, with 0% schema description coverage, the agent is left to infer the meaning of domain_name and any effects of toggling FTP, so the definition is adequate but not fully self-sufficient. No output schema exists, and the description does not address return behavior.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It does implicitly map 'enable or disable' to the `enabled` boolean, which is helpful, but it adds nothing about `domain_name` (format, ownership, or how to obtain valid values) beyond its schema name. Coverage is only partial for the boolean and absent for the domain parameter.

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

Purpose5/5

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

States a specific verb (enable/disable), a specific resource (FTP access), and a scope (Linux hosting). This clearly differentiates it from the many sibling set_* tools on Linux hostings (set_gzip, set_http2, set_php_version, etc.) by naming the exact feature being toggled, and from combell_ssh_set_enabled by naming the protocol.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. It does not name the other linux_hostings set_* tools it complements, state prerequisites (e.g., that the domain must correspond to an existing Linux hosting), or explain when FTP toggling is appropriate versus other access controls like SSH. Usage must be inferred entirely.

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

combell_linux_hostings_set_gzipA
Idempotent

Enable or disable GZIP compression on a Linux hosting.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYes
domain_nameYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the mutation and idempotence are known. The description adds only the enable/disable meaning, without extra behavioral context like effect timing, prerequisites, or response behavior. No contradiction with annotations exists.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler, repetition, or unnecessary detail. Every word contributes to the core meaning and the tool's action is immediately clear.

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

Completeness3/5

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

For a simple two-parameter setter, the description is minimally usable, but it leaves the agent to infer that `domain_name` must refer to an existing Linux hosting and that `enabled` directly controls the compression state. With no output schema and no parameter descriptions, a little more context would improve completeness.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for explaining the required parameters. It only implicitly maps 'enable or disable' to the `enabled` boolean and never mentions `domain_name` or clarifies that `enabled=true` turns GZIP on while `false` turns it off.

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

Purpose5/5

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

The description uses a specific verbโ€“resource pair: 'Enable or disable GZIP compression on a Linux hosting.' This clearly distinguishes it from sibling set_* tools such as set_http2, set_ftp, and set_letsencrypt, while accurately naming the affected resource.

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

Usage Guidelines3/5

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

The description implies the use case (toggling GZIP compression) but gives no explicit when-to-use or when-not-to-use guidance. It also does not contrast this tool with alternative compression or hosting settings tools, leaving the routing decision to inference.

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

combell_linux_hostings_set_http2B
Idempotent

Enable or disable HTTP/2 for a website on a Linux hosting. The site must have SSL enabled for HTTP/2 to work.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYes
site_nameYes
domain_nameYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already signal readOnlyHint=false, idempotentHint=true, and destructiveHint=false, and the description is consistent with those. It adds the SSL prerequisite as useful behavioral context, but it does not explain what happens if SSL is not enabled, whether the change is immediate, or what response to expect.

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

Conciseness5/5

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

Two brief sentences with no filler. The action is stated firstamental, and the key prerequisite follows. Every word earns its place.

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

Completeness3/5

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

The description is adequate for a simple, idempotent setter with no output schema, and it includes an important functional constraint. Still, it lacks any mention of async/provisioning behavior or the meaning of domain_name vs site_name, so an agent may need extra inference to call it correctly on the first try.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It correctly implies that `enabled` controls the feature, but it does not explain `domain_name` or `site_name`, their relationship, or expected formats. This leaves two of three required parameters semantically under-specified.

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

Purpose4/5

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

The description states a specific verb ('enable or disable') and resource ('HTTP/2 for a website on a Linux hosting'), so the tool's core action is clear. It does not explicitly differentiate from sibling configuration tools like set_gzip or set_php_version, but the HTTP/2 target is unambiguous.

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

Usage Guidelines3/5

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

The description provides a directly relevant prerequisite: SSL must be enabled for HTTP/2 to work. However, it does not say when to prefer this tool over alternatives or when not to use it, leaving usage guidance mostly implied.

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

combell_linux_hostings_set_https_redirectA
Idempotent

Enable or disable the automatic HTTP to HTTPS redirect for a hostname on a Linux hosting.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYes
hostnameYesThe hostname, e.g. 'www.example.be'
domain_nameYesThe Linux hosting domain name

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, and the description adds that it controls an automatic redirect. However, it does not disclose behavioral consequences like whether an SSL certificate is required or what happens when disabled. 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.

Conciseness5/5

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

A single, front-loaded sentence with no filler or redundancy. Every word contributes to understanding what the tool does.

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

Completeness4/5

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

For a simple idempotent setter with three clearly named parameters, the description is largely sufficient. It lacks return/response behavior and edge-case guidance, but the low complexity and annotation coverage make this acceptable.

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

Parameters3/5

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

The description's 'enable or disable' maps usefully to the boolean enabled parameter, but it adds little beyond the schema's existing descriptions for hostname and domain_name. With 67% schema coverage, the description does not need to compensate heavily, but it also does not enrich parameter meaning much.

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

Purpose5/5

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

The description states a specific action ('enable or disable') and a precise resource ('automatic HTTP to HTTPS redirect for a hostname on a Linux hosting'). This clearly distinguishes it from sibling tools like set_gzip or set_http2.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, no mention of prerequisites such as an existing SSL certificate, and no relationship to other hosting settings. The intended use case is only implied by the name and description.

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

combell_linux_hostings_set_letsencryptB
Idempotent

Enable or disable a free Let's Encrypt SSL certificate for a hostname on a Linux hosting.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYes
hostnameYesThe hostname to secure, e.g. 'www.example.be'
domain_nameYesThe Linux hosting domain name

TDQS

B3.3/5.0
Behavior2/5

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

The annotations already signal mutability (readOnlyHint: false), safety (destructiveHint: false), and idempotency (idempotentHint: true). The description adds no behavioral context beyond restating that the tool can enable or disable the certificate, such as whether disabling removes an existing certificate, triggers a provisioning job, or requires validation.

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

Conciseness5/5

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

The description is a single, tight sentence that front-loads the action and identifies the exact scope. There is no filler, redundant phrasing, or repetition of the tool name.

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

Completeness3/5

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

For a simple three-parameter setter, the description plus schema is minimally sufficient to attempt a call. It is incomplete, though, because it omits operational context such as the intended workflow with Let's Encrypt, whether disabling has side effects, and when to prefer this over other SSL-related sibling tools.

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

Parameters3/5

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

The schema already describes domain_name and hostname, and the description's 'Enable or disable' provides the essential meaning for the otherwise undocumented boolean enabled parameter. However, the description does not clarify whether enabled=false merely deactivates or fully removes the Let's Encrypt certificate, so it only partially compensates for the missing parameter description.

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

Purpose5/5

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

The description states a specific verb ('Enable or disable'), a specific resource ('free Let's Encrypt SSL certificate'), and a scope ('for a hostname on a Linux hosting'). This distinguishes it from related SSL listing/get and other hosting-set siblings without requiring the schema to be opened.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives such as ssl_certificate_requests_create or set_https_redirect. It also does not mention prerequisites like the hostname needing to belong to the given Linux hosting domain, or when disabling would be preferred over deleting a certificate.

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

combell_linux_hostings_set_php_apcuA
Idempotent

Enable or disable PHP APCu caching on a Linux hosting and set its size (in MB).

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYes
apcu_sizeNoAPCu cache size in MB
domain_nameYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate this is non-read-only, idempotent, and non-destructive. The description adds the operation semantics (enable/disable and set size), but does not disclose additional behavioral details such as prerequisites, effects on existing cache state, or what happens when apcu_size is omitted.

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

Conciseness5/5

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

A single, well-structured sentence that front-loads the core action and includes the size unit. No redundant or filler content.

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

Completeness4/5

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

For a simple setter with flat parameters and no output schema, the description plus schema is largely sufficient. It lacks explicit guidance on parameter interplay (e.g., whether apcu_size is only relevant when enabled), but this is a minor gap given the tool's low complexity.

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

Parameters4/5

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

With only 33% schema coverage, the description compensates by clarifying the 'enabled' parameter through 'Enable or disable' and the 'apcu_size' parameter through 'set its size (in MB)'. The 'domain_name' parameter is not explicitly described, but its role is strongly implied by the resource context.

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

Purpose5/5

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

The description states a specific verb ('Enable or disable'), a specific resource ('PHP APCu caching on a Linux hosting'), and the size-setting capability. This clearly differentiates it from sibling tools like set_php_version or set_gzip.

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

Usage Guidelines3/5

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

The usage context is implied: use this when you need to manage APCu caching for a Linux hosting. However, the description does not explicitly mention alternatives or state when not to use this tool, relying on the tool name and general semantics.

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

combell_linux_hostings_set_php_memory_limitA
Idempotent

Set the PHP memory limit (in MB) of a Linux hosting.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_nameYes
memory_limitYesMemory limit in MB, e.g. 256

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare the operation is non-read-only, idempotent, and non-destructive, and the description is consistent with them. The description adds no behavioral detail beyond the unit ('in MB') and target scope, so it earns only a neutral score rather than credit for extra context.

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

Conciseness5/5

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

One short sentence that front-loads the action and target, with no filler. It is appropriately sized for such a simple setter.

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

Completeness4/5

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

For a two-parameter setter with an idempotent annotation and no output schema, the description plus schema is nearly sufficient to invoke correctly. It might be strengthened by naming domain_name explicitly as the hosting identifier, but that is easily inferable from the operation.

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

Parameters3/5

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

The schema documents memory_limit with unit and example, and the description reinforces 'in MB'; domain_name has no schema description, and the description only indirectly identifies it as a Linux hosting. Since schema coverage is only 50%, the description must compensate somewhat, and it does minimally but not fully; the parameter names themselves are fairly clear.

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

Purpose5/5

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

The description uses a specific verb ('Set'), a clear resource ('PHP memory limit'), and a scope ('Linux hosting'). It is immediately distinguishable from sibling tools such as set_php_version, set_php_apcu, or set_gzip, so an agent can identify when it applies.

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

Usage Guidelines3/5

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

The description implies the intended useโ€”changing the PHP memory limit for a Linux hostingโ€”but it gives no explicit when-to-use guidance, exclusions, or alternative tools. The tool name and scope make the situation inferable, but the agent is left to connect it to siblings.

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

combell_linux_hostings_set_php_versionA
Idempotent

Change the PHP version of a Linux hosting. SIDE EFFECT: affects every website on the hosting immediately.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionYesA version from combell_linux_hostings_php_versions, e.g. '8.3'
domain_nameYes

TDQS

A3.9/5.0
Behavior4/5

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

The description discloses a significant behavioral traitโ€”the change affects every website on the hosting immediatelyโ€”which is not captured by the annotations. Annotations already provide readOnlyHint=false, destructiveHint=false, and idempotentHint=true, but the description adds valuable context about the scope of impact. It does not contradict annotations.

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

Conciseness5/5

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

The description is two concise sentences with no wasted words. The primary action is front-loaded, and the side effect is stated separately. It is efficiently structured and easy to parse.

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

Completeness4/5

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

For a simple tool with two parameters and no output schema, the description covers the key behavioral impact (side effect) and relies on the schema for parameter details. It is complete enough for an agent to understand the tool's purpose and immediate consequences, though it could optionally mention that the version must be from the provided list.

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

Parameters2/5

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

The description provides no information about the parameters. The schema documents 'version' (with an example) but 'domain_name' lacks any description, and the schema coverage is only 50%. Since the description fails to compensate for the missing parameter semantics, it scores low on this dimension.

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

Purpose5/5

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

The description clearly states the action ('Change the PHP version') and the resource ('Linux hosting'), and the side effect clarifies the scope. It is unambiguous and distinct from sibling tools like set_php_memory_limit or set_php_apcu, which target different settings.

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

Usage Guidelines3/5

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

The description implies the tool is used when changing the PHP version of a Linux hosting, but it does not explicitly state when to use it versus alternatives or any prerequisites. The side-effect warning offers some guidance but no explicit exclusions or conditions for selection.

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

combell_linux_hostings_subsites_createA

Create a subsite (an extra website) on a Linux hosting. The folder path must already exist on the server; when omitted Combell uses /subsites/.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoExisting folder on the hosting, e.g. '/subsites/blog.example.be'
domain_nameYesThe Linux hosting domain name
subsite_domain_nameYesDomain name for the subsite, e.g. 'alias.be' or 'blog.example.be'

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the mutation profile is established. The description adds value beyond annotations by disclosing that the folder must pre-exist (this operation does not create paths) and that Combell defaults to '/subsites/<subsite domain>' when path is omitted. It does not disclose return value, error behavior when the path is missing, or whether creation is synchronous or async โ€” a notable gap given the sibling combell_provisioning_jobs_get suggests a job-based workflow.

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

Conciseness5/5

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

Two sentences, both of which earn their place. The first sentence front-loads the purpose (verb + resource + scope), and the second packs the critical precondition and default-path behavior without fluff, adjectives, or repetitive phrasing. No wasted words.

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

Completeness3/5

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

For a simple 3-parameter, fully schema-documented tool, the description covers the purpose and the main failure precondition (nonexistent path) well. However, with no output schema, the description is the only place that could disclose what the call returns โ€” e.g., a provisioning job reference or a success status โ€” and it is silent on this. It also does not address error behavior or idempotency consequences of re-creating the same subsite, leaving an agent partially uninformed about post-invocation expectations.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by explaining the consequence of omitting the optional 'path' parameter ('when omitted Combell uses /subsites/<subsite domain>'), which the schema does not state. It also reinforces that 'path' must reference an existing folder, aligning with the schema's 'Existing folder on the hosting' wording. The other two parameters are fully covered by the schema with clear examples, so the description does not need to repeat them.

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

Purpose4/5

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

The description states a specific verb and resource: 'Create a subsite (an extra webite) on a Linux hosting.' The parenthetical '(an extra webite)' clarifies the Combell domain concept and scopes the operation to Linux hosting, distinguishing it from the many other create tools in the sibling list (e.g. combell_mysql_users_create, combell_mailboxes_create). However, it does not explicitly name its inverse sibling (combell_linux_hostings_subsites_delete), leaning on the naming convention rather than the description for sibling differentiation.

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

Usage Guidelines3/5

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

The description provides one genuine usage precondition: 'The folder path must already exist on the server' โ€” useful because it tells the agent not to expect the tool to create directories. It also explains the default path behavior when 'path' is omitted. However, it gives no guidance on when to use this tool versus alternatives, no exclusions, and no mention of the inverse delete operation, so routing to this tool vs. siblings relies on implication from the tool name.

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

combell_linux_hostings_subsites_deleteA
Destructive

Delete a subsite from a Linux hosting. SIDE EFFECT: the website stops being served (files stay on disk).

ParametersJSON Schema
NameRequiredDescriptionDefault
site_nameYesName of the site on the hosting (see the hosting detail's sites)
domain_nameYes

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true, but the description goes further by disclosing the concrete consequence: the website stops being served while files remain on disk. This is valuable behavioral detail beyond what the annotations convey.

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

Conciseness5/5

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

Two short, purposeful sentences. The action is front-loaded and the side effect is isolated as a clear warning. No filler or repetition.

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

Completeness4/5

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

For a simple two-parameter destructive action, the description plus annotations cover the core safety and behavioral concerns. The main gap is the undocumented domain_name parameter, which the description does not help clarify.

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

Parameters2/5

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

Only site_name has a schema description; domain_name is undocumented. The prose does not explain the relationship between the two parameters or clarify what domain_name refers to. With only 50% schema coverage, the description should compensate but does not.

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

Purpose5/5

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

States a specific verb ('Delete') and a specific resource ('a subsite from a Linux hosting'). This clearly differentiates it from related siblings like combell_linux_hostings_subsites_create and other resource-specific delete tools.

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

Usage Guidelines4/5

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

The description makes the intended operation obvious and the SIDE EFFECT note adds decision-relevant context: use this when you want the website to stop being served but keep the files on disk. It does not explicitly name alternatives or when-not-to-use scenarios, so it falls just short of the highest level.

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

combell_mailboxes_createA

Create a mailbox on a mail zone account. Find the account_id in the mail zone's available_accounts (combell_mail_zones_get).

ParametersJSON Schema
NameRequiredDescriptionDefault
passwordYesMailbox password: 8-20 characters, a mix of letters and digits with at least one of each, no spaces, none of * โ‚ฌ $ & + } { ' " \
account_idYesMail zone account id (from combell_mail_zones_get available_accounts)
email_addressYesThe new mailbox address, e.g. 'info@example.be'

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already indicate this is a write operation (readOnlyHint=false), and the description's 'Create' matches that. It adds one helpful dependency hint about account discovery but does not describe side effects, response behavior, or post-creation steps. Annotations carry much of the burden, so this is acceptable but not rich.

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

Conciseness5/5

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

Two short sentences, with the primary action stated first and the prerequisite second. There is no filler or redundant restatement of the tool name.

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

Completeness5/5

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

For a simple create operation with three fully described parameters and no nested objects, the description covers what the agent needs to invoke it correctly. The only contextual requirementโ€”how to obtain account_idโ€”is explicitly provided.

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

Parameters3/5

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

Schema description coverage is 100%, and each parameter already has a clear description. The tool description does not add meaning beyond the schema; it merely repeats the account_id sourcing hint already present in the parameter schema.

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

Purpose5/5

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

The description names a specific action and resource: 'Create a mailbox on a mail zone account.' This clearly distinguishes it from related mailbox tools like deletion, listing, password updates, and mail zone alias/catch-all creation.

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

Usage Guidelines4/5

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

It gives a concrete prerequisite: find account_id in the mail zone's available_accounts via combell_mail_zones_get. This tells the agent where the required identifier comes from, though it does not explicitly discuss when to prefer this over sibling mailbox tools.

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

combell_mailboxes_deleteA
Destructive

Delete a mailbox and all its e-mail. SIDE EFFECT: irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
mailbox_nameYesThe mailbox e-mail address to delete

TDQS

A3.8/5.0
Behavior4/5

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

The description explicitly states 'SIDE EFFECT: irreversible', which adds meaningful behavioral context beyond the annotations. The annotations already declare destructiveHint=true, but the description reinforces the permanence and specifies that all e-mail is deleted, not just the mailbox. This is valuable context for an agent deciding whether to invoke the tool.

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

Conciseness5/5

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

The description is two short sentences with zero waste. The core action is front-loaded, and the critical side effect is stated immediately after. Every word earns its place.

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

Completeness4/5

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

For a single-parameter delete tool with destructiveHint=true in annotations and a clear side-effect warning in the description, the context is largely complete. The only minor gap is that it doesn't describe the return value or confirmation behavior, but with no output schema and a simple delete operation, this is not a significant omission.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the single parameter (mailbox_name) as 'The mailbox e-mail address to delete'. The description does not add additional parameter semantics beyond what the schema provides, but the baseline of 3 is appropriate given full schema coverage.

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

Purpose4/5

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

The description states a specific verb ('Delete') and resource ('a mailbox and all its e-mail'), which clearly distinguishes it from sibling tools like combell_mailboxes_get or combell_mailboxes_create. It does not explicitly name a sibling alternative, but the resource and action are unambiguous.

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

Usage Guidelines3/5

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

The description implies when to use the tool: when a mailbox and all its e-mail need to be permanently removed. It does not provide explicit exclusions or alternatives, but the destructive nature is clearly flagged, which serves as a cautionary usage guideline. No explicit 'when not to use' is given.

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

combell_mailboxes_getA
Read-onlyIdempotent

Get a mailbox: login, sizes, auto-reply and auto-forward settings.

ParametersJSON Schema
NameRequiredDescriptionDefault
mailbox_nameYesThe mailbox e-mail address, e.g. 'info@example.be'

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, covering safety. The description adds value by detailing the returned fields (login, sizes, auto-reply/forward settings), which is beyond the annotation scope. It does not cover edge cases like errors or rate limits, but for a simple read operation this is sufficient given the annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the action and resource, then lists the key return contents. There is zero waste, and every word contributes to understanding the tool's purpose.

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

Completeness5/5

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

The description adequately covers what the tool returns (login, sizes, auto-reply/forward settings), and the single parameter is well-documented in the schema. Since there is no output schema, the description provides the essential return-value context. No critical information is missing for an agent to invoke this tool correctly.

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

Parameters3/5

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

The input schema fully documents the sole parameter mailbox_name with a clear description and example. The tool description does not add any additional semantics about the parameter, so it contributes no value beyond the schema. With 100% schema coverage, the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action 'Get a mailbox' and specifies the resource and the exact information returned (login, sizes, auto-reply/forward settings). It is distinct from sibling tools like combell_mailboxes_list, which enumerates mailboxes, and from mutation tools. The verb+resource combination 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.

Usage Guidelines4/5

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

The description implies usage for retrieving a single mailbox's details by requiring mailbox_name, and the sibling combell_mailboxes_list clearly serves the alternative of listing all mailboxes. However, it does not explicitly state when not to use this tool or name the alternative, so it lacks explicit exclusions but provides clear context.

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

combell_mailboxes_listA
Read-onlyIdempotent

List the mailboxes of a domain with their maximum and used size (MB).

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_nameYesThe domain name whose mailboxes to list (required)

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description need not repeat safety. It adds the output detail of including maximum and used size, but does not disclose any further behavioral traits such as pagination, ordering, or error conditions. With annotations covering the safety profile, a 3 is appropriate.

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

Conciseness5/5

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

A single, well-formed sentence that front-loads the main action and result. No unnecessary words or repetition. Ideal length for the purpose.

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

Completeness4/5

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

For a simple list tool with one parameter and no output schema, the description covers the core purpose and the key output (max and used size in MB). It does not specify the exact structure of the returned list (e.g., mailbox identifiers, aliases), but given the simplicity and annotation coverage, it is reasonably complete.

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

Parameters3/5

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

Schema coverage is 100% and the parameter description is already clear ('The domain name whose mailboxes to list'). The tool description adds no extra semantic detail beyond what the schema provides, so the baseline 3 is correct.

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

Purpose5/5

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

The description uses a specific verb ('List') and resource ('mailboxes of a domain') and adds the distinguishing detail that it returns maximum and used size in MB. This clearly separates it from sibling tools like combell_mailboxes_get, which targets a single mailbox.

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

Usage Guidelines3/5

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

The description implies usage when a domain's mailboxes need to be listed, but it does not explicitly mention when to prefer this tool over alternatives like combell_mailboxes_get. The context of siblings provides the contrast, but the description itself offers no direct guidance.

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

combell_mailboxes_set_auto_forwardA
Idempotent

Configure automatic forwarding of a mailbox to one or more addresses, optionally keeping a copy in the mailbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYes
mailbox_nameYes
copy_to_myselfNoKeep a copy in the mailbox
email_addressesNoDestination addresses

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already provide idempotentHint=true and destructiveHint=false, covering safety. The description adds the 'optionally keeping a copy' behavior, but this mirrors the schema. It does not disclose what happens when enabled=false or whether existing forwarding settings are overwritten.

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

Conciseness5/5

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

One concise sentence with the action and resource front-loaded, no filler or redundant phrasing. Every clause earns its place.

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

Completeness3/5

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

The description covers the core purpose but omits important behavioral details such as how to turn off forwarding (enabled=false) and whether email_addresses are required when enabled. Without an output schema, these gaps create some ambiguity, though annotations mitigate safety concerns.

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

Parameters3/5

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

The schema describes copy_to_myself and email_addresses, but not mailbox_name or enabled. The description adds some meaning ('one or more addresses', optional copy), partially compensating for the 50% schema coverage, but leaves enabled and mailbox_name semantics unexplained.

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

Purpose5/5

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

The description states a specific verb ('Configure') and resource ('automatic forwarding of a mailbox'), and includes the optional copy-keeping behavior. This clearly differentiates it from sibling tools like combell_mailboxes_set_auto_reply.

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

Usage Guidelines3/5

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

The description implies when to use the toolโ€”when automatic forwarding is neededโ€”but does not explicitly mention alternatives or how to disable forwarding. There are no exclusions or when-not-to-use notes.

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

combell_mailboxes_set_auto_replyB
Idempotent

Configure the auto-reply (out of office) of a mailbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYes
messageNoBody of the automatic reply
subjectNoSubject of the automatic reply
mailbox_nameYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe, idempotent write operation. The description adds the semantic context that this configures the out-of-office auto-reply, which is useful. However, it doesn't disclose any additional behavioral traits such as whether enabling auto-reply without a message is valid, whether existing settings are overwritten, or any side effects on other mailbox settings. With annotations covering the safety profile, a 3 is appropriate.

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

Conciseness4/5

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

The description is a single, concise sentence that front-loads the verb and resource. It earns its place by clarifying the domain-specific term 'auto-reply' with the parenthetical '(out of office)', which aids an agent's understanding. No wasted words, though it could have added a bit more context without becoming verbose.

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

Completeness3/5

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

For a simple configuration tool with 4 parameters, no output schema, and annotations covering idempotency and safety, the description is adequate but not complete. It doesn't explain the relationship between 'enabled' and the optional 'message'/'subject' parameters (e.g., whether message/subject are required when enabled=true), nor does it mention any validation rules. An agent could call the tool correctly with the schema, but edge cases around the auto-reply content are left ambiguous.

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

Parameters3/5

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

Schema description coverage is 50%: the 'message' and 'subject' parameters have descriptions, while 'mailbox_name' and 'enabled' do not. The description adds no parameter-level detail beyond what the schema already provides. The tool description does clarify the overall purpose (auto-reply configuration), which helps interpret the parameters, but it doesn't compensate for the undocumented 'mailbox_name' and 'enabled' fields. Baseline 3 is appropriate since the schema covers half the parameters and the description adds minimal extra meaning.

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

Purpose4/5

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

The description states a specific verb ('Configure') and resource ('auto-reply (out of office) of a mailbox'), which clearly identifies the tool's function. It distinguishes it from sibling tools like combell_mailboxes_set_auto_forward and combell_mailboxes_set_password by naming the specific feature being configured, though it doesn't explicitly contrast with those siblings.

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

Usage Guidelines3/5

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

The description implies the tool is used when a mailbox's auto-reply/out-of-office settings need to be changed, but it provides no explicit guidance on when to use this tool versus alternatives like combell_mailboxes_set_auto_forward or combell_mailboxes_set_password. The context is clear enough for an agent to infer the use case, but there are no exclusions or alternative routing.

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

combell_mailboxes_set_passwordC
Idempotent

Change the password of a mailbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
passwordYesNew password: 8-20 characters, a mix of letters and digits with at least one of each, no spaces, none of * โ‚ฌ $ & + } { ' " \
mailbox_nameYes

TDQS

C2.4/5.0
Behavior2/5

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

Annotations declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description merely says 'change the password,' which aligns with these hints but adds no additional behavioral context. It does not disclose effects on existing sessions, authentication requirements, or any side effects beyond the action itself. With annotations already covering idempotency and non-destructiveness, the description adds minimal value.

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

Conciseness3/5

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

The description is a single short sentence, which is concise and front-loaded with the verb. However, it is so minimal that it under-specifies the tool. It avoids unnecessary words but at the expense of providing needed context. It is appropriately short but not sufficiently informative.

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

Completeness2/5

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

For a mutation tool with no output schema and two parameters, the description is very incomplete. It does not explain what happens after the password is changed, any required permissions, or how to verify the change. Given the tool's simplicity, more context could be provided without much overhead.

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

Parameters2/5

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

Schema coverage is only 50% (password has a description, mailbox_name has none). The description does not mention either parameter, so it fails to compensate for the undocumented mailbox_name. The agent must rely entirely on the schema, which lacks context for mailbox_name. The description adds no semantic meaning to the parameters.

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

Purpose4/5

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

The description clearly states the action and resource: 'Change the password of a mailbox.' It names the specific operation on a mailbox, which distinguishes it from MySQL user password tools or other mailbox operations. However, it does not explicitly differentiate it from other 'set_password' siblings, though the mailbox resource is explicit enough.

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

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, typical scenarios, or exclusions. The agent is left to infer that it is for changing mailbox passwords, but no context is given about when this is appropriate compared to other mailbox operations.

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

combell_mail_zones_aliases_createA

Create an e-mail alias that forwards to one or more destination addresses.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_nameYes
destinationsYesDestination addresses
email_addressYesThe alias address, e.g. 'sales@example.be'

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false, destructiveHint=false, and idempotenceHint=false. The description adds the useful forwarding behavior ('forwards to one or more destination addresses') but does not disclose edge-case behavior such as duplicate alias handling, propagation delays, or permission requirements. It does not contradict the annotations.

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

Conciseness5/5

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

A single, front-loaded sentence that states the action and the core behavior with no unnecessary words. Every part earns its place.

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

Completeness3/5

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

For a simple create operation with three required parameters and no output schema, the description is mostly adequate, but it omits the relationship between domain_name and email_address and gives no indication of return values or what happens if the alias already exists. An agent could invoke it correctly with the schema alone, but there are still gaps.

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

Parameters3/5

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

Schema coverage is 67%, with email_address and destinations already documented. The description adds the forwarding relationship between the alias and destinations, which helps clarify destinations semantics, but domain_name remains undocumented in both the schema and description, and the description does not explain that the alias belongs to the given domain.

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

Purpose5/5

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

The description uses a specific verb ('Create') and resource ('e-mail alias') and adds the defining behavior: forwarding to one or more destination addresses. This clearly distinguishes it from sibling tools like combell_mail_zones_aliases_update, combell_mail_zones_aliases_delete, and combell_mail_zones_catch_all_create.

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

Usage Guidelines3/5

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

Usage is implied by the verb 'Create' in context with sibling aliases_update and aliases_delete, but the description does not explicitly state when to prefer this over alternatives or warn against creating an alias that already exists. No exclusion or alternative guidance is provided.

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

combell_mail_zones_aliases_deleteA
Destructive

Delete an e-mail alias. SIDE EFFECT: mail to the alias will bounce.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_nameYes
email_addressYesThe alias address to delete

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, but the description adds valuable side-effect context ('mail to the alias will bounce') that goes beyond the annotation. This informs the agent of the consequence, which is helpful. No contradiction; description aligns with destructive hint.

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

Conciseness5/5

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

The description is extremely concise: one sentence for the action and a clear side-effect note. It is front-loaded with the primary purpose and has zero wasted words.

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

Completeness4/5

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

For a simple delete operation with two parameters, no output schema, and annotations covering destructive nature, the description covers the essential side effect. It does not mention prerequisites or idempotency, but these are less critical given the simplicity and annotations. The lack of domain_name documentation is a minor gap.

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

Parameters2/5

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

Schema description coverage is 50%: email_address has a description ('The alias address to delete'), but domain_name has none. The description does not compensate for this gap, adding no meaning to either parameter. The tool name suggests domain context, but the description offers no clarification.

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

Purpose5/5

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

The description states a specific verb ('Delete') and resource ('an e-mail alias'), clearly distinguishing it from sibling tools like combell_mail_zones_aliases_create and combell_mail_zones_aliases_update. The action is unambiguous.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives, but the side-effect warning ('mail to the alias will bounce') implies caution and suggests it is for removing an alias. It lacks explicit when/when-not guidance or mention of sibling delete tools like combell_mailboxes_delete or combell_mail_zones_catch_all_delete.

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

combell_mail_zones_aliases_updateA
Idempotent

Replace the destination addresses of an existing alias. The change is processed in the background (202 Accepted).

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_nameYes
destinationsYesThe full new list of destination addresses
email_addressYesThe alias address

TDQS

A4/5.0
Behavior4/5

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

Annotations already communicate non-read-only, idempotent, and non-destructive behavior. The description adds valuable behavioral context by noting that the change is processed asynchronously and returns 202 Accepted. This goes beyond the structured annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that states the core action and the key asynchronous behavior. Every word earns its place; there is no repetition or filler.

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

Completeness4/5

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

For a simple three-parameter tool with no output schema, the definition is nearly complete: required parameters are clear, the mutation behavior is stated, and the async 202 response is disclosed. The main gaps are the undocumented domain_name parameter and no mention of how to check completion, but these are minor given the tool's simplicity.

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

Parameters3/5

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

The schema describes destinations as 'The full new list of destination addresses' and email_address as 'The alias address,' which covers two of three parameters. The description reinforces these meanings but adds no semantic detail for the undocumented domain_name parameter, leaving a moderate gap.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Replace the destination addresses of an existing alias.' This clearly distinguishes the tool from sibling tools like combell_mail_zones_aliases_create and combell_mail_zones_aliases_delete.

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

Usage Guidelines3/5

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

The description implies this tool is for updating an existing alias's destinations rather than creating or deleting alias records, but it does not explicitly name alternatives or state when not to use it. The context is clear enough to infer, but no direct routing guidance is provided.

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

combell_mail_zones_catch_all_createA

Set a catch-all: e-mail sent to non-existent addresses on the domain is delivered to this address.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_nameYes
email_addressYesDestination for all unmatched e-mail

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare the operation as non-readonly, non-idempotent, and non-destructive. The description adds the core routing behavior, but it does not disclose consequences such as whether an existing catch-all gets replaced or how the API responds on success. 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.

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. Every part contributes to understanding the function and key parameters.

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

Completeness3/5

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

For a simple two-parameter create operation, the description is adequate but incomplete. It does not clarify behavior when a catch-all already exists, possible validation rules for the email address, or how to verify/remove the created catch-all. The lack of an output schema also leaves return value expectations unspecified.

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

Parameters3/5

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

Schema description coverage is 50%; email_address already has a schema description ('Destination for all unmatched e-mail'), and the tool description reinforces it. However, domain_name has no schema description, and the tool description does not clarify important constraints like whether the address must be a local mailbox or whether the domain must be a specific format.

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

Purpose5/5

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

The description states a specific verb ('Set') and resource ('catch-all') and explains the exact behavior: e-mail to non-existent addresses is delivered to a specified address. This clearly distinguishes it from related siblings such as catch_all_delete or aliases_create.

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

Usage Guidelines3/5

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

The intended usage is implied by the clear function: use when you need a catch-all for a domain. However, there is no explicit guidance about when not to use it or reference to alternatives, such as the sibling combell_mail_zones_catch_all_delete for removing a catch-all.

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

combell_mail_zones_catch_all_deleteA
Destructive

Remove a catch-all address from the mail zone.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_nameYes
email_addressYesThe catch-all destination address to remove

TDQS

A3.8/5.0
Behavior3/5

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

The description aligns with the destructiveHint annotation by specifying that the catch-all address is the object removed. It adds a small amount of context about what gets destroyed, but does not disclose effects such as stopped mail delivery or whether the operation is reversible once executed.

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

Conciseness5/5

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

The description is a single short sentence with no filler. It front-loads the verb and immediately identifies the resource being affected.

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

Completeness4/5

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

For a simple two-parameter destructive operation with a destructiveHint annotation and no output schema, this description is nearly sufficient. The only real gaps are the implicit domain_name semantics and the absence of any guidance about expected errors or post-removal behavior.

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

Parameters3/5

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

The schema already documents 'email_address' as 'The catch-all destination address to remove', and the description echoes that concept. However, 'domain_name' is left undocumented in both the schema and description; the phrase 'from the mail zone' only weakly implies its role as the zone identifier.

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

Purpose5/5

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

The description uses a specific verb ('Remove') with a clear resource ('catch-all address') and location ('mail zone'). It clearly distinguishes this deletion tool from the sibling creation tool 'combell_mail_zones_catch_all_create'.

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

Usage Guidelines3/5

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

The intended use is implied by the clear delete purpose, but the description does not explicitly state when to use it versus alternatives, nor does it mention any prerequisites or exclusion conditions. It names no sibling or context-based routing.

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

combell_mail_zones_getA
Read-onlyIdempotent

Get the mail zone of a domain: whether mail is enabled, the mail accounts (with the account_id needed to create mailboxes), aliases, anti-spam level, catch-all and extra SMTP domains.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_nameYesThe domain name, e.g. 'example.be'

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds value beyond these by detailing what the response contains and noting that the account_id is needed to create mailboxes, which is useful operational context. No contradiction with annotations.

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

Conciseness4/5

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

A single, front-loaded sentence beginning with the core action ('Get the mail zone of a domain') followed by an efficient list of response components. It is dense but every clause earns its place; it could be split into two sentences but is not bloated.

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

Completeness4/5

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

For a simple read tool with one well-documented parameter, annotations covering safety, and no output schema, the description is complete: it states what is retrieved and enumerates the response elements an agent needs. The only minor gap is the absence of explicit sibling routing, which is a usage concern rather than completeness.

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

Parameters3/5

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

Schema description coverage is 100% โ€” the domain_name parameter is already documented in the schema with a format example ('example.be'). The description adds no parameter detail beyond that, so the baseline 3 applies since the schema carries the full semantic load.

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

Purpose5/5

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

The description states a specific verb ('Get') and resource ('mail zone of a domain') and enumerates the response contents โ€” mail enabled status, mail accounts with account_id, aliases, anti-spam level, catch-all, and SMTP domains. This content list differentiates it from siblings like combell_mailboxes_get (which focuses on mailboxes) and the various mail_zones mutation tools, so an agent can tell it apart without opening schemas.

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

Usage Guidelines3/5

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

Usage is only implied โ€” a GET tool for a broad domain mail overview. It does not explicitly state when to prefer this over combell_mailboxes_get or combell_domains_get, nor does it name alternatives or exclusions. The purpose is clear enough to infer typical use, but explicit routing guidance is absent.

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

combell_mail_zones_set_anti_spamA
Idempotent

Set the anti-spam level of the mail zone (none, basic or advanced). Check allowed_types on the mail zone first.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYes
domain_nameYes

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds the requirement to check allowed_types, which hints at validation behavior, but does not describe side effects, return values, or failure modes. Given annotations cover safety, this adds modest context beyond them.

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

Conciseness5/5

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

Two concise sentences, no redundancy. The purpose is stated first, followed by a necessary prerequisite. Every word earns its place.

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

Completeness4/5

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

For a simple setter with only two parameters and no output schema, the description covers the core action and a key prerequisite. It could mention error handling or return value, but these are less critical given the idempotent and non-destructive annotations. Overall, it's adequately complete.

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

Parameters4/5

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

Schema coverage is 0%, but the description adds meaning by listing the enum values and instructing to check allowed_types, which links the type parameter to the zone's allowed set. This compensates for the lack of parameter descriptions in the schema, though domain_name remains unexplained.

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

Purpose5/5

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

The description clearly states the action (set), the resource (anti-spam level of mail zone), and enumerates the allowed values (none, basic, advanced). The mention of checking allowed_types distinguishes it from other mail zone operations, making the tool's specific role unambiguous.

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

Usage Guidelines4/5

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

It provides a clear prerequisite: check allowed_types on the mail zone first. This implicitly instructs the agent to call mail_zones_get before setting. While it doesn't explicitly contrast with sibling tools, the guidance on when to use this tool is present.

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

combell_mail_zones_smtp_domains_createA

Add an extra SMTP domain to the mail zone, so mail sent to that domain is caught by the matching addresses on the main domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostnameYesThe extra domain, e.g. 'example.com'
domain_nameYesThe main domain (mail zone)

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate this is non-read-only, non-idempotent, and non-destructive. The description adds useful behavioral context by explaining the effect on mail routing. However, it does not disclose what happens on duplicate creation, whether domains must already be registered/verified, or other side effects that would matter 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.

Conciseness5/5

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

The description is a single, front-loaded sentence. It leads with the action, then gives the behavioral rationale. There is no filler, repetition, or unnecessary detail.

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

Completeness4/5

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

For a two-parameter create operation with fully described parameters and no output schema, the description plus schema provides enough to select and invoke the tool correctly. It could be more complete by noting duplicate-handling or domain-verification requirements, but nothing essential for basic invocation is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3; the schema already explains 'extra domain' and 'main domain (mail zone)'. The description reinforces the relationship between the two parameters but does not add meaningful detail beyond the schema.

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

Purpose4/5

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

The description states a specific verb and resource: 'Add an extra SMTP domain to the mail zone.' It also explains the operational purpose: mail to that domain is caught by matching addresses on the main domain. It does not explicitly name or contrast sibling tools like smtp_domains_update/delete, but the 'add/create' semantics and resource type make it reasonably distinguishable.

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

Usage Guidelines3/5

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

Usage is implied rather than explicit: an agent can infer this is for adding a new extra SMTP domain to a mail zone. There is no when-to-use/when-not-to-use guidance, no mention of prerequisites, and no direct comparison with alternatives such as aliases or catch-all creation.

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

combell_mail_zones_smtp_domains_deleteC
Destructive

Remove an extra SMTP domain from the mail zone.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostnameYes
domain_nameYes

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, and the description says 'Remove,' which is consistent. However, the description adds no further behavioral contextโ€”no mention of permanence, side effects, or reversibility. Given the annotations cover the destructive nature, the description adds minimal value beyond the structured data.

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

Conciseness4/5

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

The description is a single, concise sentence with no fluff. It states the core purpose efficiently. However, it is so brief that it forgoes useful context, but that is more a completeness issue than a structure issue.

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

Completeness1/5

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

For a destructive tool with two required parameters and no output schema, the description is severely incomplete. It lacks parameter explanations, effect descriptions, and any caveats. An agent cannot safely and correctly invoke this tool without additional external knowledge, making it inadequate for autonomous use.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain what 'hostname' and 'domain_name' refer to. The agent must guess that 'hostname' is the mail zone hostname and 'domain_name' is the SMTP domain to delete. This is a significant gap for a tool with only two parameters, both required.

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

Purpose4/5

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

The description clearly states the action (Remove) and the resource (extra SMTP domain from the mail zone). It is distinct from sibling tools like create/update for SMTP domains, though the term 'extra' could be ambiguous regarding whether it means a domain beyond the primary or any SMTP domain. Still, the core purpose is clear.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It does not mention any prerequisites, conditions, or contrast with other mail zone operations. An agent would have to infer from the sibling list that this is the delete counterpart, but no explicit direction is given.

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

combell_mail_zones_smtp_domains_updateC
Idempotent

Enable or disable an extra SMTP domain on the mail zone. The change is processed in the background (202 Accepted).

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYes
hostnameYes
domain_nameYes

TDQS

C2.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=true, covering the write and safety profile. The description adds a valuable behavioral detail: 'The change is processed in the background (202 Accepted).' This informs the agent that the operation is asynchronous, which is not disclosed by the annotations. 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.

Conciseness4/5

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

The description is a single concise sentence with no fluff. The primary action is front-loaded, and the async note is appended. It is efficient and easy to scan, though it could be more structured to include parameter hints. It earns its length.

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

Completeness1/5

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

Given the lack of parameter descriptions, no output schema, and no sibling differentiation, the description is inadequate for an agent to call the tool correctly. It omits what domain_name and hostname refer to, the prerequisites (e.g., domain must already exist), and the full effect of enabling/disabling. The description leaves major knowledge gaps that an agent would need to resolve elsewhere.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not compensate. It only hints at the 'enabled' parameter via the phrase 'Enable or disable,' but provides no explanation of domain_name or hostname. An agent cannot infer what these parameters represent or their expected formats. This is a critical gap for a 3-parameter tool with no schema descriptions.

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

Purpose4/5

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

The description clearly states the action: 'Enable or disable an extra SMTP domain on the mail zone.' It identifies the verb (enable/disable), the resource (SMTP domain on mail zone), and the state change. It distinguishes from create/delete siblings by implying an update operation, though it doesn't explicitly say 'update an existing domain.' The action is specific enough for an agent to grasp the core purpose.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. It doesn't mention that this is for existing domains, nor does it contrast with combell_mail_zones_smtp_domains_create or delete. There is no 'use this when' or 'instead of' language. The agent must infer usage from the action, which is minimal.

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

combell_mysql_databases_createA

Create a MySQL database on an account (with a first read/write user). The name you pass is prefixed during provisioning, so the final database name differs. Runs in the background: poll the returned provisioning job for the resource link.

ParametersJSON Schema
NameRequiredDescriptionDefault
passwordYesPassword for the database user: 8-20 characters, a mix of letters and digits with at least one of each, no spaces, none of * โ‚ฌ $ & + } { ' " \
account_idYesAccount to create the database on (see combell_accounts_list)
database_nameYesDesired name; Combell prefixes it (e.g. 'shop' becomes 'ID123456_shop')

TDQS

A4/5.0
Behavior4/5

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

Annotations only say the tool is not read-only, not idempotent, and not destructive. The description adds valuable behavior beyond that: the database name is prefixed, the operation runs in the background, and the result is a provisioning job to poll. This gives the agent needed execution expectations 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.

Conciseness5/5

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

The description is three sentences with no filler. The core action is front-loaded, and each sentence adds necessary information: what is created, how the name is changed, and how the async result is delivered.

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

Completeness4/5

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

With no output schema, the description correctly tells the agent to expect a provisioning job to poll and to use the returned resource link. It could be more complete by naming the provisioning job lookup tool or describing the job field, but for a create action with three well-documented parameters, it is largely sufficient.

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

Parameters3/5

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

Schema coverage is 100% and each parameter already has a meaningful description. The tool description mostly repeats the prefixing behavior already present in the database_name schema descriptionahanhasil. It does not add much parameter-level meaning beyond what the schema provides, so the baseline of 3 applies.

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

Purpose5/5

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

The description clearly states the action: create a MySQL database on an account and set up a first read/write user. It distinguishes this tool from mysql users tools and mysql database list/get/delete tools by specifying the creation and provisioning behavior.

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

Usage Guidelines3/5

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

The description gives clear operational context such as async execution and polling, but it does not explicitly say when to use this tool over alternatives like combell_mysql_users_create or combell_mysql_databases_get. Usage is implied rather than stated.

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

combell_mysql_databases_deleteA
Destructive

Delete a MySQL database and all its data. SIDE EFFECT: irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
database_nameYesThe provisioned database name

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already flag the operation as destructive and non-idempotent. The description adds value by explicitly warning that the side effect is irreversible and that all data is removed, going beyond the annotation flags.

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

Conciseness5/5

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

The description is extremely concise: two short sentences with no filler. The core action and object come first, and the irreversibility warning is clearly isolated. Every word contributes meaning.

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

Completeness5/5

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

For a single-parameter delete operation, the description covers the action, the object, the full data scope, and the irreversible consequence. The annotations cover the destructive nature, and the schema fully documents the parameter, so no critical information is missing.

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

Parameters3/5

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

Schema description coverage is 100% and the only parameter, database_name, is already described as 'The provisioned database name'. The description does not add further parameter-level detail beyond what the schema provides.

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

Purpose5/5

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

The description uses a specific verb ('Delete') and resource ('MySQL database'), and explicitly states the scope ('all its data'). It clearly distinguishes this from sibling tools like combell_mysql_databases_list and combell_mysql_databases_create.

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

Usage Guidelines2/5

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

The description states what the tool does but provides no guidance on when to use it versus alternatives, prerequisites, or exclusions. It does not mention whether the database must exist or if there are any preconditions before deletion.

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

combell_mysql_databases_getB
Read-onlyIdempotent

Get a MySQL database by its (provisioned) name.

ParametersJSON Schema
NameRequiredDescriptionDefault
database_nameYesThe provisioned database name, e.g. 'ID123456_shop'

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the 'provisioned' naming detail, which is useful, but does not disclose anything else like error behavior or return format. With annotations covering the main traits, the description adds modest value.

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

Conciseness5/5

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

A single sentence with no filler. The key information (verb, resource, parameter) is front-loaded and immediately clear. Every word earns its place; it is appropriately minimal for such a simple read operation.

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

Completeness4/5

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

Given the low complexity (one parameter, no output schema, annotations covering safety), the description is nearly sufficient. It clearly indicates the operation and the required input. It could mention that the return value is the database details, but that is implicit for a get operation. The lack of response description is a minor gap, not a critical one.

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

Parameters3/5

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

The input schema already documents the parameter with a clear description including an example. The tool description repeats the 'provisioned' wording but adds no new meaning. With 100% schema coverage, the baseline of 3 applies; the description does not compensate or enrich beyond the schema.

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

Purpose4/5

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

The description clearly states the action (Get) and resource (MySQL database) with the key parameter (provisioned name). It distinguishes from list and create/delete siblings by implying single-item retrieval, but does not explicitly name the alternative tools. The 'provisioned' qualifier adds useful specificity.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus the list or other database tools. It does not mention that the database name must be known beforehand, or that list should be used to discover names. The description provides no context for selection.

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

combell_mysql_databases_listA
Read-onlyIdempotent

List the MySQL databases on your Combell account with hostname, sizes, user count and account id.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of items to skip (default 0)
takeNoNumber of items to return (the API may return fewer)

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds value by clarifying the account scope and the specific fields returned, which is useful since there is no output schema. It does not disclose pagination behavior, but skip/take parameters already hint at that.

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

Conciseness5/5

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

A single sentence that is front-loaded with the core action and resource, followed immediately by the useful return-field details. There is no redundant or filler content.

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

Completeness4/5

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

For a simple, read-only list operation with full schema coverage and safety annotations, the description provides enough context: account scope, output fields, and the resource type. It could be slightly richer by mentioning pagination or the absence of filtering, but those are minor gaps.

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

Parameters3/5

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

The input schema fully documents both parameters (skip and take) with descriptions, so the baseline is 3. The description adds no extra meaning about these parameters, but none is needed given the 100% schema coverage.

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

Purpose5/5

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

The description uses a specific verb ('List'), names the exact resource ('MySQL databases on your Combell account'), and enumerates the returned information ('hostname, sizes, user count and account id'). This clearly differentiates it from sibling tools like combell_mysql_databases_get, create, and delete.

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

Usage Guidelines3/5

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

The description implies this tool is for getting an account-level overview of MySQL databases, but it does not explicitly state when to choose it over combell_mysql_databases_get or when not to use it. The intended use is inferable from 'List', but no alternative routing is provided.

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

combell_mysql_users_createA

Add a user to a MySQL database. New users get read_only rights. Runs in the background (202 Accepted).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesUser name: 2-14 lowercase letters and/or digits, no spaces
passwordYesPassword: 8-20 characters, a mix of letters and digits with at least one of each, no spaces, none of * โ‚ฌ $ & + } { ' " \
database_nameYes

TDQS

A3.6/5.0
Behavior4/5

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

Beyond annotations (readOnlyHint false, destructiveHint false), the description adds that the operation 'Runs in the background (202 Accepted)', informing the agent that it is asynchronous and will not return the created resource directly. It also discloses that new users get 'read_only rights', which is a behavioral trait not captured in annotations. 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.

Conciseness5/5

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

The description is two concise sentences with no filler. The core action is front-loaded, followed by two key behavioral details (read_only rights and async execution). Every word adds value, and it is immediately scannable.

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

Completeness4/5

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

For a simple create operation, the description covers the essential behavioral context: async execution with 202 Accepted, and the read_only rights assignment. It does not describe the response format or mention any prerequisites like an existing database, but the schema covers required parameters and the output is not specified. Given the simplicity and annotations, it is largely complete.

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

Parameters3/5

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

Schema description coverage is 67% (two of three parameters have descriptions). The description does not add meaning beyond the schema for the parameters, but the covered parameters (name and password) have clear constraints. The database_name parameter lacks a description, and the tool description does not compensate for that gap. Since coverage is moderate, a baseline of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action 'Add a user to a MySQL database' with a specific verb and resource. It distinguishes from sibling tools like list/delete/set by indicating creation, and the mention of 'read_only rights' adds specificity. However, it does not explicitly contrast with other create tools like combell_mysql_databases_create, but the resource is clearly different.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as combell_mysql_users_list or combell_mysql_users_set_status. It only implies usage through the action, but does not state prerequisites, scenarios, or exclusions. The async note is behavioral, not usage guidance.

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

combell_mysql_users_deleteA
Destructive

Delete a MySQL database user. Only users with read_only rights can be deleted. SIDE EFFECT: irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_nameYes
database_nameYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already mark destructiveHint=true and idempotentHint=false, but the description adds meaningful behavioral context beyond that: the operation is irreversible and only read_only users qualify. This aligns with the annotations and gives the agent risk-relevant information.

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

Conciseness5/5

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

The description is short and information-dense: it states the action, the qualifying condition, and the irreversible side effect in three sentences. There is no filler or repetition, and the key action is front-loaded.

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

Completeness3/5

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

For a simple delete tool with no output schema, the description covers the core action, eligibility, and irreversibility. However, it does not clarify the meaning or expected values of database_name and user_name, and it could usefully state what happens to associated privileges or whether deletion fails for non-read_only users. The provided information 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.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the two string parameters, user_name and database_name. It does not explain their format, relationship, or how database_name scopes the user deletion. The tool name and first sentence imply that user_name is the user to delete, but specific parameter semantics are left undocumented.

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

Purpose5/5

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

The description states a specific verb and resource: 'Delete a MySQL database user.' It clearly distinguishes this tool from siblings like combell_mysql_users_list, combell_mysql_users_create, combell_mysql_users_set_status, and combell_mysql_users_set_password. The extra constraint about read_only rights further disambiguates its scope.

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

Usage Guidelines3/5

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

The description gives an important eligibility condition ('Only users with read_only rights can be deleted') but does not explicitly guide the agent on when to prefer this tool over alternatives or what to do when the constraint is not met. It implies usage rather than naming sibling tools or exclusions.

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

combell_mysql_users_listA
Read-onlyIdempotent

List the users of a MySQL database with their rights (read_and_write or read_only) and status.

ParametersJSON Schema
NameRequiredDescriptionDefault
database_nameYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds minimal behavioral context beyond the annotations by stating the output includes rights and status, but it does not disclose behavior such as behavior on a non-existent database, pagination, or ordering. 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.

Conciseness5/5

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

A single sentence that front-loads the verb and resource, then appends exactly the distinguishing detail (rights and status). Every phrase earns its place, and there is zero redundant wording.

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

Completeness4/5

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

For a low-complexity read-only tool with a single parameter and a full safety profile in annotations, the description is nearly complete. It tells the agent what will be returned (users with rights and status) even though no output schema exists. Only minor details like pagination or empty-result behavior are absent, which is acceptable for a list operation.

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

Parameters3/5

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

Schema description coverage is 0%, so the description carries the burden of explaining database_name. It partially compensates: 'users of a MySQL database' conveys that database_name identifies which database's users to list. However, it stops at that level and provides no format, validation, or prerequisite details. The parameter name is self-descriptive, which softens the gap, but the description adds only minimal semantic value.

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

Purpose5/5

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

The description uses a specific verb ('List') with a clear resource ('users of a MySQL database') and specifies the returned content (rights: read_and_write or read_only, plus status). This distinguishes it from user-management siblings like combell_mysql_users_create, combell_mysql_users_set_status, and combell_mysql_users_delete, as well as from combell_mysql_databases_list.

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

Usage Guidelines3/5

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

The usage context is implied by the verb and resource ('List the users of a MySQL database'), so an agent can reasonably infer when to call it versus the user create/update/delete siblings. However, there is no explicit when-to-use language, no exclusions, and no named alternative for cases where rights or status detail is needed differently.

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

combell_mysql_users_set_passwordC
Idempotent

Change the password of a MySQL database user.

ParametersJSON Schema
NameRequiredDescriptionDefault
passwordYesNew password: 8-20 characters, a mix of letters and digits with at least one of each, no spaces, none of * โ‚ฌ $ & + } { ' " \
user_nameYes
database_nameYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already state readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description only confirms a mutation and adds no additional behavioral context, such as whether changing the password disconnects active sessions, requires privileges, or takes effect immediately. There is no contradiction with annotations.

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

Conciseness4/5

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

The description is a single front-loaded sentence with no filler, and every word carries meaning. It is concise, but the terseness contributes to under-specification in other dimensions, so it does not receive full marks.

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

Completeness2/5

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

For a tool with three required parameters, two of which are undocumented in both schema and description, and no output schema, this description is not complete enough for an agent to call it with full confidence. It lacks guidance on prerequisites, side effects, and how it relates to sibling MySQL user operations.

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

Parameters2/5

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

Schema description coverage is only 33%, and only 'password' is documented in the schema. The tool description does not explain 'user_name' or 'database_name' or their relationship, so it fails to compensate for the largely undocumented parameter set.

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

Purpose5/5

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

The description uses a specific verb, 'Change', and a clear resource, 'password of a MySQL database user'. This distinguishes it from siblings such as combell_mysql_users_create, combell_mysql_users_delete, and combell_mysql_users_set_status, and the 'MySQL' qualifier separates it from combell_mailboxes_set_password.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. An agent must infer from the tool name and sibling list that this applies to an existing MySQL user, and there is no mention of when set_password should be preferred over create or set_status.

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

combell_mysql_users_set_statusB
Idempotent

Enable or disable a MySQL database user.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYes
user_nameYes
database_nameYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description merely states the action without adding context about side effects, reversibility, or impact on existing sessions. It adds minimal value beyond the annotations.

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

Conciseness4/5

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

The description is a single, efficient sentence with no fluff. It is appropriately sized for a simple operation, though the lack of detail is a completeness issue rather than a conciseness issue.

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

Completeness2/5

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

For a tool with three parameters and zero schema coverage, the description is under-specified. It does not clarify parameter meanings, expected values, or prerequisites, leaving the agent to infer critical information. The description should compensate for the missing schema documentation but does not.

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

Parameters1/5

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

Schema description coverage is 0%, and the description provides no explanation of the three parameters (database_name, user_name, enabled). The meaning of 'enabled' is implied but not explicitly defined, and the relationship between parameters is unclear.

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

Purpose5/5

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

The description clearly states a specific action (enable/disable) on a specific resource (MySQL database user). It distinguishes from sibling tools like create, delete, and set_password without ambiguity.

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

Usage Guidelines3/5

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

The description implies when to use the tool (toggle user status) but does not explicitly mention alternatives or conditions. It doesn't say 'use this instead of deleting' or provide context on when enabling/disabling is appropriate.

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

combell_provisioning_jobs_getA
Read-onlyIdempotent

Get the status of a provisioning job (returned by account, MySQL database/user and domain operations). While the job is ongoing the response has status 'ongoing' with an estimated completion time; once finished it has status 'finished' and resource_links to the created resources. Do not retry the original operation until the job reports finished or cancelled; contact Combell support on 'failed'.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesThe provisioning job id (from the Location header / provisioning_job_id)

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already mark it read-only and idempotent, and the description adds meaningful runtime behavior: 'ongoing' status with estimated completion time, 'finished' with resource_links, and handling guidance for 'failed'. This goes well beyond the structured hints and prepares the agent for real responses.

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

Conciseness5/5

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

The description is front-loaded with the core purpose, followed by two compact sentences covering response states and operational guidance. There is no redundancy and every sentence contributes useful information.

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

Completeness5/5

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

With no output schema, the description carries the burden of explaining return semantics, and it does: ongoing with estimated completion time, finished with resource_links, and failed with a support action. The origin of job_id and the poll-until-complete behavior are also covered, making the tool self-sufficient for an agent.

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

Parameters3/5

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

Schema description coverage is 100% for the single job_id parameter, and the schema already explains that it comes from the Location header / provisioning_job_id. The description reinforces the origin ('returned by account, MySQL database/user and domain operations') but does not add significant new parameter-level meaning.

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

Purpose5/5

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

The description states a specific verb and resource: 'Get the status of a provisioning job'. It further clarifies scope by naming the operations that return such jobs (account, MySQL database/user, domain), making it immediately distinct from sibling get/list tools.

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

Usage Guidelines5/5

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

The description gives explicit behavioral guidance: do not retry the original operation until the job is finished or cancelled, and contact support on 'failed'. This tells the agent exactly when and how to use the polling endpoint, and what to avoid doing instead.

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

combell_scheduled_tasks_createB

Add a scheduled task (cron job) to a Linux hosting that runs a script on the hosting.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledNoDefault true
domain_nameYes
cron_expressionYes5-field cron expression: minute (0-59 or */5, */10, */15, */30), hour (0-23 or *), day of month (1-31 or *), month (1-12 or *), day of week (1-7 = Monday-Sunday, or *). Example: '*/15 * * * *'
script_locationYesAbsolute path on the hosting of the script to execute, e.g. '/www/cron.php'

TDQS

B3.3/5.0
Behavior2/5

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

Annotations are all false (readOnlyHint, idempotentHint, destructiveHint), so the description carries the full burden of behavioral disclosure. It only says 'Add', implying mutation, but provides no detail on side effects, idempotency, error handling, or whether existing tasks with similar configurations are affected.

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

Conciseness5/5

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

The description is a single, concise sentence that front-loads the action and target. No wasted words, efficient and to the point.

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

Completeness2/5

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

For a 4-parameter tool with no output schema, the description is minimal. It doesn't explain the return value, prerequisites, or behavior on success/failure. It also doesn't clarify what domain_name refers to. The cron expression format is in the schema, but other aspects are missing.

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

Parameters2/5

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

Schema covers 75% of parameters, but the description adds no parameter information. The uncovered domain_name parameter lacks any description in both schema and tool description, so the tool description does not compensate for the gap.

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

Purpose5/5

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

The description clearly states the verb 'Add', the resource 'scheduled task (cron job)', and the target 'Linux hosting'. It distinguishes from sibling list/get/update/delete operations by indicating creation, 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.

Usage Guidelines3/5

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

The description implies usage for creating a new scheduled task but provides no explicit guidance on when to choose this over update/delete, nor any conditions or alternatives. The action is clear, but no exclusions or sibling comparisons are mentioned.

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

combell_scheduled_tasks_deleteA
Destructive

Delete a scheduled task from a Linux hosting. SIDE EFFECT: irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_nameYes
scheduled_task_idYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true. The description adds the explicit 'SIDE EFFECT: irreversible' note, which goes beyond the annotation by clarifying that the deletion cannot be undone. This is useful, though it does not detail permissions, cascading effects, or whether a running task is affected.

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

Conciseness5/5

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

The description is a single concise sentence followed by a brief side-effect warning. It is front-loaded with the core action and contains no filler, making it easy to parse quickly.

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

Completeness4/5

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

For a simple two-parameter delete operation, the description is largely complete: it names the resource, the target environment, and the irreversibility. It does not elaborate on return values, but no output schema exists and the absence is acceptable for a mutation. Minor gap: it could reference list/get to retrieve the scheduled_task_id.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needed to compensate for parameter documentation, but it does not mention domain_name or scheduled_task_id at all. The parameter names are reasonably self-explanatoryassed, but the description provides no additional meaning, format, or relationship between the identifiers.

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

Purpose5/5

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

The description states a specific action ('Delete') on a specific resource ('a scheduled task from a Linux hosting'), which clearly distinguishes it from sibling tools like combell_scheduled_tasks_create, combell_scheduled_tasks_update, combell_scheduled_tasks_list, and combell_scheduled_tasks_get. The verb and object are unambiguous.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It does not say, for example, to use combell_scheduled_tasks_get or list first to obtain the scheduled_task_id, nor does it explain when to prefer update over delete.

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

combell_scheduled_tasks_getA
Read-onlyIdempotent

Get a scheduled task of a Linux hosting by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_nameYes
scheduled_task_idYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds no further behavioral context such as return shape, not-found behavior, or authentication constraints. It is consistent with annotations but contributes little beyond them.

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

Conciseness5/5

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

The description is a single, compact sentence with no filler. The core identifying information is front-loaded and every word contributes to the meaning.

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

Completeness3/5

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

For a simple read-only get tool, the description is minimally viable, but it leaves gaps: it does not explain the role of domain_name, nor how scheduled_task_id is scoped to a Linux hosting. Annotations cover safety, but parameter semantics and usage boundaries remain under-specified.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the burden of explaining parameters. It only says 'by id,' which weakly clarifies scheduled_task_id, but it does not explain what domain_name means in this context or how the two parameters relate. An agent cannot fully disambiguate the required inputs from the description alone.

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

Purpose5/5

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

The description states a specific verb ('Get'), a specific resource ('scheduled task'), a scope ('of a Linux hosting'), and an identifier ('by id'). This clearly differentiates it from sibling tools like list, create, update, and delete.

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

Usage Guidelines3/5

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

The 'by id' phrasing implies this tool is for fetching a single scheduled task once the ID is known, but there is no explicit guidance about when to prefer this over combell_scheduled_tasks_list or other alternatives. Usage is inferred, not stated.

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

combell_scheduled_tasks_listA
Read-onlyIdempotent

List the scheduled tasks (cron jobs) of a Linux hosting.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_nameYesThe Linux hosting domain name

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the 'cron jobs' clarification, but no additional behavioral context such as return format or scope of results. 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.

Conciseness5/5

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

The description is a single, concise sentence with no filler. The key action and resource are front-loaded, and the parenthetical clarification adds value without bloating the text.

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

Completeness4/5

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

For a simple, read-only list operation with one documented required parameter and no output schema, the description is adequate. It could mention what the returned list contains or whether pagination is involved, but the core invocation details are clear enough.

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

Parameters3/5

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

The only parameter, domain_name, is 100% covered by the input schema description. The tool description reinforces the Linux hosting context, but does not add significant semantics beyond the schema, so the baseline of 3 applies.

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

Purpose4/5

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

The description names a specific verb ('List') and resource ('scheduled tasks (cron jobs)') scoped to a Linux hosting, making the purpose clear. It does not explicitly contrast with the sibling scheduled_tasks_get, but 'list' vs 'get' is a recognizable distinction.

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

Usage Guidelines3/5

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

Usage is implied: an agent would use this to retrieve scheduled tasks for a Linux hosting domain. There is no explicit guidance on when to prefer this over alternatives like scheduled_tasks_get, nor any exclusions.

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

combell_scheduled_tasks_updateA
Idempotent

Update a scheduled task. The current task is read first and only the fields you pass are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledNo
domain_nameYes
cron_expressionNo5-field cron expression: minute (0-59 or */5, */10, */15, */30), hour (0-23 or *), day of month (1-31 or *), month (1-12 or *), day of week (1-7 = Monday-Sunday, or *). Example: '*/15 * * * *'
script_locationNoAbsolute path on the hosting of the script to execute
scheduled_task_idYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds value by explaining the read-first then partial-update behavior, which is not obvious from annotations alone. It also implies non-destructive and idempotent semantics consistent with the annotations, with 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.

Conciseness5/5

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

Two sentences, both purposeful. The first states the operation, the second adds crucial behavioral detail. No fluff or redundancy; the description is front-loaded and efficient.

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

Completeness4/5

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

For an update tool with no output schema and annotations covering idempotency and non-destructiveness, the description provides the essential partial-update behavior. It does not mention error handling or edge cases (e.g., nonexistent task), but those are often outside the scope of tool descriptions. Given the complexity and annotations, it is reasonably complete.

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

Parameters2/5

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

Schema description coverage is only 40%, leaving enabled, domain_name, and scheduled_task_id undocumented. The tool description does not compensate; it only mentions 'fields you pass' without elaborating on their meaning or formats. While cron_expression and script_location have schema descriptions, the description adds no extra semantic value for the missing parameters.

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

Purpose5/5

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

The description clearly states the operation: 'Update a scheduled task' with the verb 'update' and resource 'scheduled task'. It also distinguishes from siblings like create, delete, get, and list by focusing on partial modification. The additional sentence explaining read-first behavior further clarifies the specific purpose.

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

Usage Guidelines4/5

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

The description provides clear context on how to use the tool: 'only the fields you pass are changed' implies you should pass only the fields to modify. It doesn't explicitly name alternatives or exclusions, but the behavior is unambiguous and helps an agent decide when to use it over create/delete. This is adequate without being exhaustive.

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

combell_servicepacks_listA
Read-onlyIdempotent

List the servicepacks (product packages) available on your Combell reseller contract, with their ids.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds the output detail (ids) but does not disclose any additional behavioral traits like pagination, ordering, or limitations. Adequate given annotations, but not rich.

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

Conciseness5/5

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

A single, well-structured sentence that front-loads the action and avoids redundancy. Every word adds value, making it perfectly concise.

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

Completeness5/5

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

For a simple list operation with no parameters and annotations covering safety, the description is complete. It specifies the resource, scope, and key output, leaving no missing information an agent would need.

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

Parameters4/5

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

The tool has zero parameters, and the schema is empty (100% coverage). No parameter explanation is needed, and the description doesn't attempt to add any, aligning with the baseline for parameterless tools.

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

Purpose5/5

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

The description clearly states the verb 'List', the resource 'servicepacks (product packages)', and the scope 'available on your Combell reseller contract'. It also mentions the output includes ids, making the tool's purpose unambiguous.

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

Usage Guidelines4/5

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

Provides clear context (reseller contract) but no explicit exclusions or alternatives. Since no sibling tools for servicepacks exist, the guidance is sufficient; the context implies the intended use case.

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

combell_ssh_keys_addA

Attach an SSH public key to a Linux hosting so it can be used to log in over SSH/SFTP.

ParametersJSON Schema
NameRequiredDescriptionDefault
public_keyYesThe public key in OpenSSH format, e.g. 'ssh-ed25519 AAAA... user@host'
domain_nameYesThe Linux hosting domain name

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the safety profile is partially covered. The description adds the intended effect of enabling SSH/SFTP login, but does not disclose additional behavioral details such as duplicate-key handling, permissions required, or whether existing keys are preserved.

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

Conciseness5/5

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

The description is a single, well-structured sentence that immediately states the action, target, and purpose. Every part earns its place, and there is no redundant or vague wording.

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

Completeness4/5

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

For a simple two-parameter operation with no output schema, the description conveys the action and outcome sufficiently for an agent to select and invoke the tool. It could have mentioned what happens to existing keys or whether duplicate keys cause errors, but annotations and schema cover the essential operational context.

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

Parameters3/5

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

The schema already fully documents both parameters, including an example for public_key. The description adds little beyond restating that a public key is attached to a Linux hosting, so it matches the params but does not meaningfully supplement the schema's parameter descriptions.

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

Purpose5/5

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

The description uses a specific verb ('Attach') with a clear resource ('SSH public key') and target ('Linux hosting'), and states the purpose ('so it can be used to log in over SSH/SFTP'). This clearly distinguishes it from sibling tools like combell_ssh_keys_list, combell_ssh_keys_delete, and combell_ssh_keys_list_all.

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

Usage Guidelines3/5

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

The description implies when to use the tool: when an SSH public key needs to be attached to a hosting account for SSH/SFTP access. However, it does not explicitly mention alternatives or exclusions, such as using combell_ssh_keys_list to view keys or combell_ssh_keys_delete to remove one.

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

combell_ssh_keys_deleteA
Destructive

Remove an SSH public key (by fingerprint) from a Linux hosting. SIDE EFFECT: that key can no longer log in.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_nameYes
fingerprintYesFingerprint of the public key (see combell_ssh_keys_list)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, covering the safety profile. The description adds genuine value by disclosing the concrete consequence โ€” 'that key can no longer log in' โ€” which explains the real-world impact of the destructive operation beyond the generic annotation flags.

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

Conciseness5/5

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

Two short sentences with zero waste. The primary action is front-loaded ('Remove an SSH public key...'), and the consequential side effect is appended as a compact, clearly-labeled note. Every word earns its place.

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

Completeness4/5

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

For a simple two-parameter delete operation with full annotation coverage, the description is nearly complete. The side effect is disclosed, parameters are simple strings, and the fingerprint provenance is documented in the schema. Minor gaps: no mention of behavior when the key doesn't exist or the hosting is invalid, and no return-value description since there is no output schema.

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

Parameters3/5

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

Schema coverage is 50%: fingerprint is well-described with a cross-reference to combell_ssh_keys_list, but domain_name has no schema description. The tool description partially compensates by clarifying the operation targets 'a Linux hosting', implying domain_name identifies that hosting, but it doesn't specify expected format or clarify the relationship further.

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

Purpose5/5

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

The description states a specific verb ('Remove') + resource ('SSH public key') + qualifier ('by fingerprint' from 'a Linux hosting'). It clearly distinguishes from siblings like combell_ssh_keys_add (creation) and combell_ssh_keys_list (read-only enumeration), so an agent can tell them apart without opening schemas.

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

Usage Guidelines4/5

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

The description gives clear context: use this when a specific SSH public key should be removed from a Linux hosting. It does not explicitly name alternatives or exclusions (e.g., combell_ssh_set_enabled for disabling SSH entirely), but the action is unambiguous enough that the appropriate invocation context is evident.

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

combell_ssh_keys_listA
Read-onlyIdempotent

List the SSH public keys attached to a Linux hosting.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_nameYesThe Linux hosting domain name

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the read-only safety profile is covered. The description adds the operational scope (keys attached to a specific hosting) but no further behavioral details such as error behavior, ordering, or response shape.

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

Conciseness5/5

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

The description is one short, direct sentence that front-loads the verb and names the exact resource. It contains no filler, no repetition of the tool name, and no unnecessary background.

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

Completeness4/5

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

For a simple read-only list operation with one documented parameter and safe annotations, the description is sufficient for correct invocation. It does not cover return formatting, but the verb 'List' implies the result; the main gap is the lack of explicit routing guidance toward combell_ssh_keys_list_all for account-wide key lists.

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

Parameters3/5

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

The single required parameter domain_name is fully documented in the schema with the description 'The Linux hosting domain name', and schema coverage is 100%. The description reinforces that the parameter refers to a hosting, but it adds no significant meaning beyond the schema.

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

Purpose5/5

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

The description uses a specific verb ('List') and names the exact resource ('SSH public keys attached to a Linux hosting'). It clearly distinguishes this tool from siblings like combell_ssh_keys_list_all, combell_ssh_keys_add, and combell_ssh_keys_delete by scoping the operation to a single hosting.

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

Usage Guidelines3/5

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

Usage is only implied by the phrase 'attached to a Linux hosting'; the description does not explicitly say when to use this tool instead of combell_ssh_keys_list_all or other key-management siblings. There is no mention of exclusions or preference conditions, so the agent must infer the choice from context.

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

combell_ssh_keys_list_allA
Read-onlyIdempotent

List every SSH public key on your Combell account, with the Linux hostings each key is attached to.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of items to skip (default 0)
takeNoNumber of items to return (the API may return fewer)

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already establish read-only, idempotent, and non-destructive behavior. The description adds the context that results include the Linux hostings each key is attached to, but it stays silent on pagination behavior, ordering, or result size limits beyond what the schema implies.

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

Conciseness5/5

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

One front-loaded sentence with no wasted text. The core action and scope come first, and the return context follows naturally.

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

Completeness4/5

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

With no output schema, the description still communicates enough about the return content: SSH public keys plus their Linux hostings. Optional pagination parameters are fully documented in the schema, making the tool self-service. It could explain the response shape in more detail, but nothing essential is missing for a simple read-only listing.

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

Parameters3/5

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

The input schema already covers both parameters at 100% with descriptions for skip and take. The tool description does not need to add parameter detail and does not; it only reinforces the account-wide scope.

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

Purpose5/5

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

The description names the exact verb and resource: 'List every SSH public key on your Combell account.' The account-wide scope and the added detail about attached Linux hostings distinguish it from the narrower sibling combell_ssh_keys_list.

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

Usage Guidelines3/5

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

'Every... on your Combell account' implies this is the account-wide listing tool, so an agent can infer when it applies. However, it does not explicitly say when to prefer this over the sibling combell_ssh_keys_list or any alternative, leaving that routing implicit.

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

combell_ssh_set_enabledB
Idempotent

Enable or disable SSH access on a Linux hosting.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYes
domain_nameYesThe Linux hosting domain name

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate mutation (readOnlyHint=false), idempotence, and non-destructiveness. The description adds the concrete effect of toggling SSH access, but it does not disclose edge behaviors such as whether existing SSH sessions are terminated or whether the change is applied asynchronously.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. It immediately communicates the action and target resource, 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.

Completeness3/5

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

For a simple two-parameter boolean setter, the description is mostly sufficient, especially with annotations covering safety and idempotence. However, it lacks guidance on sibling differentiation and does not mention any asynchronous behavior or response characteristics, which would improve completeness.

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

Parameters4/5

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

The schema documents only domain_name, leaving enabled as a bare boolean. The description's 'enable or disable' provides the missing semantic for enabled, implying true enables and false disables. This compensates for the 50% schema coverage, though it does not explicitly name the parameter.

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

Purpose4/5

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

The description states a clear verb ('Enable or disable') and a specific resource ('SSH access on a Linux hosting'), so an agent can understand what the tool does. It does not explicitly differentiate from sibling SSH-key or linux_hostings_set_* tools, but the action is unambiguous enough.

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

Usage Guidelines2/5

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

The description provides no guidance about when to use this tool versus related siblings such as combell_ssh_keys_add/delete or other linux_hostings_set_* tools. There are no alternatives, prerequisites, or exclusions mentioned, so usage context is only implied.

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

combell_ssl_certificate_requests_createA

Order an SSL certificate from a certificate signing request (CSR). SIDE EFFECT: this purchases a paying product at your contract's (non-promotional) price. The CSR subject must contain CN, C, ST, L, O and E, and all SANs. After creation, complete the domain validations listed by combell_ssl_certificate_requests_get and then call combell_ssl_certificate_requests_verify.

ParametersJSON Schema
NameRequiredDescriptionDefault
csrYesPEM-encoded certificate signing request
certificate_typeYes
validation_levelYes
additional_validation_attributesNoRequired for organization/extended validation: Firstname, Lastname, Phone, EmailAddress (technical contact), Street, Number, PostalCode, VatCountryCode; optional OrganizationNumber

TDQS

A4/5.0
Behavior4/5

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

The description explicitly discloses a critical side effect: 'SIDE EFFECT: this purchases a paying product at your contract's (non-promotional) price.' This goes beyond the annotations, which only indicate non-read-only, non-idempotent, non-destructive. It also describes the CSR subject requirements and the required follow-up steps, adding valuable behavioral context. However, it does not mention reversibility 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.

Conciseness5/5

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

The description is concise: three sentences that front-load the purpose, then the side-effect warning, then the CSR requirements and next steps. Every sentence is essential with no fluff, making it highly efficient for an agent to parse.

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

Completeness4/5

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

Given the tool's complexity (4 params, side effect, multi-step workflow) and no output schema, the description covers the critical side effect, CSR content requirements, and the necessary next steps. It does not describe the response format or error scenarios, but these are less critical given the annotations and schema. It is fairly complete for a create tool with financial implications.

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

Parameters3/5

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

Schema coverage is only 50%, with csr and additional_validation_attributes having descriptions. The description compensates partially by specifying the CSR subject must contain CN, C, ST, L, O, E, and all SANs, which is not in the schema. However, it does not elaborate on the meaning of certificate_type or validation_level enums, though those values are fairly self-explanatory. It adds some value but does not fully bridge the coverage gap.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Order an SSL certificate from a certificate signing request (CSR).' This clearly states the action and distinguishes it from sibling tools like list/get/verify, which operate on existing requests or certificates. The follow-up workflow (get domain validations, then verify) further clarifies its role as the creation step.

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

Usage Guidelines3/5

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

The description implies usage by outlining the creation step and the subsequent validation/verification process, but it does not explicitly contrast with alternatives or state when not to use it. There is no mention of 'use this when you need a new certificate' or exclusions, leaving some inference to the agent.

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

combell_ssl_certificate_requests_getA
Read-onlyIdempotent

Get an SSL certificate request. While ongoing it returns the domain validations to complete (DNS CNAME, file upload or e-mail) and a short-lived provider portal URL. When the certificate has been issued the result reports status 'completed' with the certificate location (HTTP 303); when the request no longer exists without a certificate it reports 'gone' (HTTP 410).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe certificate request id

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnlyHint/idempotentHint annotations, the description discloses important lifecycle behavior: ongoing requests include domain validations and a short-lived portal URL; completed requests return HTTP 303 with the certificate location; missing requests return HTTP 410. This is substantial behavioral context an agent could not infer from annotations alone.

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

Conciseness5/5

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

The description is dense but every sentence earns its place: the first states the core action, and the next two explain the distinct response modes by lifecycle state. There is no redundant or filler content.

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

Completeness5/5

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

With no output schema, the description carries the burden of explaining what the response looks like, and it does so across all relevant states: in-progress, completed, and gone. The single required parameter is simple and already documented, so nothing essential is missing.

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

Parameters3/5

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

The input schema already fully documents the single 'id' parameter with a clear description ('The certificate request id') and 100% schema description coverage. The tool description adds no parameter-level detail, but none is needed beyond the schema.

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

Purpose5/5

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

The description states a specific verb and resource: 'Get an SSL certificate request.' It clearly differentiates this from sibling tools like combell_ssl_certificates_get (issued certificates) and combell_ssl_certificate_requests_list (listing requests) by focusing on the lifecycle states of a single request.

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

Usage Guidelines4/5

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

The description gives clear context for when to use the tool: to retrieve a single SSL certificate request and see its current state, including outstanding validations or completion status. It does not explicitly mention alternatives or when not to use it, so it stops short of a 5.

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

combell_ssl_certificate_requests_listA
Read-onlyIdempotent

List the pending SSL certificate requests (orders that are not issued yet).

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of items to skip (default 0)
takeNoNumber of items to return (the API may return fewer)

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the pending-filter scope as behavioral context, but says nothing about ordering, pagination defaults, or empty-result behavior. This matches the calibration pattern where scoping context earns a 3 when annotations carry the safety burden.

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

Conciseness5/5

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

A single front-loaded sentence with zero filler. The parenthetical earns its place by precisely defining 'pending' as 'not issued yet', which carries real disambiguation value.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity, read-only list with fully documented parameters and annotation-covered safety, the definition is nearly complete. The main gap is that there is no output schema and the description does not hint at the returned item shape, which an agent would need to chain results into combell_ssl_certificate_requests_get or verify calls.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: both skip (default 0) and take (max 500, 'the API may return fewer') are already fully documented in the schema. The description adds no parameter-level meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb plus resource: 'List the pending SSL certificate requests', and the parenthetical '(orders that are not issued yet)' clearly defines the scope. This distinguishes it from combell_ssl_certificates_list (issued certificates) and from the request-focused siblings (get/create/verify). An agent can tell what this tool returns without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'pending... not issued yet' scope gives implied guidance on when to use this tool, but no alternative is named and no exclusion is stated. With five SSL-related siblings (certificates list/get, requests get/create/verify), the agent is left to infer which sibling to call for issued certificates or for a single request's details.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

combell_ssl_certificate_requests_verifyA

Ask Combell to verify the domain validations of a certificate request once every non auto-validated value is in place. Calling it once is enough; verification takes some time. Reports 'completed' (303) or 'gone' (410) like the get tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe certificate request id

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a non-read-only, non-idempotent, non-destructive operation. The description adds valuable context beyond those: verification is asynchronous ('takes some time'), single invocation suffices, and the tool reports 'completed' (303) or 'gone' (410) like the get tool. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no filler. The core purpose and precondition are front-loaded, and the behavioral/status details follow efficiently. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter action with no output schema, the description covers when to call it, how many times, the asynchronous nature, and expected response codes. There is no critical missing information for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, id, is already fully documented in the input schema as 'The certificate request id'. The description adds no further meaning about the parameter, so the schema carries the burden and the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: ask Combell to verify domain validations of a certificate request. It also specifies the precondition ('once every non auto-validated value is in place'), making the tool's purpose distinct from the sibling get/list/create certificate request tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear timing guidance ('once every non auto-validated value is in place') and says 'calling it once is enough', which prevents repeated invocations. It references the 'get tool' for status reporting and implies using that for checking results, though it does not explicitly say 'use get instead'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

combell_ssl_certificates_getA
Read-onlyIdempotent

Get an SSL certificate by its SHA-1 fingerprint, including its subject alternative names.

ParametersJSON Schema
NameRequiredDescriptionDefault
sha1_fingerprintYesSHA-1 fingerprint (see combell_ssl_certificates_list)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile with readOnlyHint and idempotentHint, so the description does not need to restate non-destructiveness. It adds a modest return expectation by mentioning subject alternative names, but it does not disclose not-found behavior, error semantics, or response shape beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence containing the action, resource, lookup key, and a useful return detail. It has no filler and every phrase earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read operation with strong annotations, the description is largely sufficient: it identifies the resource, the input key, and one important output aspect (SANs). There is no output schema and no mention of all returned certificate fields or not-found behavior, but the tool's simplicity keeps this gap minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the single parameter sha1_fingerprint is already described as a SHA-1 fingerprint with a pointer to combell_ssl_certificates_list. The description merely repeats the fingerprint lookup relationship without adding format, encoding, or usage details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific retrieval action ('Get') on a precise resource ('SSL certificate') keyed by SHA-1 fingerprint, and adds that the result includes subject alternative names. This clearly differentiates it from the sibling listing tool combell_ssl_certificates_list as the single-certificate lookup variant.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is given, and no alternative tool is named in the description. The only usage hint is indirect: the parameter schema points to combell_ssl_certificates_list as the source of the fingerprint, implying this tool is for retrieving a specific certificate after listing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

combell_ssl_certificates_listA
Read-onlyIdempotent

List the (paid) SSL certificates on your Combell account with common name, expiry, type and validation level. Let's Encrypt certificates are managed per hosting instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of items to skip (default 0)
takeNoNumber of items to return (the API may return fewer)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds valuable context by specifying the certificate types (paid vs. Let's Encrypt) and the fields returned, which annotations don't cover. This is a good supplement 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the action and scope, and the Let's Encrypt clarification is efficient. No wasted words; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with two optional pagination parameters and no output schema, the description is complete. It states what is listed, the fields returned, and the boundary with Let's Encrypt. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters (skip, take) are fully described in the schema with minimums and defaults, giving 100% coverage. The description adds no additional meaning beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists paid SSL certificates with specific fields (common name, expiry, type, validation level). It distinguishes itself from Let's Encrypt certificates, which are managed per hosting, so an agent can quickly understand its scope and differentiate from siblings like combell_ssl_certificates_get or combell_ssl_certificate_requests_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly notes that Let's Encrypt certificates are managed per hosting, implicitly telling the agent not to use this tool for those. However, it doesn't name specific alternative tools, leaving some inference required. Still, the guidance is clear enough for most cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

combell_windows_hostings_getA
Read-onlyIdempotent

Get the details of a Windows hosting: webspace size and usage, IP, FTP username, application pool (.NET runtimes), sites with bindings and MSSQL database names.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_nameYesThe Windows hosting domain name

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description is fully consistent with them (a pure read). The description adds value by disclosing what the response contains โ€” webspace, IP, FTP user, .NET app pool, sites/bindings, MSSQL databases โ€” which is the key behavioral context an agent needs given there is no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that states the purpose and then packs the return details into a compact, comma-separated enumeration. There is zero filler; every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one schema-covered parameter, strong safety annotations, and no output schema, the description carries the burden of describing the response โ€” which it does with a detailed field list. It falls just short of a 5 because it omits any error/edge-case behavior for a non-existent domain and includes no routing guidance, though the core use case is fully covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the schema already documents domain_name as 'The Windows hosting domain name.' The description adds no parameter-format or usage semantics beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource โ€” 'Get the details of a Windows hosting' โ€” and enumerates the returned scope (webspace size/usage, IP, FTP username, application pool, sites with bindings, MSSQL databases). This clearly separates it from sibling tools like combell_windows_hostings_list (list vs single get) and combell_linux_hostings_get (Windows vs Linux).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: call this when you need the details of one specific Windows hosting. However, the description never explicitly contrasts it with alternatives such as combell_windows_hostings_list for enumerating hostings or combell_linux_hostings_get for Linux resources, leaving the agent to infer the routing from tool names and the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

combell_windows_hostings_listB
Read-onlyIdempotent

List the Windows hosting accounts (by domain name) on your Combell account.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of items to skip (default 0)
takeNoNumber of items to return (the API may return fewer)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds a small behavioral detail by noting the list is 'by domain name', implying the output contains domain names. It does not mention pagination or the shape of the return value, but given the annotations cover safety, a score of 3 is appropriate โ€“ it adds a little 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no redundancy. It states the action, resource, and scope efficiently. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation with two optional parameters and no output schema, the description covers the core purpose. It does not describe the return format beyond 'by domain name', which may leave the agent uncertain whether the result is an array of objects or strings. However, the scope is clearly stated, and given the lack of output schema, the description is reasonably complete for a list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for both skip and take parameters, so the schema already documents them. The description does not add any extra meaning about how these parameters affect the output. With high schema coverage, the baseline of 3 is correct; the description adds no value here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and the resource ('Windows hosting accounts') and the scope ('on your Combell account'). It distinguishes from the Linux hosting list sibling by specifying 'Windows'. However, it does not explicitly contrast with the 'get' sibling for single-account retrieval, so it's clear but not maximally differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives like combell_windows_hostings_get or combell_linux_hostings_list. The description implies it's for listing all Windows hosting accounts, but does not state exclusions or when a more specific tool is appropriate. An agent must infer usage from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 74 tool updatesv1.0.0
    • First observedcombell_accounts_create
    • First observedcombell_accounts_get
    • First observedcombell_accounts_list
    • First observedcombell_dns_records_create
    • First observedcombell_dns_records_delete
    • First observedcombell_dns_records_get
    • First observedcombell_dns_records_list
    • First observedcombell_dns_records_update
    • First observedcombell_domains_get
    • First observedcombell_domains_list
    • First observedcombell_domains_register
    • First observedcombell_domains_set_nameservers
    • First observedcombell_domains_set_renew
    • First observedcombell_domains_transfer
    • First observedcombell_linux_hostings_get
    • First observedcombell_linux_hostings_host_headers_create
    • First observedcombell_linux_hostings_list
    • First observedcombell_linux_hostings_php_versions
    • First observedcombell_linux_hostings_set_ftp
    • First observedcombell_linux_hostings_set_gzip
    • First observedcombell_linux_hostings_set_http2
    • First observedcombell_linux_hostings_set_https_redirect
    • First observedcombell_linux_hostings_set_letsencrypt
    • First observedcombell_linux_hostings_set_php_apcu
    • First observedcombell_linux_hostings_set_php_memory_limit
    • First observedcombell_linux_hostings_set_php_version
    • First observedcombell_linux_hostings_subsites_create
    • First observedcombell_linux_hostings_subsites_delete
    • First observedcombell_mail_zones_aliases_create
    • First observedcombell_mail_zones_aliases_delete
    • First observedcombell_mail_zones_aliases_update
    • First observedcombell_mail_zones_catch_all_create
    • First observedcombell_mail_zones_catch_all_delete
    • First observedcombell_mail_zones_get
    • First observedcombell_mail_zones_set_anti_spam
    • First observedcombell_mail_zones_smtp_domains_create
    • First observedcombell_mail_zones_smtp_domains_delete
    • First observedcombell_mail_zones_smtp_domains_update
    • First observedcombell_mailboxes_create
    • First observedcombell_mailboxes_delete
    • First observedcombell_mailboxes_get
    • First observedcombell_mailboxes_list
    • First observedcombell_mailboxes_set_auto_forward
    • First observedcombell_mailboxes_set_auto_reply
    • First observedcombell_mailboxes_set_password
    • First observedcombell_mysql_databases_create
    • First observedcombell_mysql_databases_delete
    • First observedcombell_mysql_databases_get
    • First observedcombell_mysql_databases_list
    • First observedcombell_mysql_users_create
    • First observedcombell_mysql_users_delete
    • First observedcombell_mysql_users_list
    • First observedcombell_mysql_users_set_password
    • First observedcombell_mysql_users_set_status
    • First observedcombell_provisioning_jobs_get
    • First observedcombell_scheduled_tasks_create
    • First observedcombell_scheduled_tasks_delete
    • First observedcombell_scheduled_tasks_get
    • First observedcombell_scheduled_tasks_list
    • First observedcombell_scheduled_tasks_update
    • First observedcombell_servicepacks_list
    • First observedcombell_ssh_keys_add
    • First observedcombell_ssh_keys_delete
    • First observedcombell_ssh_keys_list
    • First observedcombell_ssh_keys_list_all
    • First observedcombell_ssh_set_enabled
    • First observedcombell_ssl_certificate_requests_create
    • First observedcombell_ssl_certificate_requests_get
    • First observedcombell_ssl_certificate_requests_list
    • First observedcombell_ssl_certificate_requests_verify
    • First observedcombell_ssl_certificates_get
    • First observedcombell_ssl_certificates_list
    • First observedcombell_windows_hostings_get
    • First observedcombell_windows_hostings_list

TDQS

B3.4/5.0

Scored across 74 tools

Disambiguation5/5

Every tool targets a distinct resource-action pair (e.g., mailboxes vs. mail zones, MySQL databases vs. users, SSL certificates vs. requests). Descriptions clearly differentiate similar-sounding tools like subsites vs. host headers, and FTP vs. SSH access. No two tools appear to perform the same operation.

Naming Consistency5/5

All tools follow a consistent pattern: combell_<resource>_<action> with snake_case verbs like list, get, create, update, delete, set. Even subresources are nested predictably (e.g., combell_dns_records_create, combell_mail_zones_aliases_update). The only minor deviation is combell_ssh_keys_list_all vs combell_ssh_keys_list, but this is still clear.

Tool Count2/5

With 74 tools, the server is severely over-scoped for an MCP server. While each tool is specific, the sheer volume makes discovery and selection difficult, and exceeds the typical range (3-15 tools) by a wide margin. The broad domain justifies some complexity, but this count is unwieldy.

Completeness4/5

The tool set covers comprehensive CRUD and lifecycle operations for domains, DNS, mail, MySQL, SSL, and hosting (Linux and Windows). Notable gaps include no direct update for mailbox quotas, no domain deletion, and limited Windows hosting management beyond list/get, but these are minor and do not block core workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to manage Migadu email hosting services through natural language, including creating mailboxes, setting up aliases, configuring autoresponders, and handling bulk operations efficiently.
    35
    17 PyPI
    16
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to manage WHM hosting accounts and server administration tasks including account management, server stats, updates, SSL, backups, and email through a secure API.
    10
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to manage Cloudways infrastructure, including servers, applications, monitoring, and security via the Cloudways API.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables natural language management of 20i web hosting services, including domains, databases, email, WordPress, and more, through AI assistants like Claude and ChatGPT.
    9
    MIT