vps-mcp
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vps-mcplist my VPS servers"
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.
VPS.org MCP Server
An MCP (Model Context Protocol) server that connects AI assistants to the VPS.org API. Manage VPS servers, domains, DNS records, SSH keys, and more through natural language.
Install
# Recommended: run directly with uvx (no install needed)
uvx vps-mcp
# Or install with pip
pip install vps-mcpRelated MCP server: whm-mcp-server
Get Your API Token
Log in at admin.vps.org
Go to Account → Developers (direct link)
Create a new API token
Copy the token (starts with
vps_)
Configuration
Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"vps": {
"command": "uvx",
"args": ["vps-mcp"],
"env": {
"VPS_API_TOKEN": "vps_your_token_here"
}
}
}
}Claude Code
claude mcp add vps -- uvx vps-mcpThen set the environment variable before running Claude Code:
export VPS_API_TOKEN="vps_your_token_here"Custom API URL
If you need to point to a different API endpoint:
{
"env": {
"VPS_API_TOKEN": "vps_your_token_here",
"VPS_API_URL": "https://admin.vps.org/api/v1"
}
}Tools
Servers
Tool | Description |
| List all VPS servers in your account |
| Get detailed info about a specific server |
| Create a new VPS server |
| Permanently delete a server |
| Start, stop, restart, or hard-stop a server |
| Create a backup of a server |
| Create a snapshot of a server |
| Resize a server to a different plan |
Domains
Tool | Description |
| List all domains in your account |
| Get detailed info about a domain |
| Search for domain availability |
| Update nameservers for a domain |
| Renew a domain registration |
DNS
Tool | Description |
| List DNS zones (optionally filter by domain) |
| Get a DNS zone with all records |
| Create a new DNS zone |
| Delete a DNS zone and all its records |
| Create a DNS record (A, AAAA, CNAME, MX, TXT, etc.) |
| Update an existing DNS record |
| Delete a DNS record |
Info
Tool | Description |
| List available VPS plans with pricing |
| List available data center locations |
| List available OS options |
SSH Keys
Tool | Description |
| List all SSH keys in your account |
| Add a new SSH public key |
| Delete an SSH key |
Required API Permissions
Your API token needs the following permissions depending on which tools you use:
Tools | Required Permission |
Server tools |
|
Domain tools |
|
DNS tools |
|
Plan/Location/OS tools |
|
SSH Key tools |
|
All tools |
|
Examples
Once configured, you can ask your AI assistant things like:
"List my VPS servers"
"Create a new Ubuntu server in Amsterdam with the starter plan"
"Stop server abc-123"
"Add an A record for api.example.com pointing to 1.2.3.4"
"What plans are available?"
"Add my SSH key to the account"
Development
# Clone the repo
git clone https://github.com/vpsdotorg/vps-mcp.git
cd vps-mcp
# Install in development mode
uv sync
# Run the server locally
VPS_API_TOKEN=your_token uv run vps-mcpLicense
MIT
Available Tools
26 toolsadd_ssh_keyA
Add a new SSH public key to your account.
Args: name: A label for the key (e.g. "work-laptop") public_key: The SSH public key (e.g. "ssh-ed25519 AAAA...")
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| public_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the action without details on idempotency, duplicate handling, or required permissions. For a mutation tool, this is insufficient transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: one sentence for purpose followed by clear parameter descriptions. No irrelevant information, and the structure is front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two string parameters, the description covers the core usage. An output schema exists (not shown), so return values are expected to be documented there. Minor gaps like prerequisites are acceptable given simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description adds meaningful explanations for both parameters with examples (e.g., 'work-laptop' for name). This compensates for the missing schema descriptions, though format constraints could be more explicit.
Input schemas describe structure but not intent. Descriptions should explain 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 'Add a new SSH public key to your account,' using a specific verb and resource. This distinguishes it from sibling tools like delete_ssh_key and list_ssh_keys.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when adding an SSH key, but lacks explicit when-to-use or when-not-to-use guidance. Context from sibling names makes the purpose clear, meeting the 'clear context' criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_backupC
Create a backup of a VPS server.
Args: server_uuid: The UUID of the server to back up
| Name | Required | Description | Default |
|---|---|---|---|
| server_uuid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 action without disclosing behavioral details such as idempotency, performance impact, or what the backup entails (full/incremental).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short with no wasted words. While it is concise, it sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 existence of an output schema, the description need not explain return values, but it fails to cover essential context like backup type (full/incremental), prerequisites (server must exist), or how it differs from the sibling tool 'create_snapshot'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description explains the sole parameter 'server_uuid' as 'The UUID of the server to back up', adding value beyond the schema's type definition. However, it lacks further detail like format or constraints.
Input schemas describe structure but not intent. Descriptions should explain 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 backup of a VPS server', which specifies the verb and resource. However, it does not differentiate from the sibling tool 'create_snapshot', which may serve a similar 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 guidance is provided on when to use this tool versus alternatives (e.g., create_snapshot), nor are there any prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_dns_recordA
Create a DNS record in a zone.
Args: zone_uuid: The UUID of the DNS zone record_type: Record type (A, AAAA, CNAME, MX, TXT, NS, SRV, CAA) name: Record name (e.g. "@" for root, "www", "mail") value: Record value (e.g. IP address, hostname) ttl: Time to live in seconds (default 3600) priority: Priority for MX/SRV records
| Name | Required | Description | Default |
|---|---|---|---|
| zone_uuid | Yes | ||
| record_type | Yes | ||
| name | Yes | ||
| value | Yes | ||
| ttl | No | ||
| priority | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 reveals that the tool creates a record but lacks details on idempotency, error handling, or constraints like record duplication.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a one-line summary followed by a bulleted parameter list. It is front-loaded and efficient, though the parameter list dominates.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While it documents all parameters, it omits prerequisites (e.g., zone must exist) and return value details. The existence of an output schema partially compensates, but the description could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description adds significant value by explaining each parameter with examples (e.g., '@' for root name, IP address for value).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a DNS record in a zone,' specifying the verb and resource. It distinguishes from sibling tools like delete_dns_record and update_dns_record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 focuses on parameters rather than contextual usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_dns_zoneB
Create a new DNS zone for a domain.
Args: domain: The domain name (e.g. "example.com")
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral disclosure. It only states the creation action but omits any details about effects (e.g., whether it replaces an existing zone), required permissions, rate limits, or return value structure. This lack of transparency hinders safe usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the action. It uses a clear format with an 'Args' section. No superfluous text. However, it could be slightly more structured (e.g., separate description before args).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple one-parameter schema and presence of an output schema, the description provides basic completeness. However, it lacks details on edge cases (e.g., domain already having a zone), success/failure indicators, and usage restrictions. For a creation tool, more context is needed.
Complex tools with many parameters or behaviors need more documentation. 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 0% description coverage, so the description must compensate. It defines the 'domain' parameter with a type and example, adding meaning beyond the schema's 'Domain' title. However, the explanation is minimal and lacks details like format constraints or default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Create a new DNS zone' and identifies the resource 'for a domain'. The verb 'create' and the resource 'DNS zone' are specific and distinct from siblings like 'create_dns_record' or 'delete_dns_zone'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention when not to use it, nor does it reference sibling tools for context. The agent must infer usage from the tool's name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_serverA
Create a new VPS server.
Args: hostname: Hostname for the server (e.g. "my-server") location_id: Location ID (use list_locations to find available locations) plan_uuid: UUID of the plan (use list_plans to find available plans) os_version_uuid: UUID of the OS version (use list_operating_systems to find options) ssh_key_ids: Optional list of SSH key UUIDs to install on the server
| Name | Required | Description | Default |
|---|---|---|---|
| hostname | Yes | ||
| location_id | Yes | ||
| plan_uuid | Yes | ||
| os_version_uuid | Yes | ||
| ssh_key_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must cover safety and behavioral traits. It only states the creation action without disclosing any side effects, authorization needs, or rate limits. This is insufficient for a creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the main action. The parameter list is structured and easy to scan. Slight verbosity with 'Args:' label is acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers parameter usage with cross-references and notes optionality. Given output schema exists, return value details are not required. It provides enough context for a typical creation task.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description fully compensates. Each parameter gets a meaningful explanation (e.g., hostname example, cross-references for location/plan/OS, optional ssh_key_ids with purpose). This adds significant value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new VPS server' with a specific verb and resource. It distinguishes well from siblings like list_servers or delete_server, and the parameter list directly supports the action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by referencing sibling tools for location, plan, and OS selection, implying prerequisites. However, it does not explicitly state when not to use this tool or provide alternatives for similar actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_snapshotC
Create a snapshot of a VPS server.
Args: server_uuid: The UUID of the server to snapshot label: Optional label for the snapshot
| Name | Required | Description | Default |
|---|---|---|---|
| server_uuid | Yes | ||
| label | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only states 'create', implying a mutation, but omits details such as whether the operation is destructive, requires specific permissions, has rate limits, or takes time. This is insufficient for safe decision-making.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two short sentences followed by an Args list. The main action is front-loaded. While the Args list repeats parameter names, it adds minimal overhead. No superfluous content is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 an output schema, the description need not detail return values, but it lacks other contextual completeness such as error scenarios, preconditions (e.g., server must exist), or post-conditions. For a tool with close siblings, this incompleteness can lead to suboptimal selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add value. It defines server_uuid as 'The UUID of the server to snapshot' and label as 'Optional label for the snapshot', which provides basic semantics beyond the schema's type and title. However, it lacks detail on format, constraints, or example values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a snapshot') and the target resource ('a VPS server'). This verb+resource combination is specific and distinguishes the tool from siblings like create_backup, which deals with backups rather than snapshots. However, it does not explicitly differentiate itself, so it's strong but not perfect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 like create_backup or other server management tools. There are no exclusions or context given, leaving the agent without information to decide between similar operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_dns_recordC
Delete a DNS record.
Args: record_uuid: The UUID of the DNS record to delete
| Name | Required | Description | Default |
|---|---|---|---|
| record_uuid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It indicates a destructive action ('delete') but does not disclose behavioral traits like irreversibility, confirmation requirements, or side effects (e.g., propagation time). The parameter list adds no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short (one sentence plus an arg list) but the arg list is redundant with the input schema. It is front-loaded with the action, but some information is unnecessary. It is adequately concise but could be streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter) and presence of an output schema, the description covers the basic purpose. However, it lacks details about deletion behavior (e.g., permanent, cascading effects). For a simple operation, it is minimally complete but leaves gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must add meaning to the parameter, but it only repeats the parameter name 'record_uuid' without explaining its role or format. The schema already provides the type as string, so no semantic value is added.
Input schemas describe structure but not intent. Descriptions should explain 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 'Delete a DNS record' clearly states the action (delete) and the resource (DNS record). It distinguishes from sibling tools like create_dns_record and delete_dns_zone, which operate on different verbs or resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. There is no mention of prerequisites, such as whether the record must exist or if deletion is irreversible. This lack of context leaves the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_dns_zoneB
Delete a DNS zone and all its records.
Args: zone_uuid: The UUID of the DNS zone to delete
| Name | Required | Description | Default |
|---|---|---|---|
| zone_uuid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 notes the destructive nature but lacks details on irreversibility, permissions needed, or what happens if the zone doesn't exist. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short and front-loaded with the essential action. However, the parameter docstring could be integrated better. No wasted words, but slightly under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While an output schema exists, its contents are not visible. The description does not mention return values, error states, or side effects beyond deletion. For a destructive operation, more context is expected.
Complex tools with many parameters or behaviors need more documentation. 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 one required parameter (zone_uuid) with 0% schema description coverage. The tool description adds 'The UUID of the DNS zone to delete', which essentially restates the parameter name and provides negligible additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete a DNS zone and all its records', using a specific verb and resource. It distinguishes itself from sibling tools like delete_dns_record which only deletes a single record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 that this tool is for completely removing a zone and its records, but it does not explicitly state when to use it vs alternatives like delete_dns_record, or provide any prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_serverB
Permanently delete a VPS server. This action is irreversible.
Args: server_uuid: The UUID of the server to delete
| Name | Required | Description | Default |
|---|---|---|---|
| server_uuid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description highlights irreversibility, which is a critical behavioral trait. However, with no annotations, it does not fully disclose consequences (e.g., whether associated resources like IPs or backups are affected) or any required states (e.g., server must be stopped). The warning is useful but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the key purpose and irreversibility. The Args section is slightly redundant with the schema but does not detract significantly. Every sentence serves a purpose, though it could omit the Args section entirely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 action with no annotations, the description omits important context like error scenarios, prerequisites, or side effects. Even though an output schema exists, the agent lacks guidance on what to expect after deletion or how to handle errors.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description restates the schema parameter 'server_uuid' without adding any context about its format, constraints, or how to obtain it. With 0% schema description coverage, this fails to add meaningful value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Permanently delete a VPS server.' It uses a specific verb ('delete') and resource ('server'), and the irreversibility warning distinguishes it from non-destructive sibling tools like create_server or resize_server.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (e.g., when to power down instead). The description does not mention any prerequisites, conditions, or exclusions, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_ssh_keyB
Delete an SSH key from your account.
Args: ssh_key_uuid: The UUID of the SSH key to delete
| Name | Required | Description | Default |
|---|---|---|---|
| ssh_key_uuid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only states the action without disclosing side effects (e.g., irreversibility, impact on existing servers using the key) or required permissions. For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two sentences, front-loading the core action and then detailing the parameter. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple, the description lacks context about prerequisites, side effects, or relationship to other tools like list_ssh_keys. An output schema exists but is not described, so the agent may not know what to expect upon success or failure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description adds a one-line explanation for the sole parameter ('The UUID of the SSH key to delete'), clarifying its role. However, it does not specify format, source, or validation constraints.
Input schemas describe structure but not intent. Descriptions should explain 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 'Delete' and the resource 'SSH key from your account', which is specific and distinguishes it from siblings like add_ssh_key and list_ssh_keys.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., when to delete vs. add or list). No mention of prerequisites or contextual conditions for deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dns_zoneB
Get a DNS zone with all its records.
Args: zone_uuid: The UUID of the DNS zone
| Name | Required | Description | Default |
|---|---|---|---|
| zone_uuid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must fully disclose behavior. It implies a read operation but lacks details on idempotency, error handling (e.g., zone not found), 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 concise with two sentences plus an args list, no superfluous text. It efficiently conveys the core purpose and parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one parameter and an output schema (not shown but indicated), so the description covers the basic function and parameter. Missing usage guidance and alternatives, which reduces completeness for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds an 'Args' section explaining zone_uuid as 'The UUID of the DNS zone', compensating for 0% schema description coverage. However, the explanation is minimal and could include format or source information.
Input schemas describe structure but not intent. Descriptions should explain 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' with the additional detail 'with all its records', distinguishing it from siblings like list_dns_zones and get_domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., list_dns_zones for listing all zones) or when not to use it. The description only states the action without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domainB
Get detailed information about a specific domain.
Args: domain_uuid: The UUID of the domain
| Name | Required | Description | Default |
|---|---|---|---|
| domain_uuid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. It does not mention that the operation is read-only, any authentication requirements, rate limits, or what happens if the domain does not exist. The description is insufficient for transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences (purpose + args). It is front-loaded with the core purpose and contains no fluff. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one required parameter, output schema present), the description adequately covers the essentials. However, a brief note about UUID format or error conditions would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds only 'The UUID of the domain' for domain_uuid, which barely extends beyond the schema's title 'Domain Uuid' and type. No format, constraints, or additional context are 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?
The description states 'Get detailed information about a specific domain,' which clearly identifies the verb and resource. It distinguishes from siblings like list_domains and search_domains by focusing on a single domain via UUID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (e.g., search_domains, list_domains). The need for a domain_uuid is implied but not explicitly stated as a prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_serverB
Get detailed information about a specific VPS server.
Args: server_uuid: The UUID of the server
| Name | Required | Description | Default |
|---|---|---|---|
| server_uuid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It only states 'detailed information' without specifying what information is returned, permissions required, or side effects. The existence of an output schema mitigates this slightly, but the description itself lacks transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and includes a structured Args section. It is efficient, with no unnecessary words, though it could be slightly more informative 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?
Given the existence of an output schema, the description does not need to detail return values. However, it lacks context on prerequisites, error conditions, or usage scenarios. It is minimally complete but has gaps for a new 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 0%, meaning the input schema provides no description for server_uuid. The tool description only repeats 'The UUID of the server', which adds no extra meaning beyond the parameter name and title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get detailed information about a specific VPS server', using a specific verb and resource. It distinguishes from siblings like list_servers (list vs get) and create_server (create vs get).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 that the tool is for obtaining details of a specific server by server_uuid, but it does not explicitly guide when to use it over alternatives like list_servers or other server-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dns_zonesB
List DNS zones, optionally filtered by domain name.
Args: domain: Optional domain name to filter by
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only mentions listing and filtering. No details about pagination, read-only behavior, or other effects are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using two short sentences with no extraneous information. It is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description adequately covers the input and purpose. However, it lacks any mention of limits, ordering, or other behavioral aspects, but the tool is simple enough that this may suffice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description explains the domain parameter as an optional filter. This adds context beyond the schema, though it only covers one parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (List) and resource (DNS zones) and specifies an optional filter by domain name. This distinguishes it from sibling tools like get_dns_zone which retrieves a single zone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 get_dns_zone or search_domains. The description only states what it does without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_domainsA
List all domains in your account.
Args: page: Page number (default 1)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states it lists domains. It does not disclose pagination behavior, rate limits, read-only status, or sorting order. The transparency is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences plus an argument list. Every word serves a purpose, and the structure is clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists and only one parameter, the description is mostly complete. It could mention that it returns a list with pagination info, but overall it adequately describes a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description adds meaning by labeling 'page' as 'Page number (default 1)'. This clarifies intent but lacks details like maximum page size or whether it is 1-indexed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it lists all domains in the account, using the verb 'List' with the resource 'domains'. This clearly differentiates it from sibling tools like get_domain (single domain) or search_domains (with filters).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 listing all domains but provides no guidance on when to use this tool versus alternatives like search_domains or get_domain. 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.
list_locationsB
List all available data center locations.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It does not disclose behavioral traits such as read-only nature, authentication requirements, rate limits, or any side effects. For a list operation, these are not critical but still absent.
Agents need to know what a tool does to the 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. Efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no required inputs), the description is adequate. The presence of an output schema likely details return structure, so the description does not need to elaborate further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema coverage (trivially), the description adds value by specifying that the tool lists locations. Baseline for 0 params is 4, and the description fulfills this.
Input schemas describe structure but not intent. Descriptions should explain 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 'List all available data center locations' clearly states the verb (list) and resource (data center locations). It is specific but does not differentiate from sibling list tools like list_dns_zones or list_servers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The agent must infer from the name alone. No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_operating_systemsA
List all available operating systems and their versions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states it lists data, which is inherently read-only, but does not mention any behavioral traits like rate limits or that it reflects real-time availability. With no annotations, the description carries the full burden and is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the entire purpose without any redundant or additional 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 zero parameters and the presence of an output schema, the description sufficiently explains what the tool returns and is complete for its simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the description does not need to add parameter semantics. Baseline 4 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 uses a specific verb ('List') and resource ('available operating systems and their versions'), clearly distinguishing it from sibling tools like list_plans or list_locations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While no explicit when-to-use or when-not-to-use guidance is given, the tool's function is self-evident as a simple listing, and no sibling tool directly overlaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_plansA
List all available VPS plans with pricing, specs, and UUIDs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 implies a safe, read-only operation by stating 'List all available VPS plans'. No behavioral traits (e.g., rate limits, auth needs) are disclosed, but for a simple list operation, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. Every element ('List all available VPS plans with pricing, specs, and UUIDs') is essential and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (zero parameters, no annotations, but an output schema exists), the description is complete. It tells the agent what the tool does and what it returns, without needing to explain return values due to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty (0 parameters), so there are no parameters to describe. Schema coverage is 100%. The description does not add parameter info beyond what the schema provides, but the baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List', the resource 'all available VPS plans', and the return content 'with pricing, specs, and UUIDs'. It distinguishes from sibling tools like list_servers, list_locations, and list_operating_systems, which deal with different entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when the agent needs VPS plans) but does not explicitly state when not to use it or provide alternatives. The purpose is straightforward, so the implied usage is adequate but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_serversA
List all VPS servers in your account.
Args: page: Page number (default 1) page_size: Results per page (default 20, max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only covers basic pagination. It fails to disclose ordering, rate limits, or behavior on empty results. For a listing tool, more transparency is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the main purpose. The parameter listing is clear, though it could drop the 'Args:' prefix for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 existence of an output schema (not shown), the description covers the essential purpose and pagination parameters. However, lacking details on filtering or ordering, it is slightly incomplete for a list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds default values and maximum for page_size beyond the input schema, which has no descriptions. With 0% schema coverage, this compensation is helpful but could include more detail on parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'List all VPS servers in your account.' with a clear verb and resource. It distinguishes from sibling tools like get_server (single server) and create_server (creation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings such as get_server for a specific server or search_domains. No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ssh_keysA
List all SSH keys in your account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 only states the tool lists keys, without disclosing any behavioral traits like authentication requirements, rate limits, or whether the operation has side effects. For a simple read tool, this is minimally adequate but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, perfectly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is an output schema (not shown), the description does not need to detail return values. It adequately covers the tool's purpose for a simple list operation. However, it could briefly mention that it returns all keys.
Complex tools with many parameters or behaviors need more documentation. 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, so baseline is 4. No additional information is needed beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all SSH keys in the account, using a specific verb and resource. It distinguishes itself from siblings like add_ssh_key and delete_ssh_key by being a read-only list operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. While the purpose is obvious, the description should ideally mention that this is the appropriate tool for viewing all SSH keys, especially in contrast to add/delete operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
renew_domainC
Renew a domain registration.
Args: domain_uuid: The UUID of the domain to renew years: Number of years to renew for (default 1)
| Name | Required | Description | Default |
|---|---|---|---|
| domain_uuid | Yes | ||
| years | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only says 'Renew a domain registration' without specifying idempotency, cost implications, or any side effects. The output schema exists but is not referenced, and no additional behavioral context is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (2 sentences plus arg list), which is concise but omits necessary context. It is front-loaded with the action, but the brevity comes at the cost of 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 renewal tool with an output schema, the description lacks context about return values, error conditions, or prerequisites (e.g., domain ownership). It is minimal and does not fully enable an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. The Args section restates the parameter names and adds the default for years, but doesn't provide constraints (e.g., valid range for years) or clarify the meaning beyond what is obvious from parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Renew a domain registration', which clearly identifies the action and resource. It distinguishes from sibling tools like get_domain, list_domains, or update_nameservers, as renewal is a distinct operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use the tool (e.g., domain must be registered, not expired) or when not to use it (e.g., if already renewed for maximum years). No alternatives are suggested, leaving the agent without context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resize_serverA
Resize a VPS server to a different plan. The server may be restarted.
Args: server_uuid: The UUID of the server to resize new_plan_uuid: The UUID of the new plan (use list_plans to see options)
| Name | Required | Description | Default |
|---|---|---|---|
| server_uuid | Yes | ||
| new_plan_uuid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 server may be restarted.' Missing details on downtime, data safety, permissions, 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?
The description is two sentences plus a structured Args list. No wasted text, but the 'Args' section could be integrated or shortened. Still efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. However, for a potentially disruptive tool, it omits duration, impact on existing data, and required permissions, leaving 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?
Both parameters are explained: server_uuid (the server to resize) and new_plan_uuid (the new plan, with a note to use list_plans). This adds meaning beyond the schema, which has 0% description 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 uses a specific verb ('Resize') and resource ('VPS server'), and differentiates from sibling tools like create_server, delete_server, and server_power.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 hints at when to use it by referencing list_plans to find plans, but provides no explicit when-not-to-use or alternatives. It mentions the server may be restarted as a consequence, but lacks comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_domainsB
Search for domain availability.
Args: domain: The domain name to search for (e.g. "example.com")
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 of behavioral disclosure. It only states the purpose without mentioning side effects, read-only nature, rate limits, or authorization requirements. The word 'search' implies a read operation, but it is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with a single line stating the purpose followed by a clean Args block. Every word is necessary, and the primary action is front-loaded. No wasted content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with an output schema, the description is minimally adequate. It could be improved by briefly noting the return type or what 'availability' means (e.g., boolean or details). Given the tool's simplicity, the current description is sufficient but not outstanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the input schema by explaining the 'domain' parameter's purpose and providing an example ('example.com'). Since schema description coverage is 0%, this compensation is valuable and clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches for domain availability, which identifies the verb 'search' and the resource 'domain availability'. It distinguishes from siblings like 'get_domain' (retrieve details) and 'list_domains' (list owned domains), though it could be more explicit about the availability check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, use cases, or when not to use it. Sibling tools exist (e.g., get_domain, list_domains) but no differentiation is offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server_powerA
Control the power state of a VPS server.
Args: server_uuid: The UUID of the server action: Power action — one of: "start", "stop", "restart", "hard_stop"
| Name | Required | Description | Default |
|---|---|---|---|
| server_uuid | Yes | ||
| action | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states 'control the power state' without mentioning potential destructiveness (e.g., hard_stop may cause data loss), authentication needs, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two lines plus an argument list, all front-loaded. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema (not shown but indicated), the description covers the essential information. It could mention side effects or state transitions, but it is largely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. It explains 'server_uuid' as the server's UUID and 'action' with explicit allowed values, compensating for the schema's lack of details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Control the power state of a VPS server,' using a specific verb and resource. It is distinct from sibling tools like create_server or delete_server, which focus on lifecycle management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 lists valid actions ('start', 'stop', 'restart', 'hard_stop') and defines the two parameters. However, it does not indicate when to use this tool vs alternatives, nor does it mention prerequisites like server existence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_dns_recordB
Update an existing DNS record.
Args: record_uuid: The UUID of the DNS record to update record_type: New record type name: New record name value: New record value ttl: New TTL in seconds priority: New priority (MX/SRV records)
| Name | Required | Description | Default |
|---|---|---|---|
| record_uuid | Yes | ||
| record_type | No | ||
| name | No | ||
| value | No | ||
| ttl | No | ||
| priority | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 only states the basic operation without disclosing behavioral traits such as whether it overwrites all fields, validation rules, or if it returns any confirmation. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a concise main sentence followed by an Args list. It is efficient, though the list could be slightly more concise by integrating parameter descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 an output schema, the description does not mention return values or side effects. For a tool with 6 parameters and no annotations, it fails to provide enough context about what happens after update (e.g., confirmation, updated record).
Complex tools with many parameters or behaviors need more documentation. 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 0% description coverage, so the description compensates by listing each parameter with a brief explanation (e.g., 'The UUID of the DNS record to update', 'New record type'). However, the explanations are generic and lack constraints, allowed values, or formatting details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update an existing DNS record.' The verb 'update' and resource 'DNS record' are specific, and with sibling tools like create_dns_record and delete_dns_record, it is well-distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for updating an existing record, but does not provide explicit when-to-use or when-not-to-use guidance. It lacks prerequisites, context, or alternatives, relying on implied differentiation from sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_nameserversA
Update the nameservers for a domain.
Args: domain_uuid: The UUID of the domain ns1: Primary nameserver (required) ns2: Secondary nameserver ns3: Third nameserver ns4: Fourth nameserver
| Name | Required | Description | Default |
|---|---|---|---|
| domain_uuid | Yes | ||
| ns1 | Yes | ||
| ns2 | No | ||
| ns3 | No | ||
| ns4 | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the action (update) but fails to mention side effects like propagation time, whether it replaces all nameservers, or authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, well-structured with an Args block, and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return value explanation is not required. However, given 5 parameters and the potential impact of the operation, the description lacks context on behavior and side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description lists parameters with roles (Primary, Secondary, etc.) and indicates which are required vs optional, adding significant meaning beyond the bare 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 'Update the nameservers for a domain.' This is a specific verb+resource combination that distinguishes it from sibling tools like create_dns_record or list_domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use vs alternatives, prerequisites, or exclusions. The description implies use for nameserver changes but lacks explicit context for when it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct resource and action (e.g., create_server vs. list_servers vs. get_server) with no overlap. Tools for VPS, DNS, SSH keys, and domains are clearly separated.
All tools follow a consistent verb_noun pattern (e.g., create_server, list_dns_zones, delete_ssh_key). Minor exceptions like server_power are still intuitive.
26 tools cover multiple domains (VPS, DNS, SSH, domains) without being excessive. Each tool serves a clear purpose, though the count is slightly above the typical sweet spot of 3-15.
The tool set provides full CRUD and lifecycle management for VPS servers, DNS zones/records, SSH keys, and domains. Common operations like backup, snapshot, resize, power control, and domain renewals are included.
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
Manage HepCloud (Turkish cloud) servers and managed PostgreSQL from your AI assistant. OAuth 2.1.
Manage Laravel Forge servers, sites, and deployments from your AI assistant.
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
Manage Rackspace Spot Kubernetes Cloudspaces, node pools, and VMs from your AI assistant.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to manage SpinupWP infrastructure, including servers, WordPress sites, and SSH keys through the SpinupWP v1 JSON API. Users can perform actions like provisioning sites, purging caches, and restarting services via natural language commands.17MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage WHM hosting accounts and server administration tasks including account management, server stats, updates, SSL, backups, and email through a secure API.10
- FlicenseAqualityDmaintenanceGives AI assistants full control over a VPS via SSH, enabling command execution, file management, service control, Docker and firewall management.95
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to manage virtual machines via natural language, including creating, editing, and VNC control.18MIT
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/vpsdotorg/vps-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server