ItchWHMMCP
ItchWHMMCP is a local MCP server that enables AI clients to manage WHM/cPanel servers through 30+ tools, supporting multiple WHM accounts from a private configuration file.
Server Health & Information
Get server load averages, memory, CPU, uptime, OS, and cPanel version
Real-time process snapshots and disk/memory checks (via optional SSH)
Account Management
List, create, suspend, unsuspend, change password for, and permanently terminate cPanel accounts
Get detailed account summaries and list available hosting packages/plans
Service Management
Check status and restart services (Apache, MySQL, Exim, FTP, cpsrvd)
DNS Management
List all DNS zones and query specific DNS records per domain (WHM and cPanel levels)
Email Management
List and create email accounts; list email forwarders for cPanel users
Database Management
List all MySQL databases server-wide (WHM) and per cPanel account, including database users
SSL Certificates
List all installed SSL certificates server-wide and check certificate status/expiry per domain
Bandwidth & Disk Usage
Get server-wide and per-account bandwidth usage statistics and detailed disk usage breakdowns
Cron Jobs & Domains
List cron jobs, subdomains, and addon domains for specific cPanel accounts
Security (Optional)
cPHulk brute-force reporting and unblock; CSF firewall IP allow/deny/remove
Other
List server IP addresses and their assignments
List available backups on the WHM server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ItchWHMMCPCheck the server load and uptime on primary-server"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ItchWHMMCP
A local Model Context Protocol (MCP) server for managing WHM and cPanel servers through MCP-compatible AI clients. It supports multiple WHM accounts from a private local configuration file and exposes server health, account, DNS, email, database, SSL, bandwidth, disk, cron, and service-management tools.
Security warning: this server can perform root-level WHM actions. Run it only on machines and with AI clients you trust, scope WHM API tokens as tightly as your workflow allows, and confirm destructive actions before execution.
Compatible Clients
Client | Config File | Notes |
| Full support | |
| Full support | |
| Full support | |
| Requires MCP support/extension | |
MCP settings UI | Full support | |
| Full support | |
Any stdio MCP host | Client-specific | Standard stdio transport |
Related MCP server: cPanel MCP Server
Features
Category | Capabilities |
Server Health | Load averages, memory, CPU, uptime |
Account Management | List, create, suspend, unsuspend, terminate cPanel accounts |
DNS | List zones and query records per domain |
MySQL | List databases across the server |
Bandwidth | Usage per account or server-wide |
SSL | List installed certificates |
Services | Check and restart Apache, MySQL, Exim, FTP |
Diagnostics | Load averages, optional SSH process snapshots, memory, and disk checks |
Security | cPHulk brute-force reports/unblock actions, optional CSF firewall checks and IP allow/deny/remove |
List and create mailboxes, list forwarders | |
Disk | Server-wide and per-account disk usage |
Cron Jobs | List scheduled tasks per cPanel account |
Subdomains | List subdomains and addon domains |
The server currently exposes 30 tools across WHM root-level and cPanel account-level operations.
Requirements
Python 3.11+
An MCP-compatible AI client
WHM server access with an API token
Installation
1. Clone the repository
git clone https://github.com/manofsadness/ItchWHMMCP.git
cd ItchWHMMCP2. Create a virtual environment
macOS / Linux:
python3 -m venv .venv
source .venv/bin/activateWindows:
python -m venv .venv
.venv\Scripts\Activate.ps13. Install dependencies
pip install mcp httpx asyncsshConfiguration
Step 1 - Generate WHM API Tokens
For each server you want to connect:
Log in to WHM.
Open Development > Manage API Tokens.
Generate a token for this MCP server.
Copy the token immediately; WHM shows it only once.
Repeat for each server you want to manage.
Step 2 - Create your private accounts file
cp accounts.json.template accounts.jsonEdit accounts.json with your own server details:
{
"primary-server": {
"host": "server.example.com",
"port": 2087,
"user": "root",
"token": "YOUR_WHM_API_TOKEN_HERE",
"type": "whm",
"label": "Primary WHM Server"
},
"staging-server": {
"host": "staging.example.com",
"port": 2087,
"user": "root",
"token": "YOUR_SECOND_WHM_API_TOKEN_HERE",
"type": "whm",
"label": "Staging WHM Server"
}
}Never commit accounts.json, API tokens, real hostnames, IP addresses, client names, or production account aliases.
Optional SSH Diagnostics and CSF
WHM API tokens can handle normal WHM/cPanel actions and cPHulk reporting. Live process diagnostics and CSF firewall management require SSH because they run fixed root-level commands such as ps, free, df, and csf.
Add these fields to an account only if you want those tools enabled:
{
"primary-server": {
"host": "server.example.com",
"port": 2087,
"user": "root",
"token": "YOUR_WHM_API_TOKEN_HERE",
"type": "whm",
"ssh_enabled": true,
"ssh_host": "server.example.com",
"ssh_port": 22,
"ssh_user": "root",
"ssh_key_path": "C:\\Users\\you\\.ssh\\id_ed25519",
"ssh_known_hosts": null
}
}The MCP does not expose arbitrary shell execution. SSH tools use fixed commands with validated inputs.
Client Setup
All clients need the same two values:
command: the Python executable inside.venvargs: the path tosrc/server.py
Use absolute paths in client configuration files.
Claude Desktop
Config file location:
OS | Path |
macOS |
|
Windows |
|
Linux |
|
{
"mcpServers": {
"ItchWHMMCP": {
"command": "/absolute/path/to/ItchWHMMCP/.venv/bin/python",
"args": ["/absolute/path/to/ItchWHMMCP/src/server.py"]
}
}
}Cursor
Create or edit .cursor/mcp.json:
{
"mcpServers": {
"ItchWHMMCP": {
"command": "/absolute/path/to/ItchWHMMCP/.venv/bin/python",
"args": ["/absolute/path/to/ItchWHMMCP/src/server.py"]
}
}
}Windsurf
Edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"ItchWHMMCP": {
"command": "/absolute/path/to/ItchWHMMCP/.venv/bin/python",
"args": ["/absolute/path/to/ItchWHMMCP/src/server.py"]
}
}
}VS Code
Create .vscode/mcp.json in your workspace:
{
"servers": {
"ItchWHMMCP": {
"type": "stdio",
"command": "/absolute/path/to/ItchWHMMCP/.venv/bin/python",
"args": ["/absolute/path/to/ItchWHMMCP/src/server.py"]
}
}
}Cline
Open Cline settings > MCP Servers > Add Server, choose stdio, then enter:
Command:
/absolute/path/to/ItchWHMMCP/.venv/bin/pythonArgs:
/absolute/path/to/ItchWHMMCP/src/server.py
Continue
Add to ~/.continue/config.json:
{
"mcpServers": [
{
"name": "ItchWHMMCP",
"command": "/absolute/path/to/ItchWHMMCP/.venv/bin/python",
"args": ["/absolute/path/to/ItchWHMMCP/src/server.py"]
}
]
}Any Other stdio MCP Host
Use mcp.json in the project root as a reference:
{
"name": "ItchWHMMCP",
"version": "1.0.0",
"transport": "stdio",
"command": "python",
"args": ["src/server.py"]
}Windows users should replace .venv/bin/python with .venv\Scripts\python.exe.
Usage Examples
Once connected, ask your AI client naturally:
List all configured WHM accounts
Check server load on primary-server
Show DNS records for example.com on primary-server
Is Apache running on staging-server?
List email accounts for user demo on primary-server
Check disk usage across all accounts on primary-server
Suspend account demo-user on staging-server for policy violation
Show all SSL certificates on primary-server
What cron jobs does user demo have on primary-server?Confirm the target server and account before running write operations such as account creation, suspension, termination, password changes, or service restarts.
Security and diagnostics examples:
Show top CPU processes on primary-server
Show a resource snapshot for primary-server
List recent cPHulk failed logins on primary-server
Check whether 203.0.113.10 is blocked in CSF on primary-server
Allow 203.0.113.10 in CSF on primary-server
Remove 203.0.113.10 from CSF on primary-serverAdding More Servers
Add another entry to accounts.json and restart your AI client. No code changes are required.
Project Structure
ItchWHMMCP/
|-- src/
| |-- server.py # MCP entry point
| |-- accounts.py # Multi-account loader
| `-- tools.py # WHM and cPanel tool definitions/handlers
|-- accounts.json.template # Safe template to copy from
|-- mcp.json # Generic MCP client reference config
|-- pyproject.toml
|-- CONTRIBUTING.md
|-- LICENSE
`-- README.mdLocal-only files such as accounts.json, .env, virtual environments, AI-agent notes, and personal client configuration should remain untracked.
Security Notes
WHM API tokens can be scoped and revoked per server from WHM.
accounts.jsonmust stay local and untracked.Avoid publishing real hostnames, IP addresses, account names, client names, API tokens, screenshots, or log output.
SSL verification is disabled by default for self-signed WHM certificates. If your server has a trusted certificate, enable verification in
src/tools.py.The MCP server runs locally as a subprocess of your AI client and does not open an inbound network port.
Review every destructive action before approving it in an AI client.
Contributing
Pull requests are welcome. Please read CONTRIBUTING.md before submitting changes.
License
MIT - see LICENSE for details.
Available Tools
31 toolscpanel_bandwidth_usageC
Get bandwidth usage stats for a specific cPanel account
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) | |
| cpanel_user | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description fails to disclose behavioral traits such as auth requirements, scope of stats (e.g., monthly), or output format. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with purpose. Efficient, but lacks any structural elements like parameter notes or usage hints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of many sibling tools and no output schema, the description is too minimal. Does not explain the relationship between 'account' and 'cpanel_user' or what bandwidth data is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%; only 'account' has a description. The description adds no extra meaning beyond the schema. For 'cpanel_user', no guidance is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get bandwidth usage stats for a specific cPanel account'. Verb 'get' and resource 'bandwidth usage stats' are specific, and the context 'cPanel account' distinguishes from WHM-level sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'whm_bandwidth_usage' or 'cpanel_disk_usage'. Missing context about prerequisites or preferred scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cpanel_cron_listB
List all cron jobs configured for a cPanel account
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) | |
| cpanel_user | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description fails to disclose read-only nature, effects, or authentication requirements. Simply stating 'List' is insufficient for full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy, front-loaded with verb and resource. Concise and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is incomplete: it lacks behavioral transparency and parameter semantics. A more complete description would include parameter details and guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only 'account' has a description). The tool description does not add meaning for 'cpanel_user', leaving its purpose ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (List), resource (cron jobs), and scope (for a cPanel account). No sibling tool duplicates this purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description does not mention prerequisites, limitations, or relationships to other list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cpanel_disk_usageB
Get disk usage breakdown for a specific cPanel account
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) | |
| cpanel_user | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description should disclose behavioral traits like output format or performance impact. Only states 'Get disk usage breakdown', which is minimal. No details on what the breakdown contains or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the verb and resource. It is concise with no superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema and no annotations, the description is incomplete. It does not describe the return value or any additional context needed for an agent to understand the full behavior. For a read operation, agent needs to know what to expect from the output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, with only 'account' having a description. The tool description does not add meaning to the parameters, such as clarifying the difference between 'account' and 'cpanel_user'. It fails to compensate for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'disk usage breakdown for a specific cPanel account', which differentiates it from sibling tools like cpanel_bandwidth_usage and whm_disk_usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as whm_disk_usage for server-wide disk usage or other cPanel tools. The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cpanel_dns_recordsB
Get DNS zone records for a domain via cPanel UAPI
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) | |
| cpanel_user | Yes | ||
| domain | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It only states the action ('get') but does not disclose behavioral traits such as authentication requirements, rate limits, or error behavior (e.g., if the domain does not exist).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence with no extraneous words. It front-loads the verb and resource effectively, maximizing informational density in minimal space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, annotations, and the presence of sibling DNS tools, the description is incomplete. It does not explain the output format (e.g., JSON structure), how returned records are organized, or any constraints like pagination. The agent may struggle to use the result effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 3 required parameters with only 33% description coverage ('account'). The description adds no elaboration on 'cpanel_user' or 'domain', leaving their purpose and constraints unexplained. The parameter names are somewhat self-explanatory, but the low coverage is not compensated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get' and the resource 'DNS zone records for a domain', with the method 'via cPanel UAPI'. It is specific and distinguishes the tool's function from siblings like 'whm_dns_list_zones' and 'whm_dns_zone_records' by its explicit scope (cPanel).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'whm_dns_zone_records' or 'whm_dns_list_zones'. There are no conditions, prerequisites, or exclusions mentioned, leaving the agent without strategic context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cpanel_email_createC
Create a new email account for a cPanel user
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) | |
| cpanel_user | Yes | ||
| Yes | Full email address | ||
| password | Yes | ||
| quota | No | Mailbox quota in MB (0 = unlimited) |
TDQS
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, but it only states 'Create a new email account'. It fails to mention effects like modifying cPanel settings, required permissions, or success/failure behavior. No output schema is provided to compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence of 10 words, which is highly concise and free of fluff. However, it sacrifices necessary detail for brevity, earning a slightly lower score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, no output schema, and no annotations, the description is insufficient. It omits return values, error scenarios, prerequisites, and post-creation state, leaving the agent without critical information for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 60% description coverage (3 of 5 parameters have descriptions). The tool description itself adds no extra meaning to parameters; it simply repeats the creation intent. Two parameters (cpanel_user, password) lack schema descriptions and are not explained in the description, leaving gaps for the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new email account for a cPanel user', which uses a specific verb (create) and resource (email account). It distinguishes itself from sibling tools like cpanel_email_list (list) and cpanel_forwarders_list (forwarders), making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or conditions. For example, it doesn't clarify that the cPanel user must already exist or that the email address must be unique.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cpanel_email_listA
List all email accounts for a cPanel user's domain
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) | |
| cpanel_user | Yes | cPanel username | |
| domain | Yes | Domain to list emails for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It implies read-only behavior but does not explicitly state that no modifications occur. For a simple list tool, this is adequate but minimal; additional detail about safety would be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no unnecessary words. Purpose is immediately clear, demonstrating excellent conciseness and front-loading.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and absence of output schema, the description is nearly complete. It could hint at return format (e.g., list of account details) but is sufficient for an AI agent to understand its basic function.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all three parameters with descriptions, achieving 100% coverage. The description adds no extra 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('List') and resource ('all email accounts for a cPanel user's domain'), effectively distinguishing it from sibling tools like cpanel_email_create or cpanel_forwarders_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, nor any mention of prerequisites or context such as needing cPanel access. The description only states what it does, not when it's appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cpanel_forwarders_listB
List all email forwarders for a cPanel user's domain
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) | |
| cpanel_user | Yes | ||
| domain | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the purpose without disclosing behavioral traits like read-only nature, permissions needed, or potential response size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no fluff. Efficient, but could include a brief usage note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple list tool, but missing information on output format and whether the tool is read-only. No annotations to fill gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (account parameter has description). The description does not add extra meaning for the undocumented parameters (cpanel_user, domain) beyond the tool's purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'List' and the resource 'email forwarders' with scope 'for a cPanel user's domain'. It is specific and distinguishes from siblings like cpanel_email_list which lists email accounts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as cpanel_email_list. No exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cpanel_mysql_listC
List MySQL databases and users for a cPanel account
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) | |
| cpanel_user | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description must convey behavioral traits. It only states that the tool lists databases and users, implying a read operation, but fails to disclose permissions needed, scope limitations, or error handling. No output schema or additional behavioral details are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the purpose. It is efficiently written with no unnecessary words, though it could be slightly expanded to cover parameter details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool, the description minimally covers functionality but omits parameter details for 'cpanel_user', usage context, and output format. Given the lack of output schema and annotations, the description is incomplete for an agent to use correctly without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only 'account' has a description). The tool description does not clarify the 'cpanel_user' parameter or provide any additional semantics beyond the schema. Baseline compensation for low schema coverage is expected but missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List'), the resource ('MySQL databases and users'), and the scope ('for a cPanel account'). It is a specific verb+resource combination that effectively differentiates it from sibling tools like whm_mysql_list_dbs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as whm_mysql_list_dbs or other listing tools. The description lacks context about 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.
cpanel_ssl_checkC
Check SSL certificate status and expiry for a cPanel account's domains
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) | |
| cpanel_user | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only says 'check', implying read-only, but does not disclose whether it makes changes, requires special permissions, or any side effects. Insufficient for a safe agent decision.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single concise sentence that is front-loaded. It conveys the essential purpose without fluff, though it could include more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and low parameter complexity, the description should explain return value structure or format. It does not, leaving agents uncertain about what to expect from the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (only 'account' has a description). The tool description adds no parameter details beyond the schema. The 'cpanel_user' parameter lacks any explanation, leaving agents to infer its purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks SSL certificate status and expiry for cPanel account domains. The verb 'check' and resource 'SSL certificate status and expiry' are specific, and it distinguishes from siblings like whm_ssl_list which is server-level.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention scenarios where this tool is preferred or any prerequisites, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cpanel_subdomains_listB
List all subdomains and addon domains for a cPanel account
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) | |
| cpanel_user | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full burden. It only states the basic function without disclosing behavioral traits such as required permissions, read-only nature, or side effects beyond listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff, directly states the tool's action and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation, the description is adequate but lacks details on output format or pagination. With no output schema, the agent might need more context on what the response contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%; one parameter (cpanel_user) lacks a description. The tool description does not add any extra meaning beyond the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resources 'subdomains and addon domains', distinguishing it from sibling list tools like cpanel_email_list or cpanel_dns_records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like cpanel_dns_records. No when-not or prerequisite information is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_accountsB
List all configured WHM/cPanel server accounts available in this MCP
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, authentication needs, or potential side effects. It simply lists accounts without indicating safety or scope constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded and contains no wasted words. It is optimally concise given the simplicity of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters or output schema, the description communicates the primary function well. However, it does not describe the return format or structure, which could be useful for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and schema coverage is 100% trivially, so baseline is 3. The description adds no parameter-specific information beyond the schema, which is empty.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb 'List' and resource 'WHM/cPanel server accounts available in this MCP'. It is clear but does not explicitly distinguish from the sibling tool 'whm_list_accounts', which likely overlaps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'whm_list_accounts' or 'whm_account_summary'. 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.
whm_account_summaryA
Get detailed summary for a specific cPanel account (disk, bandwidth, emails, DBs)
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) | |
| username | Yes | cPanel username to inspect |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not explicitly state that the operation is read-only, nor does it mention any side effects, authentication requirements, or rate limits. The safe nature is implied but not confirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core purpose. Every part is necessary, with no redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema, the description outlines the key data categories (disk, bandwidth, emails, DBs), which provides enough context for the agent to understand the return value. However, it does not describe the format or any pagination/limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage. The description adds value beyond the schema by explaining the 'account' parameter refers to an alias from accounts.json and suggests using list_accounts to see options. The 'username' parameter is straightforward but adequately described.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets a detailed summary for a specific cPanel account, listing the covered aspects (disk, bandwidth, emails, DBs). It uses a specific verb-resource combination and distinguishes from sibling tools that focus on individual aspects like cpanel_disk_usage or whm_bandwidth_usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for obtaining a comprehensive account summary, but it does not explicitly state when to use it over other tools like list_accounts or whm_list_accounts. No exclusions or alternative guidance are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whm_backup_listB
List available backups on the WHM server
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) |
TDQS
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 the basic function, omitting details like read-only nature, authentication needs, or output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, and free of redundancy. Perfectly concise for a simple list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is too minimal for a tool with no output schema. It does not clarify that backups are listed per account (implied by required param), nor describe the return format or any limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description for 'account' is clear and provides context (aliases from accounts.json). However, the tool description itself does not elaborate on parameter meaning. With 100% schema coverage, a score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('list') and the resource ('available backups on the WHM server'). It is specific and distinct from sibling tools, none of which deal with backups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any exclusions or prerequisites. The description assumes the agent knows the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whm_bandwidth_usageC
Get bandwidth usage statistics for all accounts or a specific account
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) | |
| username | No | Filter by cPanel username (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description is minimal; lacks disclosure of read-only nature, permissions, rate limits, or error handling. Does not add value beyond the name and schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence with no fluff. Could be more efficient but adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no description of return format, pagination, or date ranges. Incomplete for a statistics retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. Description adds no new meaning beyond what schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Get' and resource 'bandwidth usage statistics', with scope (all accounts or specific). Does not explicitly differentiate from sibling cpanel_bandwidth_usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., cpanel_bandwidth_usage). No when/when-not or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whm_change_passwordC
Change password for a cPanel account
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) | |
| username | Yes | ||
| password | Yes |
TDQS
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 action without disclosing potential side effects, required permissions, or error conditions. The term 'change' implies mutation but lacks detail on destructive nature or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no fluff, but it is too minimal—lacks structure and context. While concise, it sacrifices useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should provide more context about the operation's behavior, such as success conditions, side effects, or relationship to other account management tools. It falls short.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 33% (only 'account' has a description). The description does not add meaning for 'username' or 'password', and fails to compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Change') and resource ('password for a cPanel account'). It distinguishes itself from sibling tools like whm_create_account or whm_terminate_account by focusing specifically on password changes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., whm_create_account for initial password). No mention of 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.
whm_create_accountC
Create a new cPanel hosting account on the WHM server
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) | |
| username | Yes | ||
| domain | Yes | ||
| password | Yes | ||
| Yes | |||
| plan | No | Hosting plan name (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not disclose behavioral traits such as whether it checks for existing username/domain, requires root, triggers email, or error handling. For a creation 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no fluff. However, it lacks necessary detail, slightly reducing its value for the word count.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema. The description omits return values, error scenarios, and prerequisites. For a complex creation tool with 6 parameters, the description is not complete enough to guide the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (account and plan have descriptions). The tool description adds no parameter details beyond the schema, such as username rules, domain format, or password requirements. It fails to compensate for low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Create) and the resource (new cPanel hosting account on WHM server). It distinguishes from sibling tools like whm_suspend_account and whm_terminate_account, which are for different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., list_accounts first) or prerequisites. No exclusions or when-not-to-use context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whm_disk_usageA
Get disk usage breakdown across all accounts on the server
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It indicates a read operation ('Get') but does not disclose potential performance impact, permission requirements, or whether the tool is safe to run at any time. Basic transparency but lacking depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the action and resource. No extraneous information. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description fails to explain what the breakdown includes (e.g., per-user, per-domain), nor does it describe the return format. Since no output schema exists, more detail would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. However, the description ('across all accounts') contradicts the required 'account' parameter which filters to a single account. This inconsistency reduces clarity and adds confusion beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('disk usage breakdown') with scope ('across all accounts on the server'). It clearly distinguishes from siblings like cpanel_disk_usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies server-wide scope but does not explicitly state when to use this tool versus per-account disk usage tools (e.g., cpanel_disk_usage) or other WHM tools. No when-not-to guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whm_dns_list_zonesA
List all DNS zones managed by this WHM server
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states it lists zones (read operation), but lacks disclosure of behavioral traits like pagination, rate limits, or permissions. Adequate for a simple list but no extra context beyond the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. Front-loaded with purpose. Appropriate length for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no behavioral annotations. Description covers what the tool does but does not describe return format or any constraints. For a simple list, it's minimally complete but could add 'Returns an array of zone names'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good parameter description for 'account'. The tool description adds no parameter information; it relies entirely on schema. Baseline 3 is appropriate as schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'List' and resource 'DNS zones' with clear scope 'managed by this WHM server'. Distinguishes from sibling tools like whm_dns_zone_records (zone-level records) and cpanel_dns_records (cPanel level).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives guidance. Usage is implied (for listing zones), but no mention of when to prefer this over sibling tools. The parameter description hints at 'list_accounts' but not for usage switching.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whm_dns_zone_recordsC
Get all DNS records for a specific zone/domain
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) | |
| domain | Yes | Domain name to query |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only says 'get', implying read-only but lacks details on authentication, rate limits, or response structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with action and resource. Efficient but could include more detail without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no annotations, and description is too minimal for a tool with two required parameters. Lacks information on response format or usage constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions; description adds no extra value beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it retrieves DNS records for a zone/domain, distinguishing it from sibling tool whm_dns_list_zones which lists zones.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like cpanel_dns_records or whm_dns_list_zones. Missing context about prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whm_list_accountsC
List all cPanel accounts on this WHM server with disk usage, domain, status
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not clarify that the tool requires an account parameter, nor does it specify read-only nature or output structure. The mismatch between 'list all' and required parameter is a significant omission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, but it omits critical information about the required parameter, making it under-specified. Conciseness should not sacrifice completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is incomplete. It fails to explain the apparent contradiction between listing all accounts and requiring an account filter, and lacks any mention of output format or edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (account parameter has a description). The tool description adds no additional semantic value 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all cPanel accounts with specific fields (disk usage, domain, status), differentiating it from siblings like whm_account_summary or list_accounts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. The description claims to list all accounts but the input schema requires an account parameter, which is confusing and not addressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whm_list_ipsB
List all IP addresses on the server and their assignments
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description indicates a read operation but does not disclose permissions, side effects, or safety profile. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy, efficiently conveys core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple parameterless-like tool, but lacks output format details, which could help an AI agent parse results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of the single parameter with description. The tool description does not add meaning beyond schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists all IP addresses and their assignments, with a specific verb and resource. It distinguishes from siblings as no other tool explicitly lists IPs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, nor exclusions or prerequisites. The purpose is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whm_list_packagesA
List all hosting packages/plans configured on the WHM server
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It states it lists packages, which is a read-only operation, but does not disclose any behavioral traits like required permissions or side effects. For a simple list tool, this is adequate but could mention if any restrictions apply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no unnecessary words. It efficiently conveys the tool's action and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter with good schema description, no output schema), the description is mostly complete. It explains what it does and how to get the parameter value. However, it could briefly mention the return format (e.g., list of package names) for added completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema describes the 'account' parameter as 'Account alias from accounts.json'. The description adds value by suggesting 'use list_accounts to see options', which helps the agent understand how to obtain valid values, going beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'List all hosting packages/plans configured on the WHM server'. It specifies the verb 'List', resource 'hosting packages/plans', and scope 'on the WHM server', distinguishing it from sibling tools like whm_list_accounts or whm_list_ips.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool or alternatives. However, the context implies it is used to view available packages before creating accounts or managing them. A reference to sibling list_accounts for the parameter provides indirect usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whm_list_servicesA
Check status of all WHM services (Apache, MySQL, cPanel, SMTP, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It states 'check status' implying a read-only operation, but lacks details on return format, error handling, or permission requirements. The listing of example services adds some context, but deeper behavioral traits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no filler, immediately states action and scope. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having only one well-documented parameter, the lack of output schema means the agent has no idea what the response looks like. The description should at least hint at the return structure or whether it's a list of services with statuses. Adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage for the single parameter 'account' is 100% (description in schema). The tool description adds no extra meaning beyond the schema's 'Account alias from accounts.json'. Baseline is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource combination: 'Check status of all WHM services' and lists examples like Apache, MySQL, cPanel, SMTP. This clearly distinguishes it from siblings like whm_restart_service (restart) and whm_server_info (server load).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for checking service status, and siblings like whm_restart_service provide a natural alternative for restarts. However, it does not explicitly state when to use or when not to use, nor does it mention alternatives or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whm_mysql_list_dbsB
List all MySQL databases on the server across all accounts
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavioral traits. It does not disclose permissions, side effects, rate limits, or output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence front-loaded with the verb, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and no output schema, the description is minimally complete but could mention output format or prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema's parameter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and resource 'all MySQL databases on the server across all accounts'. It distinguishes from sibling cpanel_mysql_list by specifying server-wide scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like cpanel_mysql_list. 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.
whm_restart_serviceA
Restart a specific service on the WHM server (apache, mysql, exim, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) | |
| service | Yes | Service name: apache, mysql, exim, ftp, cpsrvd |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the restart action but lacks details on effects (e.g., service downtime, dependencies, permission requirements). For a disruptive operation, more transparency is expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the core action and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 parameters, no output schema), the description provides the basic purpose. However, for a restart operation, additional context about consequences or usage notes would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both parameters described). The description adds minimal value beyond listing example services, which already appears in the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (restart), the resource (specific service on WHM server), and provides examples (apache, mysql, exim). It is distinct from sibling tools like whm_suspend_account or whm_server_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by listing example services but does not provide explicit guidance on when to use this tool versus alternatives, nor does it state when not to use it. 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.
whm_server_infoA
Get WHM server information: hostname, OS, cPanel version, load, uptime
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It clearly states the return fields, implying a read operation, but does not explicitly confirm read-only status or mention authentication requirements. This is adequate but not highly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that efficiently communicates the tool's purpose and output. No extraneous words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple information retrieval tool with one parameter and no output schema, the description adequately lists the fields returned, making the tool's usage and result clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the parameter description already explains the 'account' field. The tool description adds no further meaning beyond what the schema provides, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', identifies the resource 'WHM server information', and lists specific fields (hostname, OS, cPanel version, load, uptime). This is distinct from sibling tools like whm_server_load which is more specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as whm_server_load. The sibling list contains many similar tools, and the description does not clarify scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whm_server_loadA
Get real-time server load averages, memory usage, CPU, swap
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the real-time nature and data types, but does not mention authentication, rate limits, or that the operation is read-only. Adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with all key elements front-loaded: verb, resource, and specific metrics. No unnecessary words, perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter and no output schema, the description is nearly complete. It covers the data returned, though it could optionally mention the output format or that values are averages.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and already explains the 'account' parameter with a cross-reference to list_accounts. The description adds no additional parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves real-time server load averages, memory, CPU, and swap. The verb 'Get' and the specific metrics distinguish it from sibling tools like whm_server_info or whm_disk_usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as whm_server_info or cpanel_disk_usage. The description lacks context about 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.
whm_ssl_listC
List all SSL certificates installed on the server
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It fails to clarify whether this lists certificates globally or per account, and does not mention read-only nature or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise but omits critical scope detail, so it does not fully earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks specification of output format and scope clarity. With no output schema, more description is needed to be complete for agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and already explains the 'account' parameter well. The tool description adds no extra meaning beyond the schema, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states verb 'List' and resource 'SSL certificates', which is clear. However, it says 'installed on the server' but the required 'account' parameter suggests listing per account, creating ambiguity about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus sibling tools like cpanel_ssl_check. No when-not or alternative context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whm_suspend_accountA
Suspend a cPanel account (disables login, web, email)
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) | |
| username | Yes | ||
| reason | No | Reason for suspension |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides basic behavioral context (disables login, web, email) but omits details like FTP/database access, reversibility, or data preservation. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, direct, and front-loaded with the core action. No extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Minimally complete for a suspension tool; lacks details on exact scope and consequences. Acceptable given no output schema and moderate complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% (2 of 3 params described). The description adds no parameter-specific meaning beyond the schema. Baseline score applies as schema does most of the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool suspends a cPanel account and specifies what is disabled (login, web, email). It distinguishes from sibling tools like whm_unsuspend_account and whm_terminate_account by implying a temporary, reversible suspension.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use suspension versus termination or other actions. Does not mention prerequisites or scenarios where suspension is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whm_terminate_accountA
⚠️ PERMANENTLY DELETE a cPanel account and all its data
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) | |
| username | Yes | ||
| confirm | Yes | Must be true to confirm deletion |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description warns of permanent deletion and data loss, but does not disclose additional behaviors like the need for confirmation (though confirm parameter is in schema), irreversibility, or what happens to associated resources. Lacks details beyond the basic destructive nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with an emoji warning conveys the essence immediately. No fluff, well front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description is minimal. It does not explain return values, prerequisites (e.g., account existence), or side effects beyond data loss. Could include more context like requiring confirmation or suspending first.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% (account and confirm have descriptions, username does not). The tool description adds no extra meaning beyond schema; account description already references list_accounts, confirm description already states must be true. Username remains undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly uses strong verbs 'PERMANENTLY DELETE' and specifies the resource 'a cPanel account and all its data', distinguishing it from sibling tools like whm_suspend_account (temporary suspension) or whm_create_account.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies permanent deletion but provides no explicit guidance on when to use this tool vs alternatives (e.g., when to suspend vs delete). No scenario or prerequisite information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whm_unsuspend_accountB
Unsuspend/reactivate a suspended cPanel account
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account alias from accounts.json (use list_accounts to see options) | |
| username | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It states the action but does not disclose behavior for non-suspended accounts, side effects, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence. It is appropriately sized and front-loaded, though it could benefit from additional details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations or output schema, the description is insufficient. It omits prerequisites, error conditions, and confirmation of success, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: 'account' has a description, 'username' does not. The tool description adds no parameter info, so it meets the baseline for partial coverage but does not compensate for gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Unsuspend/reactivate) and the resource (suspended cPanel account). It effectively distinguishes from sibling tools like whm_suspend_account and whm_terminate_account.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool, prerequisites (e.g., account must be suspended), or when to avoid 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
31 tool updates
v1.0.0- First observed
cpanel_bandwidth_usage - First observed
cpanel_cron_list - First observed
cpanel_disk_usage - First observed
cpanel_dns_records - First observed
cpanel_email_create - First observed
cpanel_email_list - First observed
cpanel_forwarders_list - First observed
cpanel_mysql_list - First observed
cpanel_ssl_check - First observed
cpanel_subdomains_list - First observed
list_accounts - First observed
whm_account_summary - First observed
whm_backup_list - First observed
whm_bandwidth_usage - First observed
whm_change_password - First observed
whm_create_account - First observed
whm_disk_usage - First observed
whm_dns_list_zones - First observed
whm_dns_zone_records - First observed
whm_list_accounts - First observed
whm_list_ips - First observed
whm_list_packages - First observed
whm_list_services - First observed
whm_mysql_list_dbs - First observed
whm_restart_service - First observed
whm_server_info - First observed
whm_server_load - First observed
whm_ssl_list - First observed
whm_suspend_account - First observed
whm_terminate_account - First observed
whm_unsuspend_account
TDQS
All tools have distinct purposes, clearly separated by cpanel_ and whm_ prefixes. No two tools have overlapping functionality; each targets a specific operation (e.g., bandwidth, cron, email, DNS) at either the account or server level.
Naming follows a consistent pattern: lowercase snake_case with a clear prefix (cpanel_ or whm_) followed by an action and target (e.g., cpanel_bandwidth_usage, whm_create_account). No mixing of conventions.
With 31 tools, the set is quite extensive but still reasonable for a full-featured WHM/cPanel management server. Each tool addresses a specific administrative task, and the count is justified by the breadth of server and account management needs.
Core hosting management operations are well covered: account CRUD, disk/bandwidth monitoring, email, DNS, SSL, services, and backups. Minor gaps exist (e.g., FTP management, database user manipulation), but the set covers most essential tasks without significant dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Public remote MCP server for Walnai AI Consulting services, pricing, calculator, FAQs, and adoption.
- ZapierOAuthcom.zapier
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
Related MCP Servers
- AlicenseAqualityDmaintenanceA complete MCP server enabling AI assistants to manage cPanel hosting through natural language, including file, database, email, subdomain, and system operations.161MIT
- FlicenseBqualityCmaintenanceA comprehensive MCP server for managing cPanel hosting accounts through AI assistants. It supports DNS, email (DKIM/SPF), databases, domains, SSL, PHP, cron jobs, security, Git deployment, and more.10018-
- AlicenseNot gradedqualityFmaintenanceA comprehensive MCP server for managing cPanel web hosting accounts via UAPI, enabling file, database, email, domain, cron, backup, and system monitoring operations.263MIT
- AlicenseAqualityBmaintenanceMCP server for managing cPanel hosting accounts via UAPI. Enables domains, DNS, email, MySQL, file management, and arbitrary UAPI calls through natural language.1672MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/manofsadness/ItchWHMMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server