combell-mcp-boostu
Enables managing Let's Encrypt certificates as part of hosting and SSL certificate operations, including domain validation.
Provides tools for managing Linux hosting environments, including PHP version, memory limit, GZIP, FTP, subsites, host headers, HTTP/2, Let's Encrypt, and HTTPS redirect settings.
Provides tools to manage MySQL databases and users, including creating databases, managing user rights, and setting passwords.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@combell-mcp-boostucreate a new mailbox for info@mywebsite.be"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
๐ 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. ๐ค
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 | Copy one connector URL into Claude |
Credentials | You manage | 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_TOOLSto 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-boostuGlobal install
npm i -g combell-mcp-boostu
combell-mcp-boostuClaude 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-boostuCursor
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 |
| Yes | API key from My Combell > API |
| Yes | API secret from My Combell > API; used only to sign requests, never sent |
| No | Comma-separated list of tool group keys to enable. When unset, all 12 groups are loaded. |
| No | Override the API base URL (default |
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,mailboxesFull list of group keys:
Key | What it covers |
| Accounts (instances of a servicepack) and servicepacks |
| Provisioning jobs (background operations) |
| Domain names: detail, register, transfer, name servers, renewal |
| DNS records |
| Linux hosting: PHP, GZIP, FTP, subsites, host headers, HTTP/2, SSL settings |
| Cron jobs on Linux hostings |
| SSH access and keys |
| Windows hosting (read-only) |
| Mailboxes |
| Aliases, catch-all, anti-spam, SMTP domains |
| MySQL databases and users |
| 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 |
| List accounts, filtered by asset type or identifier |
| Get an account with its servicepack and addons |
| Create an account for a servicepack (orders a product; returns a provisioning job) |
| List the servicepacks on your reseller contract |
Provisioning jobs
Tool | Description |
| Poll a provisioning job until it reports finished, with links to the created resources |
Domains
Tool | Description |
| List domain names with expiration and renewal state |
| Domain detail: name servers, registrant, can_toggle_renew |
| Register an available domain name (purchase) |
| Transfer a domain name with its authorization code (purchase) |
| Replace the name servers of a domain |
| Enable or disable automatic renewal |
DNS records
Tool | Description |
| List records, optionally filtered by type, name or SRV service |
| Get a record by id |
| Create a record (A, AAAA, CNAME, MX, TXT, SRV, CAA, ALIAS, TLSA) |
| Update a record: reads it first and changes only the fields you pass |
| Delete a record |
Linux hostings
Tool | Description |
| List Linux hostings |
| Hosting detail: usage, IP, FTP/SSH, PHP version, sites, databases |
| Available PHP versions |
| Change the PHP version |
| Set the PHP memory limit |
| Enable/disable APCu and set its size |
| Enable/disable GZIP compression |
| Enable/disable FTP |
| Create a subsite |
| Delete a subsite |
| Add a host header (alias domain) to a site |
| Enable/disable HTTP/2 on a site |
| Enable/disable Let's Encrypt for a hostname |
| Enable/disable the HTTP to HTTPS redirect for a hostname |
Scheduled tasks
Tool | Description |
| List the cron jobs of a hosting |
| Get a cron job |
| Add a cron job |
| Update a cron job (reads it first, changes only the passed fields) |
| Delete a cron job |
SSH
Tool | Description |
| All SSH keys on the account with the hostings they are attached to |
| Enable/disable SSH on a hosting |
| Keys attached to a hosting |
| Attach a public key to a hosting |
| Remove a key (by fingerprint) from a hosting |
Windows hostings
Tool | Description |
| List Windows hostings |
| Hosting detail: usage, IP, application pool, sites and bindings |
Mailboxes
Tool | Description |
| List the mailboxes of a domain |
| Mailbox detail with auto-reply and auto-forward |
| Create a mailbox on a mail zone account |
| Delete a mailbox |
| Change a mailbox password |
| Configure the out-of-office reply |
| Configure forwarding |
Mail zones
Tool | Description |
| Mail zone: accounts, aliases, anti-spam, catch-all, SMTP domains |
| Set a catch-all address |
| Remove a catch-all address |
| Set the anti-spam level |
| Create an alias |
| Replace the destinations of an alias |
| Delete an alias |
| Add an extra SMTP domain |
| Enable/disable an SMTP domain |
| Remove an SMTP domain |
MySQL
Tool | Description |
| List databases |
| Database detail |
| Create a database on an account (provisioning job) |
| Delete a database |
| List the users of a database |
| Add a (read-only) user |
| Enable/disable a user |
| Change a user's password |
| Delete a read-only user |
SSL
Tool | Description |
| List paid SSL certificates |
| Certificate detail by SHA-1 fingerprint |
| List pending certificate requests |
| Request detail with the domain validations to complete; reports completed/gone |
| Order a certificate from a CSR (purchase) |
| 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-boostuRemember 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 toolscombell_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.
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | Identifier for the account; a domain name for hosting accounts | |
| ftp_password | No | FTP password when the servicepack contains hosting: 8-20 characters, letters and digits, at least one digit and one letter, no spaces, none of * โฌ $ & + } { ' " \ | |
| servicepack_id | Yes | Servicepack id (see combell_servicepacks_list) |
TDQS
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.
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.
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.
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.
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.
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_getARead-onlyIdempotent
Get a Combell account by id, including its servicepack and addons.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | The account id |
TDQS
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.
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.
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.
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.
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.
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_listARead-onlyIdempotent
List Combell accounts (instances of a servicepack such as a hosting package). Filter by asset type or by identifier (usually the domain name).
| Name | Required | Description | Default |
|---|---|---|---|
| skip | No | Number of items to skip (default 0) | |
| take | No | Number of items to return (the API may return fewer) | |
| asset_type | No | Only accounts containing this asset type | |
| identifier | No | Only accounts matching this identifier (e.g. a domain name) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ttl | No | Time to live in seconds, 60-86400 (default 3600) | |
| port | No | SRV only: port of the service | |
| type | Yes | Record type | |
| target | No | SRV only: canonical host name providing the service | |
| weight | No | SRV only: weight among records with the same priority (higher is more preferred) | |
| content | No | Record 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. | |
| service | No | SRV only: symbolic service name, e.g. '_sip' | |
| priority | No | Priority for MX or SRV records (lower is more preferred) | |
| protocol | No | SRV only: protocol, e.g. 'TCP' or 'UDP' | |
| domain_name | Yes | ||
| record_name | No | Host 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
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.
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.
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.
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.
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.
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_deleteADestructive
Delete a DNS record from a domain. SIDE EFFECT: irreversible and changes live DNS.
| Name | Required | Description | Default |
|---|---|---|---|
| record_id | Yes | The record id to delete | |
| domain_name | Yes |
TDQS
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.
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.
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.
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.
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.
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_getARead-onlyIdempotent
Get a single DNS record of a domain by record id.
| Name | Required | Description | Default |
|---|---|---|---|
| record_id | Yes | The record id (see combell_dns_records_list) | |
| domain_name | Yes |
TDQS
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.
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.
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.
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.
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.
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_listARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| skip | No | Number of items to skip (default 0) | |
| take | No | Number of items to return (the API may return fewer) | |
| type | No | Only records of this type | |
| service | No | Only SRV records for this service (requires type=SRV) | |
| domain_name | Yes | The domain name, e.g. 'example.be' | |
| record_name | No | Only records with this name (requires type) |
TDQS
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.
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.
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.
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.
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.
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_updateAIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ttl | No | Time to live in seconds, 60-86400 (default 3600) | |
| port | No | SRV only: port of the service | |
| target | No | SRV only: canonical host name providing the service | |
| weight | No | SRV only: weight among records with the same priority (higher is more preferred) | |
| content | No | Record 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. | |
| service | No | SRV only: symbolic service name, e.g. '_sip' | |
| priority | No | Priority for MX or SRV records (lower is more preferred) | |
| protocol | No | SRV only: protocol, e.g. 'TCP' or 'UDP' | |
| record_id | Yes | The record id to update | |
| domain_name | Yes | ||
| record_name | No | Host 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
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.
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.
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.
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.
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.
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_getARead-onlyIdempotent
Get the details of a domain name: expiration, renewal state, name servers, registrant and whether renewal can be toggled.
| Name | Required | Description | Default |
|---|---|---|---|
| domain_name | Yes | The domain name, e.g. 'example.be' |
TDQS
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.
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.
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.
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.
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.
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_listARead-onlyIdempotent
List the domain names on your Combell account with their expiration date and renewal state.
| Name | Required | Description | Default |
|---|---|---|---|
| skip | No | Number of items to skip (default 0) | |
| take | No | Number of items to return (the API may return fewer) |
TDQS
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.
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.
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.
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.
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.
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'.
| Name | Required | Description | Default |
|---|---|---|---|
| registrant | Yes | ||
| domain_name | Yes | Domain part and TLD only, e.g. 'example.be' | |
| name_servers | No | Name servers; leave empty to use Combell's default name servers |
TDQS
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.
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.
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.
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.
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.
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_nameserversAIdempotent
Replace the name servers of a domain name. SIDE EFFECT: DNS for the domain will resolve from the new name servers once propagated.
| Name | Required | Description | Default |
|---|---|---|---|
| domain_name | Yes | ||
| name_servers | Yes | Full list of name server host names, e.g. ['ns1.example.net', 'ns2.example.net'] |
TDQS
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.
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.
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.
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.
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.
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_renewAIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| will_renew | Yes | true to renew automatically, false to let it expire | |
| domain_name | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| auth_code | Yes | Transfer authorization code from the current registrar | |
| registrant | Yes | ||
| domain_name | Yes | Domain part and TLD only, e.g. 'example.be' | |
| name_servers | No | Name servers; leave empty to use Combell's default name servers |
TDQS
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.
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.
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.
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.
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.
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_getARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain_name | Yes | The Linux hosting domain name |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| site_name | Yes | Name of the site on the hosting | |
| domain_name | Yes | The Linux hosting domain name | |
| host_header | Yes | Domain name to add as host header, e.g. 'alias.be' or 'alias.example.be' |
TDQS
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.
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.
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.
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.
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.
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_listARead-onlyIdempotent
List the Linux hosting accounts (by domain name) on your Combell account.
| Name | Required | Description | Default |
|---|---|---|---|
| skip | No | Number of items to skip (default 0) | |
| take | No | Number of items to return (the API may return fewer) |
TDQS
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.
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.
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.
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.
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.
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_versionsARead-onlyIdempotent
List the PHP versions available for a Linux hosting.
| Name | Required | Description | Default |
|---|---|---|---|
| domain_name | Yes |
TDQS
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.
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.
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.
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.
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.
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_ftpBIdempotent
Enable or disable FTP access on a Linux hosting.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | ||
| domain_name | Yes |
TDQS
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.
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.
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.
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.
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.
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_gzipAIdempotent
Enable or disable GZIP compression on a Linux hosting.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | ||
| domain_name | Yes |
TDQS
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.
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.
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.
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.
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.
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_http2BIdempotent
Enable or disable HTTP/2 for a website on a Linux hosting. The site must have SSL enabled for HTTP/2 to work.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | ||
| site_name | Yes | ||
| domain_name | Yes |
TDQS
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.
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.
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.
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.
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.
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_redirectAIdempotent
Enable or disable the automatic HTTP to HTTPS redirect for a hostname on a Linux hosting.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | ||
| hostname | Yes | The hostname, e.g. 'www.example.be' | |
| domain_name | Yes | The Linux hosting domain name |
TDQS
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.
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.
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.
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.
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.
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_letsencryptBIdempotent
Enable or disable a free Let's Encrypt SSL certificate for a hostname on a Linux hosting.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | ||
| hostname | Yes | The hostname to secure, e.g. 'www.example.be' | |
| domain_name | Yes | The Linux hosting domain name |
TDQS
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.
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.
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.
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.
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.
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_apcuAIdempotent
Enable or disable PHP APCu caching on a Linux hosting and set its size (in MB).
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | ||
| apcu_size | No | APCu cache size in MB | |
| domain_name | Yes |
TDQS
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.
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.
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.
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.
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.
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_limitAIdempotent
Set the PHP memory limit (in MB) of a Linux hosting.
| Name | Required | Description | Default |
|---|---|---|---|
| domain_name | Yes | ||
| memory_limit | Yes | Memory limit in MB, e.g. 256 |
TDQS
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.
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.
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.
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.
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.
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_versionAIdempotent
Change the PHP version of a Linux hosting. SIDE EFFECT: affects every website on the hosting immediately.
| Name | Required | Description | Default |
|---|---|---|---|
| version | Yes | A version from combell_linux_hostings_php_versions, e.g. '8.3' | |
| domain_name | Yes |
TDQS
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.
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.
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.
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.
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.
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/.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Existing folder on the hosting, e.g. '/subsites/blog.example.be' | |
| domain_name | Yes | The Linux hosting domain name | |
| subsite_domain_name | Yes | Domain name for the subsite, e.g. 'alias.be' or 'blog.example.be' |
TDQS
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.
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.
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.
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.
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.
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_deleteADestructive
Delete a subsite from a Linux hosting. SIDE EFFECT: the website stops being served (files stay on disk).
| Name | Required | Description | Default |
|---|---|---|---|
| site_name | Yes | Name of the site on the hosting (see the hosting detail's sites) | |
| domain_name | Yes |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| password | Yes | Mailbox password: 8-20 characters, a mix of letters and digits with at least one of each, no spaces, none of * โฌ $ & + } { ' " \ | |
| account_id | Yes | Mail zone account id (from combell_mail_zones_get available_accounts) | |
| email_address | Yes | The new mailbox address, e.g. 'info@example.be' |
TDQS
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.
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.
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.
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.
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.
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_deleteADestructive
Delete a mailbox and all its e-mail. SIDE EFFECT: irreversible.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox_name | Yes | The mailbox e-mail address to delete |
TDQS
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.
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.
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.
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.
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.
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_getARead-onlyIdempotent
Get a mailbox: login, sizes, auto-reply and auto-forward settings.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox_name | Yes | The mailbox e-mail address, e.g. 'info@example.be' |
TDQS
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.
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.
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.
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.
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.
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_listARead-onlyIdempotent
List the mailboxes of a domain with their maximum and used size (MB).
| Name | Required | Description | Default |
|---|---|---|---|
| domain_name | Yes | The domain name whose mailboxes to list (required) |
TDQS
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.
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.
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.
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.
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.
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_forwardAIdempotent
Configure automatic forwarding of a mailbox to one or more addresses, optionally keeping a copy in the mailbox.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | ||
| mailbox_name | Yes | ||
| copy_to_myself | No | Keep a copy in the mailbox | |
| email_addresses | No | Destination addresses |
TDQS
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.
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.
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.
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.
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.
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_replyBIdempotent
Configure the auto-reply (out of office) of a mailbox.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | ||
| message | No | Body of the automatic reply | |
| subject | No | Subject of the automatic reply | |
| mailbox_name | Yes |
TDQS
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.
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.
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.
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.
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.
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_passwordCIdempotent
Change the password of a mailbox.
| Name | Required | Description | Default |
|---|---|---|---|
| password | Yes | New password: 8-20 characters, a mix of letters and digits with at least one of each, no spaces, none of * โฌ $ & + } { ' " \ | |
| mailbox_name | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain_name | Yes | ||
| destinations | Yes | Destination addresses | |
| email_address | Yes | The alias address, e.g. 'sales@example.be' |
TDQS
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.
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.
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.
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.
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.
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_deleteADestructive
Delete an e-mail alias. SIDE EFFECT: mail to the alias will bounce.
| Name | Required | Description | Default |
|---|---|---|---|
| domain_name | Yes | ||
| email_address | Yes | The alias address to delete |
TDQS
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.
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.
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.
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.
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.
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_updateAIdempotent
Replace the destination addresses of an existing alias. The change is processed in the background (202 Accepted).
| Name | Required | Description | Default |
|---|---|---|---|
| domain_name | Yes | ||
| destinations | Yes | The full new list of destination addresses | |
| email_address | Yes | The alias address |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain_name | Yes | ||
| email_address | Yes | Destination for all unmatched e-mail |
TDQS
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.
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.
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.
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.
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.
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_deleteADestructive
Remove a catch-all address from the mail zone.
| Name | Required | Description | Default |
|---|---|---|---|
| domain_name | Yes | ||
| email_address | Yes | The catch-all destination address to remove |
TDQS
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.
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.
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.
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.
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.
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_getARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain_name | Yes | The domain name, e.g. 'example.be' |
TDQS
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.
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.
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.
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.
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.
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_spamAIdempotent
Set the anti-spam level of the mail zone (none, basic or advanced). Check allowed_types on the mail zone first.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | ||
| domain_name | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hostname | Yes | The extra domain, e.g. 'example.com' | |
| domain_name | Yes | The main domain (mail zone) |
TDQS
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.
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.
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.
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.
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.
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_deleteCDestructive
Remove an extra SMTP domain from the mail zone.
| Name | Required | Description | Default |
|---|---|---|---|
| hostname | Yes | ||
| domain_name | Yes |
TDQS
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.
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.
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.
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.
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.
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_updateCIdempotent
Enable or disable an extra SMTP domain on the mail zone. The change is processed in the background (202 Accepted).
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | ||
| hostname | Yes | ||
| domain_name | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| password | Yes | Password for the database user: 8-20 characters, a mix of letters and digits with at least one of each, no spaces, none of * โฌ $ & + } { ' " \ | |
| account_id | Yes | Account to create the database on (see combell_accounts_list) | |
| database_name | Yes | Desired name; Combell prefixes it (e.g. 'shop' becomes 'ID123456_shop') |
TDQS
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.
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.
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.
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.
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.
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_deleteADestructive
Delete a MySQL database and all its data. SIDE EFFECT: irreversible.
| Name | Required | Description | Default |
|---|---|---|---|
| database_name | Yes | The provisioned database name |
TDQS
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.
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.
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.
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.
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.
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_getBRead-onlyIdempotent
Get a MySQL database by its (provisioned) name.
| Name | Required | Description | Default |
|---|---|---|---|
| database_name | Yes | The provisioned database name, e.g. 'ID123456_shop' |
TDQS
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.
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.
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.
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.
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.
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_listARead-onlyIdempotent
List the MySQL databases on your Combell account with hostname, sizes, user count and account id.
| Name | Required | Description | Default |
|---|---|---|---|
| skip | No | Number of items to skip (default 0) | |
| take | No | Number of items to return (the API may return fewer) |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | User name: 2-14 lowercase letters and/or digits, no spaces | |
| password | Yes | Password: 8-20 characters, a mix of letters and digits with at least one of each, no spaces, none of * โฌ $ & + } { ' " \ | |
| database_name | Yes |
TDQS
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.
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.
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.
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.
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.
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_deleteADestructive
Delete a MySQL database user. Only users with read_only rights can be deleted. SIDE EFFECT: irreversible.
| Name | Required | Description | Default |
|---|---|---|---|
| user_name | Yes | ||
| database_name | Yes |
TDQS
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.
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.
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.
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.
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.
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_listARead-onlyIdempotent
List the users of a MySQL database with their rights (read_and_write or read_only) and status.
| Name | Required | Description | Default |
|---|---|---|---|
| database_name | Yes |
TDQS
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.
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.
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.
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.
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.
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_passwordCIdempotent
Change the password of a MySQL database user.
| Name | Required | Description | Default |
|---|---|---|---|
| password | Yes | New password: 8-20 characters, a mix of letters and digits with at least one of each, no spaces, none of * โฌ $ & + } { ' " \ | |
| user_name | Yes | ||
| database_name | Yes |
TDQS
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.
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.
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.
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.
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.
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_statusBIdempotent
Enable or disable a MySQL database user.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | ||
| user_name | Yes | ||
| database_name | Yes |
TDQS
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.
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.
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.
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.
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.
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_getARead-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'.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The provisioning job id (from the Location header / provisioning_job_id) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | No | Default true | |
| domain_name | Yes | ||
| cron_expression | Yes | 5-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_location | Yes | Absolute path on the hosting of the script to execute, e.g. '/www/cron.php' |
TDQS
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.
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.
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.
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.
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.
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_deleteADestructive
Delete a scheduled task from a Linux hosting. SIDE EFFECT: irreversible.
| Name | Required | Description | Default |
|---|---|---|---|
| domain_name | Yes | ||
| scheduled_task_id | Yes |
TDQS
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.
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.
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.
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.
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.
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_getARead-onlyIdempotent
Get a scheduled task of a Linux hosting by id.
| Name | Required | Description | Default |
|---|---|---|---|
| domain_name | Yes | ||
| scheduled_task_id | Yes |
TDQS
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.
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.
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.
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.
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.
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_listARead-onlyIdempotent
List the scheduled tasks (cron jobs) of a Linux hosting.
| Name | Required | Description | Default |
|---|---|---|---|
| domain_name | Yes | The Linux hosting domain name |
TDQS
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.
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.
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.
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.
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.
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_updateAIdempotent
Update a scheduled task. The current task is read first and only the fields you pass are changed.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | No | ||
| domain_name | Yes | ||
| cron_expression | No | 5-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_location | No | Absolute path on the hosting of the script to execute | |
| scheduled_task_id | Yes |
TDQS
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.
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.
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.
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.
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.
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_listARead-onlyIdempotent
List the servicepacks (product packages) available on your Combell reseller contract, with their ids.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| public_key | Yes | The public key in OpenSSH format, e.g. 'ssh-ed25519 AAAA... user@host' | |
| domain_name | Yes | The Linux hosting domain name |
TDQS
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.
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.
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.
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.
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.
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_deleteADestructive
Remove an SSH public key (by fingerprint) from a Linux hosting. SIDE EFFECT: that key can no longer log in.
| Name | Required | Description | Default |
|---|---|---|---|
| domain_name | Yes | ||
| fingerprint | Yes | Fingerprint of the public key (see combell_ssh_keys_list) |
TDQS
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.
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.
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.
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.
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.
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_listARead-onlyIdempotent
List the SSH public keys attached to a Linux hosting.
| Name | Required | Description | Default |
|---|---|---|---|
| domain_name | Yes | The Linux hosting domain name |
TDQS
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.
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.
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.
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.
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.
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_allARead-onlyIdempotent
List every SSH public key on your Combell account, with the Linux hostings each key is attached to.
| Name | Required | Description | Default |
|---|---|---|---|
| skip | No | Number of items to skip (default 0) | |
| take | No | Number of items to return (the API may return fewer) |
TDQS
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.
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.
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.
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.
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.
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_enabledBIdempotent
Enable or disable SSH access on a Linux hosting.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | ||
| domain_name | Yes | The Linux hosting domain name |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| csr | Yes | PEM-encoded certificate signing request | |
| certificate_type | Yes | ||
| validation_level | Yes | ||
| additional_validation_attributes | No | Required for organization/extended validation: Firstname, Lastname, Phone, EmailAddress (technical contact), Street, Number, PostalCode, VatCountryCode; optional OrganizationNumber |
TDQS
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.
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.
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.
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.
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.
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_getARead-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).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The certificate request id |
TDQS
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.
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.
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.
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.
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.
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_listARead-onlyIdempotent
List the pending SSL certificate requests (orders that are not issued yet).
| Name | Required | Description | Default |
|---|---|---|---|
| skip | No | Number of items to skip (default 0) | |
| take | No | Number of items to return (the API may return fewer) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The certificate request id |
TDQS
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.
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.
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.
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.
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.
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_getARead-onlyIdempotent
Get an SSL certificate by its SHA-1 fingerprint, including its subject alternative names.
| Name | Required | Description | Default |
|---|---|---|---|
| sha1_fingerprint | Yes | SHA-1 fingerprint (see combell_ssl_certificates_list) |
TDQS
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.
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.
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.
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.
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.
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_listARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| skip | No | Number of items to skip (default 0) | |
| take | No | Number of items to return (the API may return fewer) |
TDQS
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.
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.
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.
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.
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.
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_getARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain_name | Yes | The Windows hosting domain name |
TDQS
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.
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.
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.
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.
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.
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_listBRead-onlyIdempotent
List the Windows hosting accounts (by domain name) on your Combell account.
| Name | Required | Description | Default |
|---|---|---|---|
| skip | No | Number of items to skip (default 0) | |
| take | No | Number of items to return (the API may return fewer) |
TDQS
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.
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.
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.
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.
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.
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.
74 tool updates
v1.0.0- First observed
combell_accounts_create - First observed
combell_accounts_get - First observed
combell_accounts_list - First observed
combell_dns_records_create - First observed
combell_dns_records_delete - First observed
combell_dns_records_get - First observed
combell_dns_records_list - First observed
combell_dns_records_update - First observed
combell_domains_get - First observed
combell_domains_list - First observed
combell_domains_register - First observed
combell_domains_set_nameservers - First observed
combell_domains_set_renew - First observed
combell_domains_transfer - First observed
combell_linux_hostings_get - First observed
combell_linux_hostings_host_headers_create - First observed
combell_linux_hostings_list - First observed
combell_linux_hostings_php_versions - First observed
combell_linux_hostings_set_ftp - First observed
combell_linux_hostings_set_gzip - First observed
combell_linux_hostings_set_http2 - First observed
combell_linux_hostings_set_https_redirect - First observed
combell_linux_hostings_set_letsencrypt - First observed
combell_linux_hostings_set_php_apcu - First observed
combell_linux_hostings_set_php_memory_limit - First observed
combell_linux_hostings_set_php_version - First observed
combell_linux_hostings_subsites_create - First observed
combell_linux_hostings_subsites_delete - First observed
combell_mail_zones_aliases_create - First observed
combell_mail_zones_aliases_delete - First observed
combell_mail_zones_aliases_update - First observed
combell_mail_zones_catch_all_create - First observed
combell_mail_zones_catch_all_delete - First observed
combell_mail_zones_get - First observed
combell_mail_zones_set_anti_spam - First observed
combell_mail_zones_smtp_domains_create - First observed
combell_mail_zones_smtp_domains_delete - First observed
combell_mail_zones_smtp_domains_update - First observed
combell_mailboxes_create - First observed
combell_mailboxes_delete - First observed
combell_mailboxes_get - First observed
combell_mailboxes_list - First observed
combell_mailboxes_set_auto_forward - First observed
combell_mailboxes_set_auto_reply - First observed
combell_mailboxes_set_password - First observed
combell_mysql_databases_create - First observed
combell_mysql_databases_delete - First observed
combell_mysql_databases_get - First observed
combell_mysql_databases_list - First observed
combell_mysql_users_create - First observed
combell_mysql_users_delete - First observed
combell_mysql_users_list - First observed
combell_mysql_users_set_password - First observed
combell_mysql_users_set_status - First observed
combell_provisioning_jobs_get - First observed
combell_scheduled_tasks_create - First observed
combell_scheduled_tasks_delete - First observed
combell_scheduled_tasks_get - First observed
combell_scheduled_tasks_list - First observed
combell_scheduled_tasks_update - First observed
combell_servicepacks_list - First observed
combell_ssh_keys_add - First observed
combell_ssh_keys_delete - First observed
combell_ssh_keys_list - First observed
combell_ssh_keys_list_all - First observed
combell_ssh_set_enabled - First observed
combell_ssl_certificate_requests_create - First observed
combell_ssl_certificate_requests_get - First observed
combell_ssl_certificate_requests_list - First observed
combell_ssl_certificate_requests_verify - First observed
combell_ssl_certificates_get - First observed
combell_ssl_certificates_list - First observed
combell_windows_hostings_get - First observed
combell_windows_hostings_list
TDQS
Scored across 74 tools
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.
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.
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.
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
Related MCP Connectors
Buy & manage domains from any AI chat: availability, register, DNS, email forwarding, AI bot stats.
Manage hosts, redirects, SSL, and traffic analytics from Claude and other AI assistants.
- DoDomainOAuthio.dodomain
Connect custom domains via AI agents: DNS pre-flight checks, hand-off connect sessions and checks.
Domain search, registration, DNS, marketplace, and checkout with your AI agent.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI assistants to manage Migadu email hosting services through natural language, including creating mailboxes, setting up aliases, configuring autoresponders, and handling bulk operations efficiently.3517 PyPI16MIT
- FlicenseNot gradedqualityDmaintenanceEnables 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-
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Cloudways infrastructure, including servers, applications, monitoring, and security via the Cloudways API.-
- AlicenseNot gradedqualityCmaintenanceEnables natural language management of 20i web hosting services, including domains, databases, email, WordPress, and more, through AI assistants like Claude and ChatGPT.9MIT