DataPacket MCP 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., "@DataPacket MCP Serverlist my 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.
DataPacket MCP Server
An MCP (Model Context Protocol) server that provides access to the DataPacket GraphQL API. It exposes all DataPacket API operations as MCP tools, allowing LLMs and MCP clients to manage dedicated servers, view invoices, provision new servers, handle support requests, and more.
Features
33 tools covering all DataPacket GraphQL queries and mutations
Two transports: stdio (for local integrations) and streamable HTTP (for remote/web deployments)
Full coverage of the DataPacket API: servers, provisioning, billing, traffic, DNS, support, and post-install scripts
Related MCP server: MCP HTTP Client Server
Prerequisites
Node.js 22 or later
A DataPacket API token (generate one in the Security page of the DataPacket client panel)
Installation
git clone git@github.com:hjpotter92/datapacket-mcp-server.git
cd datapacket-mcp-server
npm install
npm run buildConfiguration
All options can be set via environment variables or CLI flags. CLI flags take precedence over environment variables.
Option | CLI Flag | Environment Variable | Default | Description |
API Token |
|
| (required) | DataPacket API bearer token |
Transport |
|
|
|
|
Port |
|
|
| HTTP server port (only for |
Debug |
|
| off | Log all GraphQL requests and responses to stderr |
Usage
stdio transport (default)
# Via environment variable
DATAPACKET_API_TOKEN=your-token node build/index.js
# Via CLI flag
node build/index.js --api-token your-token
# Or using the bin name after npm link
datapacket-mcp-server --api-token your-tokenStreamable HTTP transport
node build/index.js --api-token your-token --transport http --port 3000The server will listen at http://localhost:3000/mcp.
MCP client configuration
stdio (e.g. for Cursor, Claude Desktop):
{
"mcpServers": {
"datapacket": {
"command": "node",
"args": ["/path/to/datapacket-mcp-server/build/index.js", "--api-token", "your-token"]
}
}
}Streamable HTTP:
{
"mcpServers": {
"datapacket": {
"type": "streamable-http",
"url": "http://localhost:3000/mcp"
}
}
}Available Tools
Queries (17)
Tool | Description |
| Account info (name, email, hostname, creation date) |
| List all API error codes |
| Single invoice by number |
| Paginated invoices with filters |
| All available data center locations |
| Available OS images for provisioning |
| Paginated post-install scripts |
| Server configs matching filter criteria |
| PTR record for an IP |
| Single server details by name/alias/IP |
| Link config task status |
| Paginated server list with filters |
| Single subscription details |
| Paginated subscriptions |
| Single support request with posts |
| Paginated support requests |
| Traffic statistics over a time period |
Mutations (16)
Tool | Description |
| Change IPMI password |
| Enable/disable link aggregation |
| Create a new post-install script |
| Open a support ticket |
| Delete a post-install script |
| Power on/off/reset/cycle a server |
| Provision a new server |
| Set default traffic plan for provisioning |
| Set or delete a PTR record |
| Set custom server alias |
| Set boot device via IPMI |
| Set primary IP address |
| Set or delete a single tag |
| Replace all tags on a server |
| Reply to a support ticket |
| Update an existing post-install script |
Security Best Practices for Remote Deployments
When running the server with the HTTP transport in a hosted/remote environment, follow these recommendations to keep your deployment secure:
Never expose the server directly to the internet
Always place the MCP server behind a reverse proxy (e.g. Nginx, Caddy, Traefik). The server does not implement TLS or authentication on its own, so the reverse proxy should handle:
TLS termination — serve traffic over HTTPS only.
Access control — restrict access by IP allowlist, VPN, or an authentication layer (e.g. HTTP Basic Auth, OAuth2 proxy, mutual TLS).
Protect your API token
Do not pass the token via CLI flags in production — command-line arguments are visible in process listings (
ps,/proc). Use theDATAPACKET_API_TOKENenvironment variable instead.Never commit tokens to version control. Use a secrets manager (e.g. Vault, AWS Secrets Manager, Doppler) or a
.envfile excluded from git.Rotate tokens regularly through the DataPacket security settings.
Limit network exposure
Bind the server to
127.0.0.1or a private interface rather than0.0.0.0. Let the reverse proxy handle external traffic.Use firewall rules (e.g.
iptables, security groups) to restrict which hosts can reach the server port.
Run with least privilege
Run the Node.js process as a non-root user with minimal filesystem permissions.
Use a process manager (e.g. systemd, PM2) to handle restarts, log rotation, and resource limits.
Consider running inside a container with a read-only filesystem and no extra capabilities.
Monitor and audit
Enable access logging on your reverse proxy to track all requests to the
/mcpendpoint.Monitor for unusual traffic patterns — the MCP server performs privileged operations (provisioning, power actions, DNS changes) that should be auditable.
Set up alerts for failed or unexpected requests.
Development
# Watch mode (recompiles on changes)
npm run dev
# Then run the server in another terminal
node build/index.js --api-token your-tokenLicense
MIT
Available Tools
33 toolschange_server_ipmi_passwordChange Server IPMI PasswordB
Change the IPMI password of a server. Must be 10-16 characters with at least one number.
| Name | Required | Description | Default |
|---|---|---|---|
| password | Yes | New IPMI password (10-16 chars, at least one number) | |
| serverName | Yes | Server name, e.g. DP-12345 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Lacks annotations, and the description only states the basic action. It does not disclose potential side effects (e.g., server downtime, reboot), required permissions, or confirmation steps, leaving the agent uninformed about behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, no unnecessary words. The first sentence states the purpose, but the second simply repeats schema constraints. Could be slightly more structured, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and no annotations, the description is minimal. It omits details like expected result (e.g., success message), error conditions, or post-action verification steps, leaving the agent with incomplete information.
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 both parameters have descriptions in the schema. The description adds no new meaning beyond what the schema provides, 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 'Change the IPMI password of a server', using a specific verb and resource. It distinguishes itself from sibling tools like configure_server_links or perform_server_power_action, which are 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, nor any context about prerequisites or situations where it should not be used. The only constraint mentioned (password length and character requirements) is already present in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_server_linksConfigure Server LinksA
Enable or disable link aggregation (LAG) on a server. Returns a taskId to track progress.
| Name | Required | Description | Default |
|---|---|---|---|
| serverName | Yes | Server name, e.g. DP-12345 | |
| linkAggregation | Yes | Enable (true) or disable (false) link aggregation |
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 that the operation returns a taskId for tracking, implying async behavior, but does not mention side effects, required permissions, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose, and contains no filler. 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 tool's simplicity (2 required params, no output schema), the description is complete in explaining what it does and what it returns. It lacks details on error handling or polling, but that is acceptable for such tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description repeats the schema intent without adding extra meaning, 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 action (enable/disable link aggregation) and the resource (server). It uses specific verbs and resource, distinguishing it from sibling tools like set_server_boot_device or set_server_alias.
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 purpose is clear but lacks context about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_post_install_scriptCreate Post-Install ScriptA
Create a new post-install script. Scripts must be plain text (no binaries), up to 10 MB, with a 30-minute execution timeout.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Script name | |
| content | Yes | Script content as plain text | |
| isAutoSelected | No | Auto-run on installations via account manager or support |
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 mentions constraints (plain text, 10 MB limit, 30-minute timeout) but does not describe side effects, idempotency, naming conflicts, or return values, leaving gaps 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?
Two concise sentences front-loaded with the main purpose, followed by key constraints. No wasted words; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is fairly complete for a simple creation tool with 3 parameters and no output schema. It covers constraints on content but lacks details on what the tool returns, permissions needed, or how the script is used post-creation. Still, it provides adequate context for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all 3 parameters. The description adds value by specifying that content must be plain text (already in schema) and adding size (10 MB) and timeout (30 min) constraints not present in the schema, clarifying proper 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 clearly states 'Create a new post-install script', which is a specific verb and resource. It distinguishes from sibling tools like delete, list, update by implying creation. The constraints (plain text, size, timeout) further clarify the scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. While the name and sibling list imply it's for creation, no guidance is given on prerequisites, when not to use it, or how it compares to update_post_install_script.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_support_requestCreate Support RequestB
Open a new support ticket.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Message body for the support request | |
| servers | No | Server names related to the request, e.g. ['DP-12345'] | |
| sources | No | Network issues only: source locations | |
| subject | Yes | Subject category of the support request | |
| priority | Yes | Priority level | |
| destinations | No | Network issues only: destination locations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavioral traits. Only states 'Open a new support ticket' without details on idempotency, side effects, auth requirements, or limitations (e.g., rate limits, duplicate handling).
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 extraneous words. Efficiently states 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?
Despite 6 parameters (3 required) and no output schema, the description offers no example usage, return value hints, or validation behavior. Incomplete for a tool of this 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 100% (all 6 parameters have descriptions). The tool description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Open a new support ticket' uses a specific verb ('Open') and resource ('support ticket'), clearly indicating creation of a new request. It distinguishes from sibling tools like 'support_request_reply' and 'list_support_requests'.
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. Does not exclude scenarios (e.g., existing ticket creation) or mention related tools like 'support_request_reply' for follow-ups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_post_install_scriptDelete Post-Install ScriptA
Delete a post-install script by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Post-install script ID |
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 'Delete', which implies destruction, but does not clarify if the action is irreversible, any side effects, or confirmation of success. For a delete operation, 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 a single sentence that is concise and front-loaded with the essential action. Every word earns its place, with no superfluous 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 low complexity (one parameter, no output schema, no annotations), the description is adequate but lacks explicit mention of return behavior or prerequisites. An agent might wonder if deletion succeeds or if the script must exist. It meets minimal 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% (parameter 'id' is described as 'Post-install script ID'). The description adds no additional meaning beyond the schema, meeting the baseline for high coverage. No extra details like format or source of the ID 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 clearly states the verb 'Delete' and the resource 'post-install script' with the specific identifier 'by its ID'. It is unambiguous and distinguishes from sibling tools like 'create_post_install_script' and 'list_post_install_scripts'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool or mention alternatives. It implies the need for an ID, but no context on prerequisites (e.g., script must exist) or when to choose delete over update. However, the purpose is straightforward and sibling names are clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_accountGet AccountA
Get account information including name, email, hostname template, and creation date.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the burden. It only states it retrieves information without mentioning permissions, side effects, or user scope (e.g., current account). 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?
Single sentence, no redundant words. Front-loads purpose and key output fields.
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 0-parameter tool, the description covers the purpose and output fields. Could be slightly more explicit about scope (e.g., current account), but it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters (100% coverage), but the description adds value by listing output fields (name, email, hostname template, creation date) which compensates for the missing output 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 'Get account information' with specific fields (name, email, hostname template, creation date), distinguishing it from sibling tools focused on servers, invoices, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving account info but provides no explicit when-to-use or alternative guidance. Given its unique purpose among siblings, this is adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_error_codesGet Error CodesA
List all possible API error codes returned by the DataPacket API.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description implies read-only behavior. For a simple listing tool, this is sufficient transparency; no contradictory or missing critical behavioral info.
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 that is front-loaded and concise, containing 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 (no params, no output schema), the description fully covers its purpose and scope without omissions.
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 baseline 4 applies. Description does not need to add parameter 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?
Description clearly states the tool lists all possible API error codes from the DataPacket API, using specific verb 'list' and resource 'error codes', and distinguishes from siblings as no other tool does this.
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 or alternatives, but context implies it's the sole tool for listing error codes. Score 3 for implied usage without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invoiceGet InvoiceA
Get details of a single invoice by its invoice number.
| Name | Required | Description | Default |
|---|---|---|---|
| invoiceNumber | Yes | Invoice number, e.g. DP000123 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits beyond the basic function. It omits information on required permissions, rate limits, or side effects, leaving the agent uninformed about operational 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, concise sentence that conveys the purpose without superfluous words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one parameter and no output schema, the description adequately covers the necessary information. However, it could optionally mention edge cases like 'invoice not found' to improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides a description and example for the only parameter, so the description adds no additional meaning. With 100% schema coverage, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('get details'), the resource ('a single invoice'), and the unique identifier ('by its invoice number'). It effectively distinguishes from sibling tools like list_invoices, which retrieves multiple invoices.
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 you have a specific invoice number and need its details, contrasting with list_invoices for multiple invoices. However, it lacks explicit guidance on when not to use or mention of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reverse_dns_recordGet Reverse DNS RecordA
Get the reverse DNS (PTR) record for a given IPv4 address.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IPv4 address to look up |
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 indicates a read operation ('Get') but does not explicitly state it is non-destructive, disclose possible results (e.g., null if not found), or mention any prerequisites. Basic transparency is present 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?
Single sentence, no wasted words. Front-loaded with the action and resource.
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, no output schema), the description is sufficient for basic understanding. However, it could be improved by specifying return format (e.g., string or null) to aid the 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?
Schema coverage is 100%, so baseline is 3. The description adds 'IPv4 address' which matches the schema's description. No 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 the action ('Get'), the resource ('reverse DNS (PTR) record'), and the condition ('for a given IPv4 address'). It is specific and distinguishes from siblings like 'set_reverse_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?
The purpose is clear and the context implies it is for reading PTR records. However, no explicit when/when-not or alternatives are provided, but for a simple lookup, it is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_serverGet ServerA
Get detailed information about a single server by name, alias, IP, or IPMI IP.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No | One of the server's IP addresses | |
| name | No | Server name, e.g. DP-12345 | |
| alias | No | Server alias | |
| ipmiIp | No | The IPMI IP address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description fails to disclose behavioral details such as idempotency, authentication requirements, or what constitutes 'detailed information', leaving significant gaps.
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 unnecessary words, efficiently conveying the tool's core function.
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 retrieval tool, the description is adequate, though it could mention that no parameters are required and clarify what 'detailed information' includes, especially given the lack of an 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?
All parameters are fully described in the input schema (100% coverage), so the description adds little beyond restating the parameter names. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves detailed information about a single server, specifying the search criteria (name, alias, IP, IPMI IP), which distinguishes it from '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?
The description does not provide explicit guidance on when to use this tool versus alternatives like 'list_servers', but the purpose is clear enough that an agent can infer it is for single-server lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_server_links_configuration_taskGet Server Links Configuration TaskA
Check the status of a link aggregation configuration task by its taskId.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | Task ID returned by configure_server_links |
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 'check the status', which implies read-only, but does not describe potential states, response format, or any side effects. More detail 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 a single clear sentence with no wasted words. It is front-loaded with the action and resource.
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, no output schema), the description is fairly complete. However, it could mention that the operation is read-only and what the response might contain, especially since annotations are absent.
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 a description for taskId. The description adds no extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Check the status of a link aggregation configuration task by its taskId', using a specific verb and resource, and it distinguishes from siblings like configure_server_links which creates the task.
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 after calling configure_server_links by noting the taskId is returned by that tool. It provides context but does not explicitly state when not to use it or compare to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subscriptionGet SubscriptionB
Get details of a single subscription by its name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Unique subscription name/identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It implies a read operation but does not confirm idempotency, potential errors (e.g., not found), or any side effects. Acceptable for a simple retrieval but could be more 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?
Single sentence, no wasted words. Front-loaded with the core action and resource.
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 read tool with one parameter and no output schema. However, missing guidance on error cases or return format, which could be helpful. No output schema so description doesn't need to cover that, but behavioral context is minimal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'name', which has a clear description. Tool description adds no additional meaning beyond the schema. 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 retrieves details of a single subscription by name, using specific verb 'Get' and resource 'subscription'. It distinguishes from sibling 'list_subscriptions' which lists all subscriptions.
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 'list_subscriptions'. Does not state prerequisites (e.g., subscription must exist) 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.
get_support_requestGet Support RequestA
Get details of a single support request by its ID, including all posts/messages.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Support request ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It implies a safe read operation but does not explicitly state that it is non-destructive or require authentication. 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, 14 words, front-loaded with key information. No unnecessary 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 the tool's simplicity (one param, no output schema), the description covers the core functionality. Could mention error behavior (e.g., if ID not found) but not essential.
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 one parameter described as 'Support request ID'. The description adds 'by its ID' which is redundant. No additional semantic value beyond 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 retrieves a single support request by ID including all posts/messages. It distinguishes from siblings like list_support_requests (list multiple) and support_request_reply (reply).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use versus alternatives. No exclusions, prerequisites, or context provided. The tool is straightforward but lacks usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trafficGet TrafficB
Get traffic statistics over a specified time period, either aggregated or broken down by server.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | End date in ISO 8601 format | |
| from | Yes | Start date in ISO 8601 format | |
| filter | No | Optional server filters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description implies a read operation ('Get') but provides no specifics on permissions, rate limits, data freshness, or error handling. The behavioral profile 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 a single, efficient sentence that front-loads the core purpose. No wasted words, perfectly sized for quick understanding.
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 three parameters including a complex nested filter object, yet the description provides no details on using the filter to achieve aggregation vs breakdown, nor does it describe the output. Without an output schema, 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?
Schema coverage is 100% with descriptions for all three parameters. The description adds some context ('aggregated or broken down by server') but does not explicitly explain how the filter parameter or from/to map to this behavior. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get'), resource ('traffic statistics'), and scope ('over a specified time period, either aggregated or broken down by server'). It uniquely identifies the tool's purpose among siblings, none of which handle traffic statistics.
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 or when not to use it. Although no sibling tool directly competes, the description lacks any usage context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_invoicesList InvoicesA
List invoices with optional pagination and filters (invoice number, currency, payment status).
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Optional filters | |
| pageSize | No | Results per page (max 50). Default: 50 | |
| pageIndex | No | Page index (0-based). Default: 0 |
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 indicates a read operation but does not mention potential side effects, rate limits, authentication requirements, or data freshness. The description is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no wasted words. It front-loads the action and features.
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 brief for a tool with nested filter objects and pagination parameters. It does not explain filter logic (AND/OR), pagination defaults, or return format. However, the output schema is absent, and the parameters have descriptions in the schema, so some context is covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents parameters adequately. The description merely restates 'optional pagination and filters' without adding new meaning or examples 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 it lists invoices with optional pagination and filters, distinguishing it from get_invoice which retrieves a single invoice. The verb 'list' and resource 'invoices' are 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?
The description implies usage for listing invoices with filters, but does not explicitly state when not to use it or alternative tools like get_invoice for single invoice retrieval. However, the context of sibling tools makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_locationsList LocationsA
List all available data center locations.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 action, with no disclosure of auth requirements, rate limits, or potential side effects. For a simple read operation, this is minimally acceptable 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?
The description is a single, clear sentence. It is appropriately sized and front-loaded, with 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 no parameters, no output schema, and no annotations, the description is minimal. For a simple enumeration, it might be sufficient, but it lacks any context about the response format or potential 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?
There are zero parameters, and the schema coverage is 100%. Per guidelines, a baseline of 4 applies. The description does not add extra parameter meaning but also does not need to.
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 (data center locations). It distinguishes from sibling tools that list other entities like servers or invoices.
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. However, the purpose is self-evident given the resource type, and there are no parameters to complicate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_operating_systemsList Operating SystemsA
List all available operating systems that can be installed on provisioned servers. Use the osImageId when calling provision_server.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. The description only states a simple read operation without mentioning any potential side effects, authentication requirements, or rate limits. It does not contradict annotations (none exist), but the behavioral context 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 short sentences. The first sentence states the purpose, and the second provides a usage hint. No extraneous content, 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 simple tool with no parameters, no output schema, and no annotations, the description adequately covers what the tool does and how to use the output. It could mention that the list is subject to availability, but is otherwise sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema description coverage. The description does not need to add parameter info. It appropriately omits any parameter details since there are none, meeting the baseline for no-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and resource 'operating systems', and specifies the context 'available...that can be installed on provisioned servers'. It is distinct from sibling tools like provision_server, but does not explicitly differentiate itself.
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 includes a hint to use the osImageId when calling provision_server, which provides some guidance on using the output. However, it lacks explicit when-to-use or when-not-to-use instructions, and there are no alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_post_install_scriptsList Post-Install ScriptsB
List post-install scripts with optional pagination and name filter.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Optional filters | |
| pageSize | No | Results per page (max 50). Default: 50 | |
| pageIndex | No | Page index (0-based). Default: 0 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It implies a read-only list operation but does not explicitly state it is safe, non-destructive, or any authentication 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?
Single concise sentence that front-loads the action and resource, with 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?
Adequate for a simple list tool, but lacks description of the return value format or pagination behavior, which would be helpful given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description only reiterates optional pagination and name filter without adding new meaning or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'List' and resource 'post-install scripts', and mentions optional pagination and name filter, distinguishing it from create/delete/update 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 explicit guidance on when to use this tool versus alternatives like create_post_install_script or delete_post_install_script. The description only states what it does, not usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_provisioning_configurationsList Provisioning ConfigurationsA
Find available server configurations matching your requirements. Filter by region, CPU, memory, storage, GPU, price, and more. Results are sorted by price (lowest first). Use the configurationId from results when calling provision_server.
| Name | Required | Description | Default |
|---|---|---|---|
| memory | No | Filter by RAM in GB | |
| cpuCores | No | Filter by CPU core count | |
| cpuCount | No | Filter by number of CPUs | |
| gpuCount | No | Filter by number of GPUs | |
| gpuMemory | No | Filter by GPU VRAM in GB | |
| region_in | No | Filter by region | |
| cpuName_in | No | Filter by CPU model name | |
| cpuThreads | No | Filter by CPU thread count | |
| stockCount | No | Filter by available stock | |
| cpuBenchmarkScore | No | Filter by CPU benchmark score | |
| dailyHwPriceAmount | No | Filter by daily hardware price | |
| storageRequirements | No | Storage filter requirements | |
| uplinkTotalCapacity | No | Filter by total uplink capacity in Gbps | |
| monthlyHwPriceAmount | No | Filter by monthly hardware price | |
| locationIdentifier_in | No | Filter by location identifier (e.g. AMSTERDAM, FRANKFURT) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that results are sorted by price (lowest first) and that it is a read-only listing operation. No destructive behavior is implied. It could mention pagination or limits, but overall is 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?
Two concise sentences with no wasted words. The key action and usage instruction are front-loaded. Every sentence contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 15 parameters and no output schema, the description lacks details on the return structure (e.g., fields in each configuration) and pagination. It mentions configurationId but does not fully prepare an agent for handling the response. This is a noticeable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all parameters have descriptions). The description adds value by summarizing the filter categories and highlighting key behavior (sorting, output usage). This goes beyond simply restating schema fields.
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 lists available server configurations with filtering by multiple criteria. It mentions specific resources (region, CPU, memory, etc.) and the sorting order. It distinguishes itself from siblings by being the only provisioning configuration listing tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells users to use the configurationId from results when calling provision_server. It provides clear context for filtering, though it does not specify when not to use this tool or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_serversList ServersB
List servers in your account with optional pagination and filters (name, location, power status, IP, tags, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Optional filters | |
| pageSize | No | Results per page (max 50). Default: 50 | |
| pageIndex | No | Page index (0-based). Default: 0 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description does not disclose behavioral traits like authentication, rate limits, or that it's read-only. Only states it lists with filters.
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, no unnecessary words. Could be slightly more informative but efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a list tool with well-documented schema, but lacks output schema and behavioral context, leaving some 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 already covers all parameters with descriptions (100% coverage). Description adds minor context on filter types but not beyond 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 'List servers in your account' with specific verb and resource, and distinguishes from siblings like 'get_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 on when to use vs alternatives; lacks any when-not-to-use or comparison with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_subscriptionsList SubscriptionsA
List subscriptions with optional pagination and filters (name, currency, type).
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Optional filters | |
| pageSize | No | Results per page (max 50). Default: 50 | |
| pageIndex | No | Page index (0-based). Default: 0 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully cover behavioral traits. It implies a read-only operation ('list') but does not explicitly state that it is non-destructive or mention any authentication 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 a single, front-loaded sentence that efficiently conveys the purpose and key features with 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?
For a list tool with pagination and filters, the description adequately covers the functionality. Minor gaps exist, such as the lack of explicit return value description (though likely an array) and default sorting behavior, but these are not critical given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 3 parameters, so the description adds minimal new information. It summarizes the filter options (name, currency, type) but does not provide details beyond what the schema already offers.
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 'subscriptions', and optional features like pagination and filters. It effectively distinguishes itself from sibling tools such as 'get_subscription' by implying a bulk listing 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 mentions pagination and filters, providing context for when to use the tool. However, it does not explicitly state when not to use it or suggest alternatives like 'get_subscription' for single subscriptions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_support_requestsList Support RequestsC
List support requests with optional pagination and filters (status, category).
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Optional filters | |
| pageSize | No | Results per page (max 50). Default: 50 | |
| pageIndex | No | Page index (0-based). Default: 0 |
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 fails to mention that the operation is read-only, lacks details on pagination limits beyond schema, and does not note any side effects 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 a single sentence with no redundant words. However, it could be more precise by matching the schema's parameter names exactly.
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 lacks an output schema, so the description should explain the response format, but it does not. Additionally, no mention of sorting or ordering is provided, leaving the agent with incomplete information for a listing endpoint.
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?
Despite 100% schema coverage, the description only rephrases filter options ('status' and 'category') without adding new meaning. The schema already documents parameters thoroughly, and the description's use of 'category' instead of 'categories_in' is slightly misleading.
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 support requests with optional pagination and filters, which distinguishes it from single-request retrieval tools like 'get_support_request'. However, the filter description uses 'category' while the schema uses 'categories_in', causing slight imprecision.
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 'get_support_request' for a single request or 'support_request_reply' for replying. The agent is left to infer usage context without explicit when-not-to-use advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
perform_server_power_actionPerform Server Power ActionA
Perform an IPMI power action on a server (power on, off, reset, soft shutdown, or power cycle). This is asynchronous — success is not guaranteed.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Power action to perform | |
| serverName | Yes | Server name, e.g. DP-12345 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the action is asynchronous and success is not guaranteed, but does not mention side effects, prerequisites (e.g., server state), or potential errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words; the purpose is front-loaded and the critical caveat about asynchronicity is provided immediately.
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 (2 params, no nested objects, no output schema, no annotations), the description adequately covers the purpose, actions, and a behavioral note. It could mention return value expectations, but this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description adds the context that the action is an IPMI power action and lists the same enum values, offering minimal 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 uses a specific verb ('Perform') and resource ('IPMI power action on a server'), explicitly listing all five possible actions (power on, off, reset, soft shutdown, power cycle), distinguishing it from sibling tools like set_server_boot_device.
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 power actions and warns about asynchronous nature and lack of guaranteed success, but does not provide explicit guidance on when to use this tool versus alternatives like set_server_boot_device or provision_server.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
provision_serverProvision ServerA
Provision a new server with the selected configuration. Requires a configurationId from list_provisioning_configurations, a billing period, an OS image ID from list_operating_systems, and optional SSH key names. The server will initially be in PROVISIONING or WAITING status.
| Name | Required | Description | Default |
|---|---|---|---|
| osImageId | Yes | OS image ID from list_operating_systems | |
| sshKeyNames | No | SSH key names from DataPacket client panel Security settings | |
| billingPeriod | Yes | Billing period (DAILY requires $100 minimum balance) | |
| configurationId | Yes | Configuration ID from list_provisioning_configurations | |
| postInstallScriptName | No | Name of a post-install script to run after provisioning | |
| disableLinkAggregation | No | Disable link aggregation (LAG) |
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 initial server status (PROVISIONING or WAITING) and hints at billing constraints. However, it does not cover authentication requirements, potential errors, or full side effects (e.g., cost implications).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the purpose and then detail requirements. Every phrase is necessary; no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fails to specify return values (e.g., server ID or status). Given 6 parameters and no annotations, it should cover more behavioral context, such as async nature or error conditions. This is a significant gap for a provisioning 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%, so baseline is 3. The description adds value by referencing sibling tools for configurationId and osImageId, and explaining the billing enum constraint ($100 minimum balance for DAILY). This goes beyond the schema's own 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 'Provision a new server with the selected configuration,' specifying a concrete verb and resource. It distinguishes this tool from siblings, which are mostly CRUD or actions on existing 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?
The description explicitly lists required inputs (configurationId, billingPeriod, osImageId) and references sibling tools for obtaining them. It does not explicitly state when not to use this tool or mention alternatives, but the prerequisites provide clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_default_traffic_planSet Default Traffic PlanA
Set the default server-scoped traffic plan used when provisioning new servers.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Traffic plan type | |
| bandwidth | Yes | Bandwidth limit in Gbps. Must be 0.1, 0.2, ..., 1 or an integer between 2 and 40. |
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 lacks behavioral disclosure such as whether the change is immediate, affects existing servers, requires specific permissions, or has any side effects. 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 a single, well-structured sentence that efficiently communicates the tool's purpose without 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?
Given the tool's simplicity (2 parameters, no output schema), the description is largely complete. However, it could be improved by mentioning that it overrides any previous default or clarifying the scope of 'server-scoped'. Still, it provides essential context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters with descriptions and constraints (100% coverage). The description does not add any additional meaning beyond what the schema provides, meeting the baseline but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Set', the resource 'default server-scoped traffic plan', and the context 'used when provisioning new servers'. It is specific and distinguishes from sibling tools, none of which appear to set traffic plans.
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 context by stating it is used when provisioning new servers, but does not explicitly state when to use this tool vs alternatives or when not to use it. No exclusions or alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_reverse_dns_recordSet Reverse DNS RecordA
Set or delete a reverse DNS (PTR) record for a given IPv4 address. Set hostname to null to delete.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IPv4 address | |
| hostname | Yes | Hostname for the PTR record (must end with a dot), or null to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behavior: setting hostname to null deletes the record. With no annotations, the description carries full burden; it adequately covers the core nuance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, concise and front-loaded. First sentence states action, second adds crucial detail. No extraneous 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?
Adequate for a simple tool with 2 parameters. No output schema, and description omits return value information, which is a gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds 'Set hostname to null to delete,' reinforcing delete behavior but not adding significant new meaning beyond 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?
Clear verb ('Set or delete'), resource ('reverse DNS PTR record'), and scope ('for a given IPv4 address'). Distinguishes from sibling 'get_reverse_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?
Explicitly states the two operations (set or delete) and implies context. No explicit when-not or alternative mention, but sibling separation is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_server_aliasSet Server AliasB
Set a custom alias for a server. Set alias to null to remove it.
| Name | Required | Description | Default |
|---|---|---|---|
| alias | Yes | New alias, or null to remove | |
| serverName | Yes | Server name, e.g. DP-12345 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as side effects, permissions, or limits. Given the absence of annotations, the description should have covered these aspects but failed to do so.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the purpose and provide specific usage for null. Every sentence earns its place without 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 setter tool with two parameters, the description covers the basic functionality. However, it lacks usage context, behavioral info, and any mention of error conditions, which is noticeable given no annotations or output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds minimal value beyond the schema (the null usage is already in the schema parameter description). No further clarification 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?
The description clearly states the verb 'Set' and the resource 'custom alias for a server', including the specific use of null to remove the alias. It distinguishes itself from sibling tools like set_server_tag or set_server_primary_ip.
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. The description does not mention any context or prerequisites, leaving the agent without direction for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_server_boot_deviceSet Server Boot DeviceC
Set the boot device for a server via IPMI.
| Name | Required | Description | Default |
|---|---|---|---|
| bootDevice | Yes | Boot device type | |
| serverName | Yes | Server name, e.g. DP-12345 |
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 fails to disclose whether the change takes effect immediately or on next boot, whether a reboot is triggered, or what permissions are required. The mention of 'via IPMI' hints at system-level impact but lacks detail.
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, concise and to the point. It could benefit from slightly more structure to include context, but it is not verbose and is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 required params, no output schema), the description is incomplete. It lacks context about the IPMI protocol implications, server state requirements, or any side effects. A boot device change is a significant action and deserves more explanation.
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 descriptions for both parameters. The description adds no extra meaning beyond the schema. Since coverage is high, 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 clearly states the action ('Set') and the resource ('boot device for a server via IPMI'). It is specific and distinguishes from sibling tools, as none other mention boot device. However, it could be more explicit about the effect (e.g., 'sets which device the server will boot from').
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. There is no mention of prerequisites (e.g., server status) or when not to use it. The description only states what the tool does, not when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_server_primary_ipSet Server Primary IPB
Set the primary IP address for a server.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IP address to set as primary | |
| serverName | Yes | Server name, e.g. DP-12345 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior, but it does not explain what happens to the previous primary IP, whether the operation is reversible, or any side effects. This is insufficient for an AI agent to understand the tool's impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. However, it is slightly too terse and could benefit from including key behavioral details 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 lack of output schema and annotations, the description fails to provide essential context, such as the response format, error conditions, or post-operation state. This leaves the agent with insufficient information.
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 descriptions for both parameters (`ip` and `serverName`). The description adds no additional meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set the primary IP address') and the resource ('a server'). It is specific and distinct from sibling tools like 'set_server_alias' or 'perform_server_power_action', which focus on different attributes.
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 when a server already has a primary IP set or if the IP must be already assigned. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_server_tagSet Server TagA
Set or delete a single tag on a server. Omit value or set to null to delete the tag.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Tag key (alphanumeric, hyphens, underscores, periods; max 100 chars) | |
| value | No | Tag value (max 150 chars). Null or omit to delete. | |
| serverName | Yes | Server name, e.g. DP-12345 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It describes the action (set/delete) but lacks disclosure of permissions, rate limits, failure behavior, or other side effects. The deletion semantics (omit/null) are explained, but overall transparency is modest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no wasted words. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple set/delete tool with full schema coverage and no nested objects, the description is fairly complete. It could mention the return value, but the tool's simplicity keeps the gap small. Adequate for its 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 description coverage is 100%, so the description only adds minimal framing. The schema already documents that 'value' can be null/omitted for deletion. The description does not add new 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 the tool sets or deletes a single tag on a server, using specific verbs and resource. It distinguishes from sibling tools like set_server_tags which likely handles bulk 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?
The description implicitly tells when to use it (setting or deleting a single tag) but does not explicitly mention when not to use it or provide alternatives. The sibling 'set_server_tags' suggests bulk operations, but no direct guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_server_tagsSet Server TagsA
Replace all tags on a server. Tags not provided will be deleted. Max 10 tags.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | Yes | Array of key-value tag pairs | |
| serverName | Yes | Server name, e.g. DP-12345 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full weight. It explicitly discloses destructive behavior (deleting unprovided tags) and a capacity limit (Max 10 tags). However, it does not mention synchronous/asynchronous execution or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences that convey the essential information without any redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two parameters and no output schema, the description adequately covers purpose, behavior, and constraints. However, it omits what the response or return value looks like.
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 covers both parameters (100% coverage), but the description adds value by specifying the 'Max 10 tags' constraint not present in the schema and clarifying the 'replace all' semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Replace' with the resource 'all tags on a server', clearly indicating that this tool overwrites the entire tag set. It distinguishes itself from the sibling 'set_server_tag' by implying the latter may handle individual tags.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the behavior: replacing all tags and deleting unprovided ones. This implies when to use (full reset) vs. alternatives (e.g., set_server_tag for partial updates), but does not explicitly state 'when not to use'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
support_request_replyReply to Support RequestB
Add a reply message to an existing support request.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Support request ID | |
| message | Yes | Reply message text |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the action without disclosing behavioral traits such as required permissions, idempotency, rate limits, or side effects like notifications. 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?
The description is a single concise sentence with no wasted words. However, it could add a brief hint about prerequisites (e.g., the support request must exist).
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 2 parameters and no output schema, the description covers the basic action but lacks context about constraints (e.g., request must be open, user permissions). Incomplete for an agent to safely invoke.
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% (both parameters have descriptions). The description adds no additional meaning beyond the schema, so it meets the baseline but does not improve understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Add), the resource (reply message), and the target (existing support request). It distinguishes itself from sibling tools like create_support_request (creates new) and get_support_request (retrieves).
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 are provided, but the purpose implies usage for replying to an existing support request. Lacks exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_post_install_scriptUpdate Post-Install ScriptB
Update an existing post-install script by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Post-install script ID | |
| name | No | New script name | |
| content | No | New script content | |
| isAutoSelected | No | Auto-run on installations via account manager or support |
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 'Update', which implies mutation, but does not mention side effects, permissions, or whether it overwrites existing fields. 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 a single sentence that is concise and front-loaded with the key action. However, it might benefit from a tiny bit 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?
Given that this is a mutation tool with 4 parameters, no output schema, and no annotations, the description should provide more behavioral context and parameter usage details. The current description is minimal and leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for each parameter. The description adds no extra meaning beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Update' and resource 'existing post-install script', and specifies the method 'by its ID', clearly distinguishing it from sibling tools like create_post_install_script and delete_post_install_script.
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 (to update an existing script) but does not explicitly state when not to use it or provide alternatives. No guidance on prerequisites or context is given.
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.
33 tool updates
v1.0.0- First observed
change_server_ipmi_password - First observed
configure_server_links - First observed
create_post_install_script - First observed
create_support_request - First observed
delete_post_install_script - First observed
get_account - First observed
get_error_codes - First observed
get_invoice - First observed
get_reverse_dns_record - First observed
get_server - First observed
get_server_links_configuration_task - First observed
get_subscription - First observed
get_support_request - First observed
get_traffic - First observed
list_invoices - First observed
list_locations - First observed
list_operating_systems - First observed
list_post_install_scripts - First observed
list_provisioning_configurations - First observed
list_servers - First observed
list_subscriptions - First observed
list_support_requests - First observed
perform_server_power_action - First observed
provision_server - First observed
set_default_traffic_plan - First observed
set_reverse_dns_record - First observed
set_server_alias - First observed
set_server_boot_device - First observed
set_server_primary_ip - First observed
set_server_tag - First observed
set_server_tags - First observed
support_request_reply - First observed
update_post_install_script
TDQS
Each tool targets a distinct resource and action, with clear separation across server management, networking, billing, support, scripts, and utilities. No overlapping purposes.
All tools follow a consistent verb_noun pattern in snake_case (e.g., create_post_install_script, set_server_alias), with predictable prefixes like list_, get_, set_, delete_, perform_.
33 tools is slightly on the high side but justifiable for a comprehensive server management API covering provisioning, networking, billing, support, and admin tasks. Each tool serves a clear purpose with minimal redundancy.
Missing critical server lifecycle operations like delete_server and update_server_configuration. Also lacks SSH key management and server health/event logs. Agents may hit dead ends when needing to decommission or modify servers.
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
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
MCP server for Hostinger API
Related MCP Servers
- AlicenseCqualityDmaintenanceA Model Context Protocol server for the Hetzner Cloud API that enables natural language management of cloud infrastructure. Users can list, create, and modify servers, networks, volumes, and load balancers through MCP-compatible clients.6717MIT
- AlicenseNot gradedqualityCmaintenanceA powerful MCP server for making HTTP requests, GraphQL queries, and TCP/Telnet connections from AI assistants.7MIT
- AlicenseBqualityDmaintenanceMCP server that integrates with Coolify to let AI assistants manage Coolify instances via a clean toolkit wrapping the official REST API.351696MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for interacting with QUADS infrastructure systems via API, enabling resource management and automation through LLM applications.MIT
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/hjpotter92/datapacket-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server