Skip to main content
Glama

WHMCS MCP Server

CI Docker License: MIT TypeScript MCP Node.js

A Model Context Protocol (MCP) server for managing WHMCS (Web Host Manager Complete Solution) installations. This server provides comprehensive tools for managing clients, products, billing, support tickets, domains, and more through the WHMCS API.

๐Ÿ“š Documentation

Related MCP server: mcp-clickup

โœจ Features

๐Ÿค– AI-Powered Prompts

Pre-built prompt templates for common WHMCS workflows:

  • Client Onboarding - Guided new client setup

  • Ticket Response - Generate professional support responses

  • Revenue Report - Comprehensive financial analysis

  • Client Health Check - Account status assessment

  • Bulk Invoice Reminder - Automated payment follow-up

  • Domain Expiry Audit - Proactive domain management

  • New Product Setup - Product configuration guidance

  • Fraud Investigation - Security analysis workflow

๐Ÿ“Š Live Resources

Real-time data endpoints for instant access:

  • System statistics (whmcs://stats)

  • Products catalog (whmcs://products)

  • Support departments (whmcs://support/departments)

  • Payment methods (whmcs://payment-methods)

  • Currencies (whmcs://currencies)

  • Servers (whmcs://servers)

  • TLD pricing (whmcs://tld-pricing)

  • Promotions (whmcs://promotions)

  • Ticket statuses (whmcs://support/statuses)

  • Admin to-do items (whmcs://admin/todo)

Client Management

  • List, search, and filter clients

  • Get detailed client information

  • Create, update, and delete clients

  • View client products and services

  • View client domains

Product Management

  • List available products

  • Get product groups

  • View product pricing

Billing & Invoices

  • List and filter invoices

  • Create and update invoices

  • Add payments to invoices

  • Apply credits

  • View transactions

Support Tickets

  • List and filter tickets

  • View ticket details and replies

  • Create new tickets

  • Reply to tickets

  • Update ticket status

  • Get support departments and statuses

Domain Management

  • Register, transfer, and renew domains

  • Manage nameservers

  • Lock/unlock domains

  • Get TLD pricing

  • View WHOIS information

Order Management

  • List and filter orders

  • Accept, cancel, or delete orders

  • Mark orders as fraudulent

  • Set orders to pending

Server & Module Management

  • List configured servers

  • Create/provision services

  • Suspend/unsuspend services

  • Terminate services

  • Change service passwords

System Tools

  • Get system statistics

  • View admin users

  • Get payment methods and currencies

  • Activity logging

  • Email templates

  • To-do items

Additional Features

  • Affiliate management

  • Promotion/coupon management

  • Quote management

๐Ÿ”ง Installation

docker run -it --rm \
  -e WHMCS_API_URL="https://billing.example.com/" \
  -e WHMCS_API_IDENTIFIER="your-identifier" \
  -e WHMCS_API_SECRET="your-secret" \
  ghcr.io/scarecr0w12/whmcs-mcp-tool:latest

See Docker Guide for detailed Docker deployment instructions.

Option 2: From Source

  1. Clone this repository:

    git clone https://github.com/scarecr0w12/whmcs-mcp-tool.git
    cd whmcs-mcp-tool
  2. Install dependencies:

    npm install
  3. Build the project:

    npm run build
  4. Configure your WHMCS credentials:

    cp .env.example .env
    # Edit .env with your WHMCS API credentials

โš™๏ธ Configuration

For detailed configuration instructions, see the Configuration Guide.

Quick Start

  1. Create API credentials in WHMCS: Setup โ†’ Staff Management โ†’ API Credentials

  2. Copy the environment template: cp .env.example .env

  3. Edit .env with your WHMCS credentials

Environment Variables

Set the following environment variables:

Variable

Required

Description

WHMCS_API_URL

Yes

Your WHMCS installation URL (e.g., https://billing.example.com/)

WHMCS_API_IDENTIFIER

Yes

API credential identifier

WHMCS_API_SECRET

Yes

API credential secret

WHMCS_ACCESS_KEY

No

Optional API access key for additional security

API Access Key (Optional)

For additional security, you can configure an API Access Key:

  1. In WHMCS admin, go to Setup > General Settings > Security

  2. Set the API Access Key field

  3. Add this key to your WHMCS_ACCESS_KEY environment variable

๐Ÿš€ Usage

With VS Code

The server can be used directly with VS Code's MCP support. The configuration is already set up in .vscode/mcp.json.

  1. Set your environment variables

  2. Build the project: npm run build

  3. The MCP server will be available in VS Code

Running Manually

# Development mode with auto-reload
npm run dev

# Production mode
npm run build
npm start

๐Ÿ› ๏ธ Available Tools

For complete parameter documentation, see the API Reference.

Client Tools

  • whmcs_get_clients - Get list of clients

  • whmcs_get_client_details - Get detailed client information

  • whmcs_add_client - Create a new client

  • whmcs_update_client - Update an existing client

  • whmcs_delete_client - Delete a client

  • whmcs_get_client_products - Get client's products/services

  • whmcs_get_client_domains - Get client's domains

Product Tools

  • whmcs_get_products - Get available products

  • whmcs_get_product_groups - Get product groups

Invoice Tools

  • whmcs_get_invoices - Get invoices

  • whmcs_get_invoice - Get invoice details

  • whmcs_create_invoice - Create an invoice

  • whmcs_update_invoice - Update an invoice

  • whmcs_add_payment - Add payment to invoice

  • whmcs_apply_credit - Apply credit to invoice

  • whmcs_get_transactions - Get transactions

Ticket Tools

  • whmcs_get_tickets - Get support tickets

  • whmcs_get_ticket - Get ticket details

  • whmcs_open_ticket - Create a new ticket

  • whmcs_add_ticket_reply - Reply to a ticket

  • whmcs_update_ticket - Update ticket properties

  • whmcs_delete_ticket - Delete a ticket

  • whmcs_get_support_departments - Get support departments

  • whmcs_get_support_statuses - Get ticket statuses

Domain Tools

  • whmcs_register_domain - Register a domain

  • whmcs_transfer_domain - Transfer a domain

  • whmcs_renew_domain - Renew a domain

  • whmcs_get_domain_whois - Get WHOIS information

  • whmcs_get_domain_nameservers - Get nameservers

  • whmcs_update_domain_nameservers - Update nameservers

  • whmcs_get_domain_lock_status - Get lock status

  • whmcs_update_domain_lock_status - Update lock status

  • whmcs_get_tld_pricing - Get TLD pricing

Order Tools

  • whmcs_get_orders - Get orders

  • whmcs_accept_order - Accept an order

  • whmcs_cancel_order - Cancel an order

  • whmcs_delete_order - Delete an order

  • whmcs_fraud_order - Mark as fraudulent

  • whmcs_pending_order - Set to pending

Server & Module Tools

  • whmcs_get_servers - Get configured servers

  • whmcs_module_create - Create/provision service

  • whmcs_module_suspend - Suspend service

  • whmcs_module_unsuspend - Unsuspend service

  • whmcs_module_terminate - Terminate service

  • whmcs_module_change_password - Change service password

System Tools

  • whmcs_get_stats - Get system statistics

  • whmcs_get_admin_users - Get admin users

  • whmcs_get_payment_methods - Get payment methods

  • whmcs_get_currencies - Get currencies

  • whmcs_get_activity_log - Get activity log

  • whmcs_log_activity - Log an activity

  • whmcs_get_email_templates - Get email templates

  • whmcs_send_email - Send an email

  • whmcs_get_todo_items - Get to-do items

Affiliate Tools

  • whmcs_get_affiliates - Get affiliates

  • whmcs_activate_affiliate - Activate an affiliate

Promotion Tools

  • whmcs_get_promotions - Get promotions/coupons

Quote Tools

  • whmcs_get_quotes - Get quotes

  • whmcs_create_quote - Create a quote

  • whmcs_accept_quote - Accept a quote

  • whmcs_delete_quote - Delete a quote

๐Ÿ”’ Security Considerations

  1. Never commit your .env file - It contains sensitive API credentials

  2. Use API Access Keys - For additional security layer

  3. IP Restrictions - Configure IP restrictions in WHMCS for API access

  4. Minimal Permissions - Only enable the API functions you need

  5. HTTPS Only - Always use HTTPS for your WHMCS installation

๐Ÿงช Testing

Run the test script to verify your WHMCS connection:

npx tsx src/test.ts

๐Ÿ’ป Development

See CONTRIBUTING.md for development guidelines.

# Install dependencies
npm install

# Run in development mode
npm run dev

# Build for production
npm run build

# Watch mode for development
npm run watch

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

Available Tools

62 tools
whmcs_accept_orderAccept OrderC

Accept and process a pending order

ParametersJSON Schema
NameRequiredDescriptionDefault
orderidYesOrder ID
serveridNoServer to provision on
serviceusernameNoUsername for service
servicepasswordNoPassword for service
registrarNoDomain registrar module
autosetupNoAuto setup products
sendemailNoSend setup email

TDQS

C2.5/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states acceptance and processing, omitting side effects like billing, provisioning, or irreversibility. The tool likely triggers significant actions but the description is silent.

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

Conciseness3/5

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

The description is a single short sentence, which is concise but may be too minimal for a tool with 7 parameters. It gets to the point but lacks structure or additional context.

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

Completeness2/5

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

Given 7 parameters, no output schema, and no behavioral details, the description is incomplete. It does not explain return values, preconditions, or the impact of parameters like autosetup or sendemail.

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

Parameters3/5

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

Schema coverage is 100%, so the schema documents all 7 parameters. The description does not add additional meaning beyond the schema. Baseline of 3 applies as description adds no extra semantic value.

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

Purpose3/5

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

The description 'Accept and process a pending order' conveys the basic action but is vague and does not differentiate from sibling tools like whmcs_cancel_order or whmcs_fraud_order. The term 'process' lacks specificity.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., cancel, fraud, pending). There are no prerequisites or context for usage.

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

whmcs_accept_quoteAccept QuoteB

Accept a quote and convert to invoice

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteidYesQuote ID

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must carry full burden. It only states the action without disclosing side effects (e.g., quote status change, irreversibility), authorization needs, or other behavioral traits beyond the basic mutation.

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

Conciseness4/5

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

The description is a single sentence with 5 words, highly concise and front-loaded. Every word is earned, but could be slightly expanded without losing conciseness.

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

Completeness3/5

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

Given the tool's simplicity (1 param, no output schema, no annotations), the description is minimally complete but lacks behavioral context and usage cues. It barely meets the minimum viable threshold.

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

Parameters3/5

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

Schema description coverage is 100% (1 param with description 'Quote ID'). The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Accept' and the resource 'quote', and specifies the outcome 'convert to invoice', distinguishing it from sibling tools like whmcs_create_quote and whmcs_create_invoice.

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

Usage Guidelines3/5

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

The description implies use after a quote is created, but gives no explicit guidance on when to use this tool vs alternatives like whmcs_create_invoice or whmcs_create_quote. No exclusions or prerequisites are mentioned.

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

whmcs_activate_affiliateActivate AffiliateB

Activate a client as an affiliate

ParametersJSON Schema
NameRequiredDescriptionDefault
useridYesClient ID

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose side effects, permissions, or what the activation entails (e.g., record creation, email notification). The description adds minimal behavioral context.

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

Conciseness4/5

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

The description is a single sentence, front-loaded, and wastes no words. However, it could be slightly more informative without being verbose.

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

Completeness3/5

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

For a simple tool with one parameter and no output schema, the description is minimal but adequate. It lacks details on return values, error conditions, or the effect of activation.

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

Parameters3/5

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

Schema coverage is 100% (one parameter 'userid' described as 'Client ID'). The description adds no extra meaning beyond the schema, resulting in a baseline score.

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

Purpose5/5

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

The description 'Activate a client as an affiliate' clearly states the verb (activate) and resource (client as affiliate), distinguishing it from siblings like 'add_client' or 'get_affiliates'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, such as prerequisites for a client to be eligible, or contrast with related tools like 'add_client' or 'get_affiliates'.

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

whmcs_add_clientAdd ClientB

Create a new client in WHMCS

ParametersJSON Schema
NameRequiredDescriptionDefault
firstnameYesClient first name
lastnameYesClient last name
emailYesClient email address
address1YesStreet address
cityYesCity
stateYesState/Province
postcodeYesPostal/ZIP code
countryYesCountry (2-letter ISO code)
phonenumberYesPhone number
password2YesPassword for the client account
companynameNoCompany name
address2NoAddress line 2
currencyNoCurrency ID
languageNoClient language
groupidNoClient group ID
notesNoAdmin notes
noemailNoDo not send welcome email

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only says 'Create a new client' but does not disclose side effects (e.g., welcome email sending, duplicate detection, or error behavior). The existence of a 'noemail' parameter suggests email behavior, but the description does not explain it.

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

Conciseness4/5

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

The description is a single concise sentence with no unnecessary words. However, it could include slightly more context (e.g., required parameters) without becoming verbose.

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

Completeness2/5

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

With 17 parameters (10 required) and no output schema, the description fails to provide context about which fields are mandatory, what 'password2' represents, or any ordering or dependencies. The agent would need to rely solely on the schema.

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

Parameters3/5

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

All 17 parameters have descriptions in the schema (100% coverage). The description adds no additional meaning beyond what the schema already provides, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Create a new client in WHMCS' which is a specific verb ('Create') and resource ('client'). It distinguishes from siblings like whmcs_update_client and whmcs_delete_client.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs alternatives such as whmcs_update_client. There is no mention of preconditions like checking for existing email addresses or required setup steps.

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

whmcs_add_paymentAdd PaymentC

Record a payment on an invoice

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceidYesInvoice ID
transidYesTransaction ID
gatewayYesPayment gateway name
amountNoPayment amount
feesNoTransaction fees
noemailNoDo not send email
dateNoPayment date (YYYY-MM-DD)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states the action. It does not disclose side effects (e.g., invoice status changes), permissions, or idempotency, leaving significant behavioral gaps.

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

Conciseness2/5

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

The description is only one sentence, which is under-specified for a tool with 7 parameters. While concise, it sacrifices important detail, making it less useful.

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

Completeness2/5

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

Given no output schema and 7 parameters, the description lacks essential context such as return values, invoice status effects, or prerequisites, resulting in incomplete guidance.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds no parameter-specific meaning beyond the schema, offering minimal added value.

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

Purpose5/5

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

The description 'Record a payment on an invoice' clearly states the verb (record) and the resource (payment on an invoice), distinguishing it from siblings like whmcs_apply_credit or whmcs_create_invoice.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool vs alternatives, such as whether to use it when an invoice is open or how it relates to other payment actions.

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

whmcs_add_ticket_noteAdd Ticket NoteA

Add an admin-only internal note to a ticket. Notes are not visible to the client and do not trigger email notifications.

ParametersJSON Schema
NameRequiredDescriptionDefault
ticketidYesTicket ID to add the note to
messageYesThe note content
markdownNoWhether the message contains markdown formatting

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description discloses essential behavioral traits: notes are not visible to clients and do not send emails. This provides adequate transparency for a simple mutation tool.

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

Conciseness5/5

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

The description is two concise sentences, front-loading the purpose and key behavior without extraneous content.

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

Completeness4/5

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

The description covers purpose and behavioral constraints, but omits return value or success/failure indication. For a simple add, this is acceptable but not fully complete.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions. The tool description adds context about admin-only and no email but does not enhance parameter meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the tool adds an 'admin-only internal note' to a ticket, distinguishing it from client-visible replies. It specifies the key trait: notes are internal and do not trigger email notifications.

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

Usage Guidelines3/5

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

The description implies usage for admin notes without client visibility, but it does not explicitly contrast with sibling tools like whmcs_add_ticket_reply or provide when-not conditions.

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

whmcs_add_ticket_replyAdd Ticket ReplyB

Reply to an existing support ticket

ParametersJSON Schema
NameRequiredDescriptionDefault
ticketidYesTicket ID
messageYesReply message
clientidNoClient ID
contactidNoContact ID
nameNoName
emailNoEmail
adminusernameNoAdmin username
statusNoNew ticket status
noemailNoDo not send email
markdownNoMessage contains markdown

TDQS

B3/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It only states the basic action without disclosing effects (e.g., status changes, email notifications, or side effects). The minimal information is insufficient for understanding behavior.

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

Conciseness3/5

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

The description is a single concise sentence, but it does not justify its existence by providing value beyond the obvious. It is not verbose, but it lacks substance needed for a tool with 10 parameters.

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

Completeness2/5

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

Given the tool's complexity (10 parameters, no annotations, no output schema), the description is incomplete. It fails to explain return values, side effects, or how parameters interrelate, making it inadequate for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents each parameter. The description adds no extra meaning or context about parameter usage or relationships (e.g., clientid vs contactid). Baseline 3 applies as description offers no additional value.

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

Purpose5/5

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

The description clearly states it replies to an existing support ticket, using a specific verb and resource. This distinguishes it from sibling tools like whmcs_add_ticket_note (note vs reply) and whmcs_open_ticket (new ticket).

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives (e.g., whmcs_add_ticket_note), nor prerequisites like ticket existence. The description lacks context on appropriate usage scenarios.

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

whmcs_apply_creditApply CreditB

Apply credit to an invoice

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceidYesInvoice ID
amountYesAmount of credit to apply
noemailNoDo not send email

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description should disclose behavioral traits. It merely states the action without detailing side effects (e.g., reduces invoice balance), authorization requirements, or whether the operation is reversible. The brevity leaves critical behavioral gaps.

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

Conciseness5/5

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

The description is a single, clear sentence with no extraneous information. It is appropriately sized and front-loaded for quick comprehension.

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

Completeness2/5

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

Given no output schema and no annotations, the description should provide more context about return values, success/failure indicators, or prerequisites (e.g., invoice must have unpaid amount). The current text is insufficient for an agent to fully understand the tool's operation.

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

Parameters3/5

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

The input schema has 100% coverage, explaining each parameter's basic role. The description adds no additional semantic detail beyond what the schema provides, so the baseline of 3 applies per the scoring guidelines.

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

Purpose5/5

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

The description 'Apply credit to an invoice' clearly states the verb and resource, making the tool's purpose unmistakable. It is distinct from sibling tools like whmcs_add_payment or whmcs_update_invoice, which handle different operations.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., whmcs_add_payment). The context signals and sibling list are available, but the description itself offers no usage context or exclusions.

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

whmcs_cancel_orderCancel OrderC

Cancel an order

ParametersJSON Schema
NameRequiredDescriptionDefault
orderidYesOrder ID
cancelsubNoCancel subscription
noemailNoDo not send email

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description solely states 'Cancel an order' without disclosing behavioral traits such as whether it is destructive, sends notifications (though parameters hint at noemail), or has side effects. The agent cannot assess safety or side effects.

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

Conciseness4/5

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

The description is a single, short sentence that conveys the core action efficiently. It is front-loaded with the verb. While extremely brief, it avoids unnecessary words.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It does not explain the implications of canceling an order (e.g., impact on subscriptions, billing, or follow-up emails). The agent lacks sufficient context for correct invocation.

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

Parameters3/5

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

Schema coverage is 100%, with each parameter already described in the input schema. The description adds no additional meaning beyond what the schema provides, meeting the baseline expectation.

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

Purpose4/5

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

The description clearly states the action ('Cancel an order') with a verb and resource, making the purpose obvious. However, it does not differentiate from sibling tools like 'whmcs_delete_order', which also deals with orders, so it lacks sibling distinction.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'whmcs_delete_order' or 'whmcs_fraud_order'. There is no context about prerequisites, typical use cases, or exclusions.

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

whmcs_create_invoiceCreate InvoiceB

Create a new invoice for a client

ParametersJSON Schema
NameRequiredDescriptionDefault
useridYesClient ID
statusNoInvoice status
sendinvoiceNoSend invoice email
paymentmethodNoPayment method
taxrateNoTax rate percentage
taxrate2NoSecond tax rate percentage
dateNoInvoice date (YYYY-MM-DD)
duedateNoDue date (YYYY-MM-DD)
notesNoInvoice notes
itemdescriptionNoLine item descriptions
itemamountNoLine item amounts
itemtaxedNoLine items taxed flags

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for disclosing behavioral traits. It only states the basic function without explaining side effects (e.g., does it trigger email sending? What happens on failure?). Critical behaviors like permissions or auto-actions are omitted.

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

Conciseness4/5

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

The description is a single concise sentence. It is front-loaded and waste-free. However, given the tool's complexity (12 parameters), a slightly longer description could add value without losing conciseness.

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

Completeness2/5

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

Despite 12 parameters and no output schema, the description offers no information about return values, error handling, or important constraints (e.g., required relationships between line items). The tool is non-trivial, and this minimal description leaves gaps for an AI agent.

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

Parameters3/5

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

Schema description coverage is 100%, meaning the input schema already documents all parameter purposes. The description adds no extra insight beyond the schema. Baseline score of 3 is appropriate since the schema suffices, but the description could have elaborated on relationships between parameters.

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

Purpose5/5

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

The description clearly states the action ('Create') and the resource ('a new invoice for a client'). The verb-resource combination is specific and unambiguous. While sibling tools like whmcs_update_invoice exist, the name and description make the creation intent obvious.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention that it should be used for new invoices only, nor does it exclude scenarios like updating (handled by whmcs_update_invoice). No context on prerequisites or when not to use it.

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

whmcs_create_quoteCreate QuoteC

Create a new quote

ParametersJSON Schema
NameRequiredDescriptionDefault
subjectYesQuote subject
stageYesQuote stage
validuntilYesValid until date (YYYY-MM-DD)
useridNoClient ID
firstnameNoFirst name
lastnameNoLast name
companynameNoCompany name
emailNoEmail
proposalNoProposal text
customernotesNoCustomer notes
adminnotesNoAdmin notes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as side effects, permissions required, or whether an email is sent. For a mutation tool, this is insufficient.

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

Conciseness3/5

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

The description is a single sentence, which is concise but lacks structure and additional helpful details. It is not wordy, but brevity comes at the cost of missing guidance.

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

Completeness2/5

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

With 11 parameters, no output schema, and no annotations, the description is insufficient. The agent is left uninformed about return values, side effects, or behavior after creation.

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

Parameters3/5

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

All parameters have descriptions in the schema (100% coverage), so the description adds no extra meaning. Baseline 3 applies; the description does not clarify the relationship between userid and name fields.

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

Purpose4/5

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

Description clearly states 'Create a new quote', which is a specific verb and resource. It is unambiguous among sibling tools, but does not explicitly differentiate from similar creation tools like whmcs_create_invoice.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., when to create a quote vs. an invoice). No context on prerequisites or typical usage scenarios.

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

whmcs_delete_clientDelete ClientB

Delete a client from WHMCS (use with caution)

ParametersJSON Schema
NameRequiredDescriptionDefault
clientidYesThe client ID to delete

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states the action is destructive via 'use with caution', but fails to disclose consequences like irreversibility, cascading effects on orders/invoices, or required admin privileges.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no extraneous words. It efficiently conveys the core purpose and a warning.

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

Completeness2/5

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

For a destructive tool with no output schema and no annotations, the description is too sparse. It should explain what happens to associated data (e.g., orders, invoices) whether the action is reversible, and any permission requirements.

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

Parameters3/5

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

Schema coverage is 100%, and the parameter 'clientid' is described in the schema. The description adds no additional meaning beyond what the schema already provides, so it meets the baseline.

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

Purpose5/5

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

The description 'Delete a client from WHMCS' clearly states the action (delete) and the resource (client), distinguishing it from sibling tools like add, update, or get client operations.

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

Usage Guidelines2/5

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

The only guideline is 'use with caution', which is vague. No explicit when-to-use, when-not-to-use, or alternatives are provided. An agent would not know if deletion requires specific permissions or has prerequisites.

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

whmcs_delete_orderDelete OrderC

Delete an order (use with caution)

ParametersJSON Schema
NameRequiredDescriptionDefault
orderidYesOrder ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description bears full burden. 'Use with caution' hints at destructiveness but lacks detail on reversibility, cascading effects (e.g., on invoices or products), or required permissions.

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

Conciseness4/5

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

The description is very concise (6 words plus a parenthetical), with no wasted words. Although brief, it conveys the core action. However, it could be slightly more informative without sacrificing conciseness.

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

Completeness3/5

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

Given the simple nature (single parameter, no output schema), the description covers the basics but lacks important context about consequences, making it only minimally complete.

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

Parameters3/5

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

The input schema has one parameter (orderid) with full coverage and a description ('Order ID'). The tool description adds no additional meaning, so baseline score of 3 applies.

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

Purpose4/5

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

The description clearly states the verb 'delete' and resource 'order', matching the name and title. However, it does not explicitly differentiate from sibling tools like whmcs_cancel_order or whmcs_fraud_order, which have similar purposes.

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

Usage Guidelines2/5

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

The description only offers a warning ('use with caution') but provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or side effects.

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

whmcs_delete_quoteDelete QuoteC

Delete a quote

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteidYesQuote ID

TDQS

C2.9/5.0
Behavior1/5

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

No annotations provided. Description does not disclose any behavioral traits such as irreversibility, required permissions, or impact on related data. For a delete operation, this is a critical gap.

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

Conciseness4/5

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

Extremely concise, one sentence with no fluff. However, it could be slightly expanded to include critical context without losing conciseness.

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

Completeness2/5

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

For a delete tool with no output schema and no annotations, the description fails to mention that deletion is irreversible or that the quote must exist. The context is insufficient for safe usage.

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

Parameters3/5

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

Schema coverage is 100% with parameter 'quoteid' described as 'Quote ID'. The description adds no further meaning beyond the schema, so baseline score of 3 is appropriate.

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

Purpose5/5

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

Description 'Delete a quote' uses a clear verb+resource structure. It distinguishes from sibling tools like whmcs_delete_client or whmcs_delete_order by specifying the target is a quote.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like whmcs_accept_quote or whmcs_create_quote. No prerequisites or conditions for deletion are mentioned.

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

whmcs_delete_ticketDelete TicketC

Delete a support ticket (use with caution)

ParametersJSON Schema
NameRequiredDescriptionDefault
ticketidYesTicket ID to delete

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It indicates deletion and cautions, but fails to explain permanence, impact on related data (e.g., ticket notes), or required permissions. A destructive action requires more detail.

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

Conciseness4/5

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

The description is very shortโ€”one sentence with no unnecessary words. However, it could be slightly expanded to include key behavioral details without sacrificing conciseness.

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

Completeness3/5

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

Given the simplicity of the tool (one parameter, no output schema), the description is somewhat complete. However, for a destructive action, more context about consequences and permissions is needed to fully inform an agent.

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

Parameters3/5

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

The input schema has 100% coverage for the single parameter, and the description adds no new information beyond what is already in the schema description. The baseline of 3 applies.

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

Purpose4/5

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

The description clearly states the action ('delete') and the resource ('support ticket'). However, it does not distinguish this tool from sibling ticket tools like whmcs_open_ticket or whmcs_update_ticket, which could lead to confusion.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The phrase 'use with caution' is a generic warning, not a usage guideline. There is no mention of prerequisites, side effects, or when not to use.

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

whmcs_fraud_orderMark Order as FraudB

Mark an order as fraudulent

ParametersJSON Schema
NameRequiredDescriptionDefault
orderidYesOrder ID
cancelsubNoCancel subscription

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose side effects (e.g., impacts on subscriptions, invoices, or client account), reversibility, or authorization requirements.

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

Conciseness4/5

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

Extremely concise at one sentence, front-loads the key action. However, it sacrifices necessary context for brevity.

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

Completeness2/5

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

Even with a simple parameter set and no output schema, the description lacks information about return values, effects on the order, or when to use. It is insufficient for an agent to correctly assess impacts.

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

Parameters3/5

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

Schema coverage is 100%; parameters have basic descriptions. The tool description adds no extra meaning beyond what the schema already provides, meeting the baseline.

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

Purpose5/5

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

The description 'Mark an order as fraudulent' clearly states a specific action (mark) and resource (order) with a distinct status (fraudulent), differentiating it from sibling tools like whmcs_accept_order or whmcs_cancel_order.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus similar order actions (e.g., cancel, pending). It doesn't specify prerequisites like order status or when not to use it, which is important given the numerous sibling tools.

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

whmcs_get_activity_logGet Activity LogC

Get system activity log

ParametersJSON Schema
NameRequiredDescriptionDefault
limitstartNoStarting offset
limitnumNoNumber of results
useridNoFilter by user ID
dateNoFilter by date
userNoFilter by user
descriptionNoFilter by description
ipaddressNoFilter by IP address

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It only says 'Get system activity log' without disclosing side effects, permissions needed, or any behavioral traits beyond the implied read-only nature.

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

Conciseness3/5

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

The description is extremely concise (4 words), which is positive, but it lacks substance and fails to convey important details. It is adequate but not optimally helpful.

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

Completeness2/5

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

With no output schema and many optional filter parameters, the description is insufficient. It does not explain the log contents, filter behavior, or return structure, making the tool incomplete for an agent.

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

Parameters3/5

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

Schema description coverage is 100% with all 7 parameters described in the input schema. The tool description does not add any additional meaning beyond what the schema already provides, so it meets the baseline of 3.

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

Purpose3/5

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

The description states 'Get system activity log', which is a verb+noun pair indicating the action and resource. However, it does not distinguish this tool from similar siblings like whmcs_get_tickets or whmcs_get_invoices, lacking specificity about what constitutes an 'activity log'.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. The description merely states the action without any context about appropriate scenarios or prerequisites.

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

whmcs_get_admin_usersGet Admin UsersB

Get list of admin users

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior1/5

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

No annotations are present, and the description provides no behavioral context such as authentication requirements, rate limits, safety, or side effects. It fails to disclose any traits beyond the basic action.

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

Conciseness4/5

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

The description is a single, front-loaded phrase that efficiently conveys the purpose. However, it could include more context without being verbose.

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

Completeness3/5

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

Given no parameters, output schema, or annotations, the description only states the purpose. It is minimally complete but lacks details on return format, ordering, or what constitutes an admin user. Slightly more context would improve usability.

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

Parameters4/5

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

The input schema has zero parameters, so no additional parameter information is needed. The baseline for zero parameters is 4, and the description does not need to add further detail.

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

Purpose5/5

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

The description 'Get list of admin users' clearly states the action and resource. It is specific and distinct from sibling tools like whmcs_get_clients.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as whmcs_get_clients or other get tools. The agent has 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.

whmcs_get_affiliatesGet AffiliatesC

Get list of affiliates

ParametersJSON Schema
NameRequiredDescriptionDefault
limitstartNoStarting offset
limitnumNoNumber of results

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Get list of affiliates' which implies a read operation but omits any details about pagination behavior, default limits, ordering, permission requirements, or what fields are returned. This is insufficient for a safe and informed tool invocation.

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

Conciseness3/5

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

The description is extremely concise (just 4 words), which is efficient but comes at the cost of missing important context. While brevity is valued, the description sacrifices usability by not including any usage nuance or behavioral hints that would justify such brevity.

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

Completeness2/5

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

Given the lack of output schema and annotations, the description must provide richer context about what 'affiliates' entails, such as the structure of each affiliate record, if there is any default limit or ordering. The current minimal description leaves the AI agent with insufficient information to understand the tool's complete behavior.

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

Parameters3/5

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

The input schema covers 100% of parameters with descriptions for 'limitstart' and 'limitnum', so the schema already provides parameter semantics. The description adds no additional meaning beyond confirming the list-retrieval nature. A score of 3 is appropriate as the schema handles the burden.

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

Purpose4/5

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

The description 'Get list of affiliates' clearly states the verb and resource, making the basic purpose understandable. However, it does not differentiate from many other 'get' tools (e.g., whmcs_get_clients, whmcs_get_orders) that also retrieve lists, so it lacks sibling distinction.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like whmcs_get_clients or whmcs_get_activity_log. There is no mention of prerequisites, filtering capabilities, or context that would help an AI agent decide between siblings.

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

whmcs_get_client_detailsGet Client DetailsC

Get detailed information about a specific client

ParametersJSON Schema
NameRequiredDescriptionDefault
clientidNoThe client ID to retrieve
emailNoThe email address to search for
statsNoInclude client statistics

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided. Description does not disclose read-only nature, required permissions, or what constitutes 'detailed information'. Agents have no behavioral clues beyond the vague description.

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

Conciseness5/5

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

Single sentence of 9 words, no redundancy. Front-loads the purpose with no wasted text. Highly concise.

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

Completeness2/5

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

No output schema, no description of return values or side effects. For a data retrieval tool, the description should at least hint at the output structure or scoping, which is missing.

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

Parameters3/5

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

Input schema covers all 3 parameters with descriptions (100% coverage). Description adds no additional meaning beyond schema, warranting baseline score of 3.

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

Purpose4/5

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

Description clearly states verb 'get' and resource 'detailed information about a specific client'. It is specific but does not differentiate from sibling 'whmcs_get_clients' which also retrieves client data.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like whmcs_get_clients or whmcs_get_client_products. Lacks context on prerequisites or typical use cases.

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

whmcs_get_client_domainsGet Client DomainsC

Get domains owned by a client

ParametersJSON Schema
NameRequiredDescriptionDefault
clientidNoThe client ID
domainidNoSpecific domain ID
domainNoFilter by domain name
limitstartNoStarting offset
limitnumNoNumber of results

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full behavioral disclosure burden. It fails to mention any side effects, permissions, return format, or pagination behavior. Simply 'Get domains' is insufficient.

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

Conciseness4/5

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

The description is extremely concise with no wasted words. However, given the lack of annotations and multiple parameters, additional context would be beneficial without harming conciseness.

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

Completeness2/5

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

No output schema exists, so description should explain what is returned (e.g., list of domain objects). It does not. Also missing behavioral context for a 5-param tool with optional filters.

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

Parameters3/5

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

Schema coverage is 100% as all 5 parameters have descriptions. The description adds no extra meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose4/5

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

The description 'Get domains owned by a client' clearly states the verb (get) and resource (domains). It differentiates from sibling tools like whmcs_get_client_products by focusing on domains, but it does not elaborate on scope or filtering.

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

Usage Guidelines2/5

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

No guidance provided on when to use this tool versus alternatives (e.g., whmcs_get_domain_lock_status). No exclusions or context for optimal use.

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

whmcs_get_client_productsGet Client ProductsC

Get products/services owned by a client

ParametersJSON Schema
NameRequiredDescriptionDefault
clientidNoThe client ID
serviceidNoSpecific service ID
domainNoFilter by domain
pidNoFilter by product ID
limitstartNoStarting offset
limitnumNoNumber of results

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description lacks behavioral details. It does not disclose pagination (despite limitstart/limitnum parameters), authentication requirements, or data freshness, leaving the agent without essential operational context.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no wasted words. It is concise but might be too brief for full clarity, earning a 4 rather than 5.

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

Completeness2/5

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

With 6 optional parameters, no output schema, and no annotations, the description does not provide complete context. It omits pagination behavior, result structure, and any boundaries, making it insufficient for an agent to use effectively.

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

Parameters3/5

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

Schema coverage is 100% with each parameter described, so the description adds no extra meaning beyond the schema. Baseline 3 is appropriate since the schema adequately documents parameters.

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

Purpose4/5

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

The description clearly states 'Get products/services owned by a client', which identifies the action and resource. It distinguishes from siblings like whmcs_get_orders or whmcs_get_clients by focusing on client-owned products/services, but could be more specific about the types of products.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. The description does not provide context on prerequisites, limitations, or when to prefer other tools like whmcs_get_orders for order-level data.

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

whmcs_get_clientsGet ClientsC

Get a list of clients from WHMCS with optional filtering and pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
limitstartNoStarting offset for results (default 0)
limitnumNoNumber of results to return (default 25)
sortingNoSort order
statusNoFilter by status (Active, Inactive, Closed)
searchNoSearch term to filter clients
orderbyNoField to order by

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description must disclose behavioral traits. It states 'Get a list' implying read-only, but does not mention if results are paginated (though schema hints), auth requirements, rate limits, or what data is returned (IDs vs full objects). The description lacks transparency beyond the operation type.

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

Conciseness4/5

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

The description is a single, concise sentence with no fluff. It front-loads the key action and resource. However, it could be slightly expanded without harm, but for its length it is appropriate.

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

Completeness2/5

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

Given no output schema and no annotations, the description is insufficient for a list tool with 6 parameters. It does not mention return format (e.g., array of client objects), total count, or errors. Siblings like whmcs_get_client_details exist, and the description does not help the agent differentiate or understand the scope.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description only says 'optional filtering and pagination', adding no extra meaning beyond what the schema already provides for each parameter. It does not explain how parameters interact or provide usage examples.

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

Purpose4/5

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

The description 'Get a list of clients from WHMCS with optional filtering and pagination' clearly states the verb ('Get') and resource ('list of clients'). It distinguishes from siblings like whmcs_get_client_details (single client) by implying a list retrieval. However, it could be more specific about the result being a summary list rather than full details.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. For instance, whmcs_get_client_details is better for a single client, and whmcs_add_client or whmcs_update_client are for mutations. The description does not indicate prerequisites, exclusions, or scenarios.

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

whmcs_get_currenciesGet CurrenciesA

Get configured currencies

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It does not disclose any behavioral traits such as data limits, error responses, or side effects. Only states the purpose.

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

Conciseness5/5

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

The description is a single concise phrase with no unnecessary words. It is front-loaded and efficient.

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

Completeness3/5

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

For a simple parameterless getter, the description is adequate but could be enhanced by noting the return format (e.g., list of currencies) or usage context. With no output schema, more detail would be beneficial.

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

Parameters4/5

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

The input schema has no parameters, so the description does not need to explain any. Baseline for zero parameters is 4, and the description adds no confusion.

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

Purpose5/5

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

The description 'Get configured currencies' clearly states the action (GET) and the resource (currencies). There is no other sibling tool for currencies, so it is distinct.

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

Usage Guidelines4/5

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

The description implies this tool is for retrieving all configured currencies. Since no sibling tool targets currencies, it is clear when to use it, though no explicit when-not or alternatives are provided.

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

whmcs_get_domain_lock_statusGet Domain Lock StatusB

Get lock/unlock status for a domain

ParametersJSON Schema
NameRequiredDescriptionDefault
domainidYesDomain ID

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so the description must convey behavioral traits. It indicates a read operation ('get') but lacks details on safety (e.g., idempotent), error handling if domain ID is invalid, or permission requirements.

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

Conciseness4/5

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

The description is very short (9 words), making it concise. It front-loads the action and resource, but could include 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.

Completeness2/5

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

Given the tool has no output schema, the description should hint at the return format (e.g., returns 'locked' or 'unlocked' string). It does not, leaving the agent to guess. Also lacks explanation of input validation or default behavior.

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

Parameters3/5

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

Schema coverage is 100% with parameter description 'Domain ID'. The tool description adds no extra meaning beyond the schema. Baseline score of 3 applies as the schema already documents the parameter well enough.

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

Purpose5/5

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

The description clearly states the tool retrieves the lock/unlock status for a domain, using a specific verb and resource. It distinguishes itself from the sibling 'whmcs_update_domain_lock_status' which sets the status.

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

Usage Guidelines3/5

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

The description gives no explicit guidance on when to use this tool versus alternatives. It implies use for checking status, but does not mention prerequisites (e.g., domain must exist) or scenarios like checking before updating.

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

whmcs_get_domain_nameserversGet Domain NameserversC

Get nameservers for a domain

ParametersJSON Schema
NameRequiredDescriptionDefault
domainidYesDomain ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only says 'Get nameservers' without indicating whether this is a fast read operation, if it requires specific permissions, or how it behaves with invalid domain IDs. The lack of detail limits transparency.

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

Conciseness5/5

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

The description is a single, concise sentence that immediately conveys the tool's purpose. There is no extraneous information, making it efficient for quick understanding.

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

Completeness2/5

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

The tool is simple with one parameter, but the description lacks information about the return value (e.g., format of nameservers, whether it returns an array or string). Without an output schema, the description should clarify the response structure, which it does not.

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

Parameters3/5

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

Schema coverage is 100% with 'domainid' described as 'Domain ID'. The description does not add any additional meaning beyond the schema. Since the schema already explains the parameter, a baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('Get') and the resource ('nameservers for a domain'), and the tool name matches. It distinguishes from sibling tools like whmcs_update_domain_nameservers, indicating a read-only purpose. However, it does not specify what exactly is returned (e.g., list of nameservers or primary nameserver).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like whmcs_get_domain_whois or whmcs_get_client_domains. There is no mention of prerequisites (e.g., domain must exist) or context for best use.

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

whmcs_get_domain_whoisGet Domain WHOISC

Get WHOIS information for a domain

ParametersJSON Schema
NameRequiredDescriptionDefault
domainidYesDomain ID

TDQS

C2.3/5.0
Behavior1/5

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

No annotations are present, and the description does not disclose any behavioral traits such as read-only nature, authentication requirements, rate limits, or output characteristics. The agent is left uninformed about the tool's behavior.

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

Conciseness3/5

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

The description is a single sentence with 7 words, which is concise but lacks substantive information. It does not earn its place as it provides minimal value.

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

Completeness1/5

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

With no annotations and no output schema, the description should ideally explain what WHOIS information is returned. It fails to do so, making it incomplete for an agent to understand the tool's output.

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

Parameters3/5

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

Schema coverage is 100% with one parameter 'domainid' described as 'Domain ID'. The description adds no additional meaning beyond the schema, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description states 'Get WHOIS information for a domain' which is a clear verb and resource. It distinguishes itself from sibling tools like whmcs_get_domain_lock_status and whmcs_get_domain_nameservers by focusing on WHOIS. However, it does not specify the exact scope of WHOIS data.

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

Usage Guidelines1/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, when-not to use, or comparisons with sibling tools.

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

whmcs_get_email_templatesGet Email TemplatesB

Get list of email templates

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoTemplate type
languageNoTemplate language

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must bear the full burden of behavioral disclosure. It only states 'Get list' without mentioning side effects (none expected), authentication needs, pagination, or the structure of the returned list. This lack of detail leaves the agent with insufficient behavioral context.

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

Conciseness5/5

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

The description is a single, straightforward sentence with no redundancy. It efficiently conveys the core purpose without unnecessary words.

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

Completeness3/5

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

Given the lack of an output schema, the description should clarify what elements are included in the email template list (e.g., name, subject, body?). It does not. However, for a simple list retrieval tool, the description is minimally adequate but leaves important details unspecified.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters ('type' and 'language') are documented with descriptions. The tool description adds no further meaning; it just restates the resource obtained. Minimal value added beyond schema.

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

Purpose4/5

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

The description uses a specific verb ('Get') and resource ('list of email templates'), clearly identifying the tool's function. While it does not explicitly differentiate from siblings, the sibling tools mostly target different resources (e.g., invoices, clients), so confusion is unlikely.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There is no mention of use cases, prerequisites, or relationship to related tools like whmcs_send_email. The agent must infer context from the name alone.

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

whmcs_get_invoiceGet Invoice DetailsB

Get detailed information about a specific invoice

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceidYesThe invoice ID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so description must disclose read-only nature, authentication needs, or side effects. Only states 'Get detailed information' without behavioral context.

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

Conciseness4/5

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

Single sentence, clear and to the point. Minimal but not wasteful.

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

Completeness2/5

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

No output schema, so description should explain what details are returned. Also lacks context among many sibling tools.

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

Parameters3/5

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

Single parameter 'invoiceid' has schema description. Description adds no extra meaning beyond schema, so baseline 3 applies.

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

Purpose5/5

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

The description clearly states the verb 'Get' and resource 'detailed information about a specific invoice'. It distinguishes from sibling tools like whmcs_get_invoices (list) and whmcs_create_invoice (create).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like whmcs_get_invoices or whmcs_create_invoice. No prerequisites or exclusions mentioned.

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

whmcs_get_invoicesGet InvoicesC

Get invoices with optional filtering

ParametersJSON Schema
NameRequiredDescriptionDefault
limitstartNoStarting offset
limitnumNoNumber of results
useridNoFilter by client ID
statusNoFilter by status
orderbyNoField to order by
orderNoSort order

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description must disclose behaviors. It only says 'Get invoices', implying a read operation, but does not confirm non-destructiveness, authentication needs, rate limits, or pagination behavior. The filtering parameters are mentioned but not explained beyond the schema.

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

Conciseness4/5

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

The single-sentence description is concise and front-loaded. It wastes no words and is easy to parse. However, it could be slightly more informative without losing conciseness.

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

Completeness2/5

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

With no output schema and 6 optional parameters, the description lacks completeness. It does not explain the return format, pagination (despite limitstart/limitnum), or that it returns a list of invoices. An agent cannot infer the full behavior from this minimal description.

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

Parameters3/5

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

The input schema has 100% coverage with descriptions for all 6 parameters (e.g., 'Starting offset', 'Filter by client ID'). The description adds no extra meaning beyond 'optional filtering', which is already evident. Baseline 3 is appropriate.

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

Purpose4/5

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

The description 'Get invoices with optional filtering' clearly states the verb 'Get' and the resource 'invoices', indicating a list retrieval. The term 'optional filtering' hints at the filtering parameters. It distinguishes from the sibling 'whmcs_get_invoice' (singular) by implying multiple invoices, but could be more explicit (e.g., 'list all invoices').

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

Usage Guidelines2/5

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

No usage guidelines are provided. The description does not specify when to use this tool over alternatives like 'whmcs_get_invoice' for a single invoice or 'whmcs_get_orders' for related records. There is no mention of prerequisites or context.

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

whmcs_get_ordersGet OrdersB

Get orders with optional filtering

ParametersJSON Schema
NameRequiredDescriptionDefault
limitstartNoStarting offset
limitnumNoNumber of results
idNoSpecific order ID
useridNoFilter by client ID
statusNoFilter by status

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description must disclose behavioral traits. It only mentions 'optional filtering' but does not explain pagination behavior (limitstart, limitnum), what is returned for empty queries, or whether it returns all orders by default. Minimal transparency.

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

Conciseness4/5

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

Single sentence, front-loaded with the verb and resource. Could be slightly more informative (e.g., mention pagination or status), but no wasted words.

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

Completeness2/5

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

No output schema, no annotations, and minimal description. For a tool with 5 optional parameters and many sibling tools, more context (e.g., typical use case, filter options) is needed for an agent to use it effectively.

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

Parameters3/5

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

Schema coverage is 100%, and the description adds no new meaning beyond the schema's parameter descriptions. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Get orders') and the resource ('orders') with optional filtering, distinguishing it from sibling tools like whmcs_accept_order or whmcs_cancel_order.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., whmcs_get_invoices for invoices, or whmcs_get_client_products for products). No mention of prerequisites or when not to use.

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

whmcs_get_payment_methodsGet Payment MethodsC

Get available payment methods

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as read-only nature, authorization requirements, or side effects. The description carries the full burden but fails to convey that this is a safe, read-only operation.

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

Conciseness3/5

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

The description is very concise with one sentence, but it lacks structure and additional context that could be added in the same length, such as mentioning the output format or that no parameters are required.

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

Completeness2/5

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

Given the tool's simplicity (no parameters, no output schema), the description is barely complete. It does not describe what the returned payment methods look like, how to interpret the response, or any prerequisites. A more complete description would add value.

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

Parameters4/5

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

The input schema has zero parameters with 100% coverage, so the description is not required to add parameter details. However, the description does not explicitly state that no parameters are needed, but it is not misleading.

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

Purpose3/5

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

The description 'Get available payment methods' clearly states the verb and resource, but it is essentially a tautology with the tool name, adding no new information. It does not differentiate the tool from sibling getter tools like whmcs_get_currencies or whmcs_get_invoices.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or exclusions, leaving the agent to infer its usage.

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

whmcs_get_product_groupsGet Product GroupsB

Get all product groups from WHMCS

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states 'Get all product groups', which implies a read operation, but does not disclose any behavioral traits like pagination, rate limits, or data freshness.

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

Conciseness5/5

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

The description is a single sentence with no wasted words. It is appropriately concise for a simple tool.

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

Completeness3/5

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

Given the tool's simplicity (no params, no output schema), the description is minimally adequate. However, it could mention expected output format or any default behavior to be fully complete.

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

Parameters4/5

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

The tool has zero parameters, so the input schema is trivial. The description adds no parameter information, but none is needed. Baseline 4 applies as coverage is 100% by absence.

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

Purpose4/5

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

The description clearly states the verb 'Get' and resource 'product groups', making the purpose obvious. However, it does not differentiate from sibling tools like whmcs_get_products or whmcs_get_clients, which also retrieve data.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives. For a simple retrieval tool, it lacks any usage context such as prerequisites or typical scenarios.

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

whmcs_get_productsGet ProductsC

Get available products/services from WHMCS

ParametersJSON Schema
NameRequiredDescriptionDefault
pidNoSpecific product ID
gidNoFilter by product group ID
moduleNoFilter by server module

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description bears full responsibility for disclosing behavioral traits. It only states the tool's purpose, omitting critical details such as read-only nature, authentication requirements, pagination, or error handling.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no redundant information. It is concise, though it could benefit from a slightly more structured format (e.g., listing key parameters).

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

Completeness2/5

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

Given the absence of an output schema and only optional parameters, the description does not convey the tool's scope, return format, or how filtering works. The agent lacks sufficient context to interpret results correctly.

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

Parameters3/5

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

All three parameters are fully described in the input schema (100% coverage). The description adds no additional meaning beyond the schema, which is adequate but not enhancing.

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

Purpose4/5

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

The description uses a clear verb ('Get') and resource ('products/services'), making the tool's purpose evident. It is distinguishable from sibling get tools by specifically mentioning products, but lacks explicit differentiation from similar tools like 'whmcs_get_client_products'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., whmcs_get_product_groups, whmcs_get_client_products). The agent must rely solely on the name and context, which may lead to incorrect selection.

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

whmcs_get_promotionsGet PromotionsC

Get list of promotions/coupons

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoSpecific promotion code

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, and the description does not disclose behavioral traits beyond the basic read operation. It doesn't state that the tool is read-only (likely safe), whether it requires specific permissions, or any side effects. For a simple list operation, the agent may infer safety, but the description fails to confirm or add value beyond the obvious.

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

Conciseness4/5

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

The description is a single, concise sentence that directly states the tool's function. It is front-loaded and efficient, containing no unnecessary words. However, it could be slightly expanded to include context without harming conciseness, such as specifying the return type.

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

Completeness2/5

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

Despite having only one parameter and no output schema, the description is too minimal. It does not explain what information is returned (e.g., fields like id, code, type, value) or any filtering capability beyond the optional 'code' parameter. For a listing tool, the agent would need to infer the output structure, which may lead to uncertainty.

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

Parameters3/5

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

The input schema has 100% description coverage for its single parameter 'code', which is described as 'Specific promotion code'. The tool description adds no additional parameter context beyond what the schema already provides. Per guidelines, with high schema coverage, the baseline is 3, and no extra value is added.

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

Purpose4/5

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

The description 'Get list of promotions/coupons' clearly states the verb (Get) and resource (promotions/coupons), making the tool's purpose immediately understandable. While it doesn't explicitly distinguish from siblings like whmcs_get_products, the specific resource 'promotions' is unique enough among the get_* tools to avoid confusion.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor any mention of when not to use it. For example, an agent would benefit from knowing whether this tool returns all promotions or only active ones, or if there's a specific scenario where a different tool should be used instead (e.g., whmcs_get_invoices for invoice-based promotions).

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

whmcs_get_quotesGet QuotesC

Get list of quotes

ParametersJSON Schema
NameRequiredDescriptionDefault
limitstartNoStarting offset
limitnumNoNumber of results
quoteidNoSpecific quote ID
useridNoFilter by client ID
subjectNoFilter by subject
stageNoFilter by stage

TDQS

C2.8/5.0
Behavior2/5

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

Without annotations, the description carries full burden, but it only says 'Get list of quotes'. It does not disclose read-only nature, pagination behavior, performance characteristics, or any side effects.

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

Conciseness3/5

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

The description is very short (4 words) but sacrifices necessary context for brevity. It is front-loaded but does not fully earn its place as it omits helpful details.

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

Completeness2/5

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

Given no output schema and 6 optional parameters, the description is too minimal. It fails to explain expected output, filter usage, or relationship to sibling tools like whmcs_get_quote.

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

Parameters3/5

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

Input schema provides full descriptions for all 6 parameters (100% coverage). The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

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

Purpose4/5

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

The description 'Get list of quotes' clearly states the action (Get) and resource (list of quotes), distinguishing it from other WHMCS tools like whmcs_get_invoices. However, it lacks specificity about filtering or scope.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus related siblings such as whmcs_get_quote (singular) or whmcs_create_quote. The agent receives no context for decision-making.

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

whmcs_get_serversGet ServersB

Get list of configured servers

ParametersJSON Schema
NameRequiredDescriptionDefault
fetchStatusNoFetch server status

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, yet description only states purpose without disclosing any behavioral traits (e.g., idempotency, performance, authentication). With no annotations, the description carries the burden but provides minimal insight.

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

Conciseness4/5

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

Single sentence is concise and front-loaded. No unnecessary words; earns its place.

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

Completeness2/5

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

No output schema, yet description does not mention return format or behavior. For a list tool, it could be more complete, especially given the rich sibling context (many tools have more detailed descriptions).

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

Parameters3/5

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

Schema coverage is 100% with one boolean parameter 'fetchStatus' described as 'Fetch server status'. Description adds no further meaning beyond what the schema already provides, so baseline 3 is appropriate.

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

Purpose4/5

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

Description clearly states 'Get list of configured servers' with specific verb and resource. Distinguishable from many get_* siblings because it targets servers specifically.

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

Usage Guidelines3/5

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

No explicit when-to-use or alternatives guidance, but for a simple list retrieval tool the context is implied. Basic usage is clear.

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

whmcs_get_statsGet System StatsB

Get WHMCS system statistics including income and order counts

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior1/5

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

No annotations provided, and the description does not disclose any behavioral traits such as read-only nature, required permissions, or potential side effects. The agent cannot infer safety or side effects.

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

Conciseness4/5

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

The description is a single concise sentence that front-loads the action and result. Slightly better than minimal, but could add a word about system-wide scope without becoming verbose.

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

Completeness3/5

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

Given zero parameters and no output schema, the description minimally explains the tool's purpose. However, it lacks mention of what exact statistics are returned beyond income and order counts, and does not specify the output format or any prerequisites.

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

Parameters4/5

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

No parameters exist, so the description does not need to explain them. Baseline is 4 as per instructions for 0-parameter tools.

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

Purpose5/5

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

The description uses a specific verb 'Get' and resource 'system statistics' with examples 'income and order counts'. It clearly distinguishes from sibling tools like get_clients or get_invoices which target specific entities.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives or any prerequisites. The description does not mention context or usage conditions.

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

whmcs_get_support_departmentsGet Support DepartmentsB

Get list of support departments

ParametersJSON Schema
NameRequiredDescriptionDefault
ignore_dept_assignmentsNoIgnore department assignments

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must convey behavioral traits. It only states it returns a list, omitting details like authentication requirements, rate limits, ordering, or what data each department entry contains.

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

Conciseness4/5

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

The description is very short (5 words) with no redundant information. While it is concise, it could be slightly more structured with additional context without becoming verbose.

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

Completeness2/5

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

Given the lack of output schema and annotations, the description is too minimal for a tool among many similar siblings. It does not explain the return format or how this tool fits into common workflows.

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

Parameters3/5

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

Schema coverage is 100%, and the parameter description in the schema is clear. The tool description adds no extra meaning beyond what the schema already provides, so it meets the baseline without adding value.

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

Purpose5/5

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

The description clearly states the action ('Get') and the resource ('list of support departments'). It is specific and distinguishes from sibling tools like whmcs_get_tickets and whmcs_get_support_statuses.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. Among many sibling get_* tools, it lacks context on prerequisites, typical use cases, or when not to invoke it.

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

whmcs_get_support_statusesGet Support StatusesB

Get ticket statuses with counts

ParametersJSON Schema
NameRequiredDescriptionDefault
deptidNoFilter by department ID

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It indicates a read operation but does not disclose behavioral traits such as authentication requirements, rate limits, or whether counts are filtered by deptid. The description is minimal.

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

Conciseness4/5

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

Single sentence, front-loaded with key information. No wasted words. However, it could be slightly more informative without losing conciseness.

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

Completeness3/5

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

No output schema, so description should explain return values. It mentions 'with counts' but lacks structure details. For a simple tool with one optional parameter, it is minimally complete but could be improved.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter (deptid). Description adds nothing beyond the schema, but the schema is sufficient. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description 'Get ticket statuses with counts' clearly states the verb (get), resource (support statuses), and additional detail (with counts). It distinguishes from sibling tools like whmcs_get_tickets (which returns tickets) and whmcs_get_support_departments (which returns departments).

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives (e.g., whmcs_get_tickets for individual tickets or whmcs_get_support_departments for department listing). Usage is implied but not clarified.

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

whmcs_get_ticketGet Ticket DetailsB

Get detailed information about a specific ticket including replies

ParametersJSON Schema
NameRequiredDescriptionDefault
ticketidYesTicket ID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral transparency. It only states that the tool returns 'detailed information including replies', but it does not disclose authentication requirements, error handling, or any side effects (though it is a read operation). The description lacks depth on behavior beyond the basic output.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that conveys the core purpose without any extraneous words. Every part earns its place.

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

Completeness3/5

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

The tool has one parameter and no output schema. The description mentions 'including replies' which adds value, but it does not explain the return structure, error conditions, or pagination/limits (if any). For a simple retrieval tool, the description is minimally adequate but could be more detailed.

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

Parameters3/5

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

Input schema covers the single parameter (ticketid) with 100% description coverage, so the schema already defines it. The description adds no additional semantics about ticketid, such as format or constraints. Baseline score of 3 is appropriate since schema does the heavy lifting.

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

Purpose4/5

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

Description states 'Get detailed information about a specific ticket including replies', which is a clear verb+resource combination. It implies a read operation and specifies 'including replies', distinguishing it from a basic ticket listing. However, it does not explicitly contrast with sibling tools like whmcs_get_tickets (list) or whmcs_get_support_statuses.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Sibling tools include modify operations (e.g., whmcs_add_ticket_reply) and list operations (whmcs_get_tickets), but the description does not specify when to use get vs. list or that it is read-only.

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

whmcs_get_ticketsGet TicketsB

Get support tickets with optional filtering

ParametersJSON Schema
NameRequiredDescriptionDefault
limitstartNoStarting offset
limitnumNoNumber of results
deptidNoFilter by department ID
clientidNoFilter by client ID
emailNoFilter by email
statusNoFilter by status
subjectNoFilter by subject

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided. The description does not disclose any behavioral traits such as authentication needs, rate limits, or pagination behavior. Minimal information beyond the basic function.

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

Conciseness5/5

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

Single sentence, no wasted words. Efficiently communicates the tool's purpose.

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

Completeness2/5

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

With 7 parameters, no output schema, and no annotations, the description is incomplete. It does not explain response format, pagination defaults, or behavior without filters.

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

Parameters3/5

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

Schema coverage is 100% with all parameters described. The description adds 'optional filtering' which is already implied by no required params. No additional meaning beyond schema.

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

Purpose5/5

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

The description clearly states the tool retrieves support tickets with optional filtering. It is distinct from siblings like whmcs_get_ticket (singular) and whmcs_add_ticket_note/reply.

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

Usage Guidelines2/5

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

No guidance on when to use this vs alternatives like whmcs_get_ticket. Does not mention filtering as optional or provide context for parameters.

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

whmcs_get_tld_pricingGet TLD PricingC

Get domain TLD pricing information

ParametersJSON Schema
NameRequiredDescriptionDefault
currencyidNoCurrency ID

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It only states a read operation without details on authentication, rate limits, or what is returned. This is insufficient for an agent to understand side effects or constraints.

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

Conciseness3/5

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

The description is one sentence with no wasteful information, but it is too minimal. While concise, it lacks structure and clarity, failing to earn its place by adding value beyond the tool name.

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

Completeness2/5

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

Given the low complexity (1 optional parameter, no output schema), the description is incomplete. It does not mention the return format, whether it lists all TLDs, or any other contextual details that would aid an agent.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter 'currencyid', so the description does not need to add much. The description itself does not elaborate on parameter meaning beyond what the schema provides, resulting in a baseline score.

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

Purpose4/5

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

The description clearly states the tool retrieves domain TLD pricing, using a specific verb and resource. However, it does not differentiate from sibling tools like whmcs_get_currencies or whmcs_get_products, which could lead to confusion about scope.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, typical use cases, or exclusions, leaving the agent without context for appropriate invocation.

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

whmcs_get_todo_itemsGet To-Do ItemsC

Get admin to-do items

ParametersJSON Schema
NameRequiredDescriptionDefault
limitstartNoStarting offset
limitnumNoNumber of results
statusNoFilter by status

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden. It does not disclose behavioral traits like whether this is a read-only operation, if authentication or admin rights are required, or what side effects occur. A simple 'Get' implies read, but it should be explicit.

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

Conciseness3/5

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

The description is extremely concise (one sentence) and front-loaded, but it sacrifices necessary detail. It omits information about output, pagination, or filtering behavior that would be helpful. While not verbose, it is under-specified for a production tool.

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

Completeness2/5

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

Given the lack of output schema and annotations, the description should provide more context. It does not explain the return format, pagination behavior (though parameters hint at limits), or any authorization requirements. The tool is simple but the description is insufficient for effective use.

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

Parameters3/5

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

The input schema provides descriptions for all three parameters (limitstart, limitnum, status) with enum for status. With 100% schema coverage, the description adds no additional meaning beyond what the schema already states. Baseline 3 is appropriate.

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

Purpose4/5

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

The description 'Get admin to-do items' clearly specifies the action (Get) and the resource (admin to-do items). It distinguishes from sibling tools like whmcs_get_tickets or whmcs_get_activity_log by indicating a focus on to-do items. However, it could be more specific about the scope (e.g., 'list all' or 'retrieve filtered list').

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

Usage Guidelines2/5

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

No usage guidance is provided. The description does not indicate when to use this tool over alternatives, such as other get_* tools for admin tasks, nor does it mention any prerequisites or context for use.

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

whmcs_get_transactionsGet TransactionsC

Get payment transactions

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceidNoFilter by invoice ID
clientidNoFilter by client ID
transidNoFilter by transaction ID

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It only says 'Get payment transactions' with no mention of read-only nature, rate limits, pagination, or result limits. This minimal information does not satisfy transparency needs.

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

Conciseness3/5

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

The description is very short (one phrase) and lacks necessary details such as scope or behavior. While concise, it is under-specified and does not earn its brevity with adequate informativeness. It could be slightly expanded without losing conciseness.

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

Completeness2/5

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

Given no output schema and no annotations, the description must compensate by explaining return values, default behavior when no filters are applied (e.g., returns all transactions?), and any constraints. It fails to do so, leaving significant gaps for an AI agent.

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

Parameters3/5

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

The input schema has 100% description coverage, with all three parameters clearly documented inline (invoiceid, clientid, transid). The tool description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.

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

Purpose4/5

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

The description states 'Get payment transactions', clearly indicating the verb and resource. However, it does not differentiate from sibling tools like whmcs_get_invoices or whmcs_get_orders, which might also involve payment data. The purpose is clear but lacks specificity for distinguishing among many similar get operations.

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

Usage Guidelines2/5

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

No usage guidance is provided. The description does not indicate when to use this tool versus alternatives like whmcs_get_invoices, nor does it mention prerequisites or scenarios. The agent must infer usage solely 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.

whmcs_log_activityLog ActivityC

Add an entry to the activity log

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYesActivity description
useridNoAssociated user ID

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It indicates a write operation ('Add'), but fails to disclose side effects, permission requirements, or what 'activity log' implies. Minimal behavioral insight.

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

Conciseness3/5

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

The description is a single short sentence, which is concise but lacks important context. It is not front-loaded with critical usage details.

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

Completeness2/5

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

For a simple logging tool with two parameters and no output schema, the description minimally explains the operation. It does not address return values, success indicators, or logging behavior, leaving gaps for an AI agent.

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

Parameters3/5

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

Input schema has 100% description coverage for both parameters. The description adds no extra meaning beyond the schema; it is adequate but not enhanced.

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

Purpose4/5

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

Description clearly states 'Add an entry to the activity log', which specifies the verb (add) and resource (entry to activity log). No differentiation from sibling 'whmcs_get_activity_log' is provided, but the purpose is unambiguous.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like whmcs_get_activity_log. No context on prerequisites or typical scenarios. The description is purely functional.

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

whmcs_module_change_passwordModule Change PasswordC

Change password for a service account

ParametersJSON Schema
NameRequiredDescriptionDefault
accountidYesService ID
servicepasswordNoNew password

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It does not mention whether the change triggers notifications, requires permissions, or has side effects like logging or synchronization. The agent has no insight into the tool's side effects or constraints.

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

Conciseness4/5

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

The description is a single, clear sentence with no filler. It is appropriately front-loaded with the action. However, it could benefit from one or two additional sentences without losing conciseness.

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

Completeness3/5

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

Given the tool's simplicity (two parameters, no output schema), the description is minimally adequate but lacks completeness. It fails to describe the expected return value or confirmation behavior, and does not clarify whether the password is updated immediately or queued. An AI agent would lack confidence in post-invocation state.

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

Parameters3/5

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

The input schema has 100% descriptive coverage for both parameters (accountid and servicepassword). The description adds no additional meaning beyond the schema's own descriptions, so it meets the baseline for schema-dependent parameter understanding. The description's context ('for a service account') is already implied by the parameter names.

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

Purpose4/5

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

The description clearly states that the tool changes a password for a service account, distinguishing it from other module manipulation tools like module_create or module_suspend. However, it does not specify which type of service (e.g., hosting) or that this action occurs within WHMCS, leaving some ambiguity for an AI agent.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as updating client details or sending emails. There is no mention of prerequisites (e.g., the service must exist) or conditions under which the action is appropriate.

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

whmcs_module_createModule CreateC

Create/provision a service account

ParametersJSON Schema
NameRequiredDescriptionDefault
accountidYesService ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description only states the action (create/provision) without disclosing side effects, authentication needs, or whether the operation is reversible. Minimal behavioral context beyond the verb.

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

Conciseness4/5

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

The description is a single, clear sentence with no extraneous words. It is efficient but could benefit from slight expansion for clarity.

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

Completeness2/5

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

Given the tool's single parameter and no output schema, the description is too terse. It lacks explanation of what 'provision' entails, any side effects, or how it fits with other WHMCS module tools. An agent may need additional domain knowledge.

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

Parameters3/5

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

Input schema has 100% description coverage for the single parameter 'accountid' (described as 'Service ID'). The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose4/5

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

The description 'Create/provision a service account' clearly indicates a write operation (create/provision) on a specific resource (service account). It distinguishes from sibling module actions like suspend, terminate, and unsuspend. However, it does not specify what constitutes a 'service account' in WHMCS context.

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

Usage Guidelines2/5

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

No guidance provided on when to use this tool versus alternatives such as whmcs_add_client or other module creation tools. The description does not mention prerequisites or use cases.

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

whmcs_module_suspendModule SuspendC

Suspend a service account

ParametersJSON Schema
NameRequiredDescriptionDefault
accountidYesService ID
suspendreasonNoSuspension reason

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral aspects. It does not mention side effects, reversibility, or required permissions. The single sentence only states the basic action.

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

Conciseness4/5

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

The description is concise with a single sentence. No unnecessary words, but it could arguably be slightly more informative without sacrificing brevity.

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

Completeness2/5

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

Given no output schema and many sibling tools, the description is insufficient. It lacks information about return values, side effects, or how it fits into the module lifecycle.

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

Parameters3/5

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

Schema description coverage is 100% with clear parameter descriptions. The tool description adds no further semantic value beyond what the schema provides, meriting the baseline score.

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

Purpose4/5

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

The description 'Suspend a service account' clearly states the action and the resource, using a specific verb. It distinguishes the tool's purpose from read-only tools, but does not explicitly differentiate from sibling tools like whmcs_module_unsuspend.

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

Usage Guidelines2/5

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

No usage guidance is provided. The description does not indicate when to use this tool versus alternatives (e.g., terminate or unsuspend), nor does it mention prerequisites or context.

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

whmcs_module_terminateModule TerminateC

Terminate a service account

ParametersJSON Schema
NameRequiredDescriptionDefault
accountidYesService ID

TDQS

C2.8/5.0
Behavior2/5

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

Without annotations, the description carries full burden for behavioral disclosure. It fails to mention that termination is typically irreversible, may require specific permissions, or what side effects occur (e.g., billing cancellation). This is a significant gap for a destructive action.

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

Conciseness3/5

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

The description is extremely concise at one phrase, but this brevity sacrifices necessary detail. It is front-loaded but incomplete, earning an average score for structure.

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

Completeness2/5

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

Despite low complexity (1 param, no nested objects), the description lacks completeness. It does not specify whether termination is immediate, reversible, or what happens to associated records (e.g., invoices, emails). An output schema is also absent, leaving agents without return value expectations.

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

Parameters3/5

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

Schema coverage is 100% with the parameter accountid described as 'Service ID'. The description adds no additional meaning beyond the schema, meeting the baseline expectation but not compensating for any gaps.

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

Purpose4/5

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

The description states 'Terminate a service account', which is a clear verb+resource combination. While it doesn't explicitly distinguish from sibling tools like module_suspend, the term 'terminate' implies a final action, differentiating it from suspension or unsuspension.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like module_suspend or module_unsuspend. The description lacks context for decision-making, which is critical for an AI agent choosing between module lifecycle operations.

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

whmcs_module_unsuspendModule UnsuspendB

Unsuspend a service account

ParametersJSON Schema
NameRequiredDescriptionDefault
accountidYesService ID

TDQS

B3.2/5.0
Behavior2/5

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

Without annotations, the description must disclose behaviors, but it only states 'Unsuspend a service account'. It omits crucial details: prerequisites (e.g., service must be suspended), side effects (e.g., module re-activation), error conditions, and whether the operation is reversible.

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

Conciseness5/5

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

The description is a single, well-structured sentence that conveys the core purpose without unnecessary words.

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

Completeness2/5

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

Despite low complexity (1 param, no output schema), the description fails to specify return values, prerequisites, success/failure indicators, or the relationship with sibling tools (e.g., whmcs_module_suspend).

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

Parameters3/5

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

The input schema covers the sole parameter 'accountid' with description 'Service ID'. The tool description adds no further meaning beyond confirming the parameter's role, so it meets the baseline for high schema coverage.

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

Purpose5/5

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

The description clearly states the action ('Unsuspend') and the resource ('service account'), distinguishing it from sibling tools like whmcs_module_suspend (opposite) and whmcs_module_create/terminate.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., whmcs_module_suspend for suspension, whmcs_module_create for creation). The description lacks context for decision-making.

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

whmcs_open_ticketOpen TicketB

Create a new support ticket

ParametersJSON Schema
NameRequiredDescriptionDefault
deptidYesDepartment ID
subjectYesTicket subject
messageYesTicket message/description
clientidNoClient ID
contactidNoContact ID
nameNoName (if not a client)
emailNoEmail (if not a client)
priorityNoTicket priority
serviceidNoRelated service ID
domainidNoRelated domain ID
adminNoOpened by admin
markdownNoMessage contains markdown

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits but only states creation. Missing details on side effects, permissions, or return values.

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

Conciseness5/5

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

One direct sentence with no unnecessary words; front-loaded and concise.

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

Completeness2/5

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

Given 12 parameters, no output schema, and no annotations, the description lacks completeness about behavior, return format, and prerequisites.

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

Parameters3/5

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

Schema coverage is 100%, baseline 3. The description adds no additional parameter information beyond what the schema provides.

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

Purpose5/5

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

The description 'Create a new support ticket' clearly states the action and resource, distinguishing it from sibling tools like replies and notes.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives; e.g., missing comparisons to whmcs_add_ticket_note or whmcs_add_ticket_reply.

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

whmcs_pending_orderSet Order to PendingB

Set an order status to pending

ParametersJSON Schema
NameRequiredDescriptionDefault
orderidYesOrder ID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are present, and the description does not disclose any behavioral details beyond the basic action. Missing information includes whether the operation is reversible, triggers workflows, requires specific permissions, or has any side effects.

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

Conciseness4/5

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

The description is a single, clear sentence with no unnecessary words. It is appropriately concise for a simple tool.

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

Completeness2/5

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

Given the context of many sibling status-related tools, the description is too minimal. It does not explain what 'pending' means, how it differs from other statuses, or what the outcome is. For a single-parameter tool, more context would be helpful for correct tool selection.

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

Parameters3/5

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

The input schema has 100% coverage, with the parameter 'orderid' having a description of 'Order ID'. The description adds no additional meaning beyond what the schema provides, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Set an order status to pending') with a specific verb and resource (order status). It distinguishes itself from sibling tools like whmcs_accept_order, whmcs_cancel_order, and whmcs_fraud_order, which set different statuses.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., accept_order, cancel_order). There is no mention of prerequisites, order states, or when setting to pending is appropriate.

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

whmcs_register_domainRegister DomainC

Send domain registration command to registrar

ParametersJSON Schema
NameRequiredDescriptionDefault
domainidNoDomain ID
domainNoDomain name

TDQS

C2.5/5.0
Behavior2/5

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

Without annotations, the description must disclose behavioral traits, but it only states 'send command'โ€”failing to clarify whether this is a synchronous or asynchronous operation, whether it charges the client, or what happens on failure. The mutation intent is implied but not confirmed, and no side effects are described.

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

Conciseness3/5

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

The description is extremely concise (6 words), but it lacks essential detail. While brevity is positive, the content is too sparse to be helpful, falling into under-specification rather than efficient clarity.

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

Completeness2/5

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

Given the tool registers a domain (a significant action with financial implications), the description omits critical context: return values, error scenarios, and how it relates to client billing or domain availability. The completeness is insufficient for a tool requiring careful invocation.

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

Parameters3/5

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

Input schema has 100% description coverage for both parameters ('domainid' and 'domain'), so the description adds no extra meaning. Baseline is appropriate given the schema already documents the parameters.

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

Purpose3/5

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

The description 'Send domain registration command to registrar' indicates the tool deals with domain registration but uses vague phrasing ('send command') rather than explicitly stating it registers a domain. The tool name clarifies the purpose, but the description does not effectively distinguish it from siblings like 'whmcs_renew_domain' or 'whmcs_transfer_domain'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor are there any prerequisites or conditions (e.g., domain availability, required permissions) mentioned. The description is purely operational without contextual usage cues.

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

whmcs_renew_domainRenew DomainB

Send domain renewal command to registrar

ParametersJSON Schema
NameRequiredDescriptionDefault
domainidYesDomain ID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only says 'Send domain renewal command' without stating side effects like charges, renewal period, or whether it is destructive.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no wasted words. However, it is so brief that it lacks important details, making it less effective.

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

Completeness2/5

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

Given the lack of output schema and annotations, the description should explain what happens after sending the command (e.g., return status). It provides no such context, leaving the agent uninformed.

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

Parameters3/5

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

Schema coverage is 100%, with the parameter 'domainid' described as 'Domain ID' in the schema. The tool description adds no additional meaning beyond that, which is adequate but not helpful.

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

Purpose5/5

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

The description clearly states the action (renew domain) and the resource (domain via registrar), using a specific verb and resource. It distinguishes from siblings like whmcs_register_domain and whmcs_transfer_domain.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites such as domain existence or expiration status.

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

whmcs_send_emailSend EmailC

Send an email to a client

ParametersJSON Schema
NameRequiredDescriptionDefault
messagenameNoEmail template name
idNoRelated ID (client, invoice, etc.)
customtypeNoCustom type
customsubjectNoCustom subject
custommessageNoCustom message

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only says 'Send an email' but does not explain if it queues the email, requires specific permissions, or side effects like triggering automation. For a mutation tool, this is insufficient.

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

Conciseness2/5

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

The description is only one sentence, but it is under-specified. Conciseness is not just brevity; effective communication is missing. Important context is omitted, making it too sparse.

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

Completeness2/5

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

With 5 parameters and no output schema, the description should provide context on how parameters interact, constraints, and expected behavior. The single sentence fails to cover these, leaving the agent underinformed.

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

Parameters3/5

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

The input schema has 100% description coverage, so the description adds no extra meaning beyond schema. Baseline score of 3 is appropriate as the schema already documents parameters, though the description could clarify parameter relationships.

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

Purpose4/5

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

The description 'Send an email to a client' clearly states the verb and resource. Among sibling tools, there is no other tool with 'send email' purpose, though 'whmcs_get_email_templates' retrieves templates. The purpose is clear and distinguishable.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, prerequisites, or exclusions. The description lacks context like when to use customtype vs messagename, or that id must correspond to a valid record.

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

whmcs_transfer_domainTransfer DomainB

Send domain transfer command to registrar

ParametersJSON Schema
NameRequiredDescriptionDefault
domainidYesDomain ID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are present, so the description should disclose behavioral traits. 'Send domain transfer command' does not explain side effects, registrar interaction, success/failure, or whether the action is reversible. The description is insufficient for a tool that initiates a transfer.

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

Conciseness4/5

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

The description is a single sentence of 6 words, making it very concise. It is front-loaded but lacks detail that could be added without losing conciseness.

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

Completeness2/5

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

Given the tool's action (initiating a domain transfer) and lack of annotations/output schema, the description is incomplete. It omits prerequisites, outcome, and error handling, which are essential for correct invocation.

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

Parameters3/5

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

Schema coverage is 100%. The description adds no extra meaning beyond the schema ('Domain ID'). Baseline of 3, and no additional value provided.

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

Purpose5/5

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

The description 'Send domain transfer command to registrar' uses a specific verb and resource, clearly indicating the action. It distinguishes this tool from siblings like whmcs_register_domain or whmcs_renew_domain.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool (e.g., prerequisites like domain unlock, auth code) or when not to use it. No alternatives are mentioned.

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

whmcs_update_clientUpdate ClientC

Update an existing client in WHMCS

ParametersJSON Schema
NameRequiredDescriptionDefault
clientidYesThe client ID to update
firstnameNoClient first name
lastnameNoClient last name
emailNoClient email address
companynameNoCompany name
address1NoStreet address
address2NoAddress line 2
cityNoCity
stateNoState/Province
postcodeNoPostal/ZIP code
countryNoCountry (2-letter ISO code)
phonenumberNoPhone number
password2NoNew password
statusNoClient status (Active, Inactive, Closed)
creditNoCredit balance
notesNoAdmin notes
languageNoClient language

TDQS

C2.6/5.0
Behavior1/5

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

With no annotations, the description carries full burden but only says 'Update an existing client', failing to disclose data mutation, field merge behavior, error handling, or side effects.

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

Conciseness2/5

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

Single sentence is too brief; it merely restates the tool name without providing useful context or justification for its conciseness.

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

Completeness1/5

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

For a mutation tool with 17 parameters and no output schema, the description fails to explain expected output, side effects, or typical use cases, leaving the agent underinformed.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. Description adds no extra meaning beyond parameter descriptions already in schema.

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

Purpose5/5

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

Clearly states the verb 'Update' and resource 'existing client' in WHMCS, distinctly differentiating from sibling tools like whmcs_add_client and whmcs_delete_client.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, no mention of prerequisites (e.g., client must exist), and no exclusions or contexts provided.

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

whmcs_update_domain_lock_statusUpdate Domain Lock StatusC

Lock or unlock a domain

ParametersJSON Schema
NameRequiredDescriptionDefault
domainidYesDomain ID
lockstatusNoLock status (true to lock)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states the action but does not explain whether the change is immediate, requires permissions, or any side effects. The description is minimal for a mutation tool.

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

Conciseness5/5

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

The description is a single sentence that is front-loaded and contains no unnecessary words. It is appropriately sized for the tool's simplicity.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description should provide more context about the effect of omitting the optional lockstatus parameter, the return value, and any confirmation. It is incomplete for a mutation tool.

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

Parameters3/5

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

The input schema covers 100% of parameters with descriptions. The description adds no extra meaning beyond what the schema provides, so it meets the baseline but does not enhance understanding.

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

Purpose4/5

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

The description 'Lock or unlock a domain' clearly states the verb and resource, distinguishing it from the sibling tool whmcs_get_domain_lock_status which reads status. However, it could be more precise by indicating it sets the lock status to the provided boolean.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like whmcs_get_domain_lock_status or other update tools. There is no mention of prerequisites, when not to use it, or recommended context.

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

whmcs_update_domain_nameserversUpdate Domain NameserversC

Update nameservers for a domain

ParametersJSON Schema
NameRequiredDescriptionDefault
domainidYesDomain ID
ns1NoNameserver 1
ns2NoNameserver 2
ns3NoNameserver 3
ns4NoNameserver 4
ns5NoNameserver 5

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, and the description fails to disclose behavioral traits such as authentication requirements, validation steps, or whether the operation is destructive.

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

Conciseness4/5

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

Extremely concise single sentence, but lacks necessary detail; still not verbose.

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

Completeness2/5

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

Given 6 parameters and no annotations or output schema, the description is insufficiently complete to guide proper usage.

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

Parameters3/5

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

Input schema fully describes parameters, so description adds minimal value; baseline 3 applies.

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

Purpose4/5

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

Describes the specific action (update nameservers) and resource (domain), but does not differentiate from sibling tools like get_domain_nameservers.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like get_domain_nameservers or other domain update tools.

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

whmcs_update_invoiceUpdate InvoiceC

Update an existing invoice

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceidYesInvoice ID to update
statusNoNew status
paymentmethodNoPayment method
dateNoInvoice date (YYYY-MM-DD)
duedateNoDue date (YYYY-MM-DD)
notesNoInvoice notes
publishNoPublish draft invoice
publishandsendemailNoPublish and send email

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, and the description only says 'update', lacking details on side effects, permissions, or constraints like whether an invoice can be updated after being paid.

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

Conciseness3/5

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

The description is a single sentence, which is concise, but it is too short to be fully informative; it sacrifices completeness for brevity.

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

Completeness2/5

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

For an update tool with 8 parameters and no output schema, the description lacks information on effects, order, allowed transitions, and prerequisites, making it incomplete.

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

Parameters3/5

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

Schema coverage is 100%, and the description adds no additional meaning beyond what the input schema already provides for each parameter.

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

Purpose3/5

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

The description clearly states the tool updates an invoice, but it is generic and does not distinguish from sibling tools like whmcs_create_invoice or whmcs_get_invoice.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or context for updating invoices.

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

whmcs_update_ticketUpdate TicketC

Update ticket properties

ParametersJSON Schema
NameRequiredDescriptionDefault
ticketidYesTicket ID
deptidNoDepartment ID
subjectNoSubject
useridNoAssign to client ID
nameNoName
emailNoEmail
priorityNoPriority
statusNoStatus
flagNoFlag to admin ID

TDQS

C2.7/5.0
Behavior2/5

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

No annotations exist, so the description must disclose behavioral traits. It only states 'Update ticket properties', implying a mutation, but fails to explain permissions, reversibility, side effects, or notifications. This is insufficient for an update operation.

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

Conciseness4/5

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

The description consists of a single concise sentence that is front-loaded and not verbose. It efficiently conveys the core action, though it could be slightly more descriptive without becoming wordy.

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

Completeness2/5

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

Given the tool has 9 parameters and no output schema or annotations, the description is incomplete. It does not explain the return value, error handling, or important context such as required permissions or the effect of updating certain fields.

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

Parameters3/5

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

The input schema provides full coverage with descriptions for all 9 parameters, so the description does not need to add parameter details. The baseline score of 3 is appropriate as the description adds no additional semantic value.

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

Purpose4/5

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

The description states 'Update ticket properties', clearly indicating the verb and resource, which distinguishes it from sibling tools like create, delete, or get tickets. However, it lacks specificity about what properties can be updated, though the input schema covers this.

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

Usage Guidelines1/5

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

No usage guidelines are provided. The description does not indicate when to use this tool over alternatives like whmcs_add_ticket_note or whmcs_add_ticket_reply, nor does it mention any prerequisites or exclusions.

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

TDQS

B3.1/5.0
Disambiguation5/5

Every tool has a distinct action and resource combination (e.g., add_client vs update_client, get_invoice vs get_invoices). Internal notes vs replies are clearly differentiated. No overlap in purpose.

Naming Consistency5/5

All tools follow the exact 'whmcs_verb_noun' pattern. Verbs are consistently 'add', 'update', 'delete', 'get', etc. No mixing of case or styles.

Tool Count1/5

With 62 tools, this far exceeds the recommended range (3-15). Even for a large system like WHMCS, this number is excessive and likely overwhelms agents, fitting the 'extreme mismatch' criterion (>50).

Completeness5/5

The tool set covers all major WHMCS domains: clients, orders, invoices, tickets, domains, products, quotes, modules, affiliates, system logs, etc. No obvious gaps for core operations.

Maintenance

ActivityInactive
ResponsivenessSlow

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/scarecr0w12/whmcs-mcp-tool'

If you have feedback or need assistance with the MCP directory API, please join our Discord server