Skip to main content
Glama

MCPDactyl

MCP server for the Pterodactyl Panel, versions 1.x and 2.0. Manage servers, files, databases and more across multiple panels from one MCP server. Runs over stdio and Streamable HTTP, locally, in Docker, or as a remote server on Cloudflare Workers.

Panels are not baked into the install config — you add them at runtime and switch between them. MCPDactyl detects whether a panel runs 1.x or 2.0 and offers the tools that fit it.

Status: v0.1. The full Client API and Application (admin) API for 1.x and 2.0, plus the 2.0 Admin API (~230 tools on a 2.0 panel). 2.0 support follows the 2.0 beta documentation and has not been run against a live 2.0 panel yet; 1.x is the better-exercised path. See ARCHITECTURE.md for the design.

Install

Needs Node 20+ and pnpm.

git clone https://github.com/MrMirhan/mcpdactyl.git
cd mcpdactyl
pnpm install
pnpm build

Related MCP server: Pterodactyl MCP Server

Run (stdio)

node dist/index.js

Register it with an MCP client, using the absolute path of your clone. Claude Code:

claude mcp add mcpdactyl -- node /path/to/mcpdactyl/dist/index.js

Any client that reads an mcpServers config (Claude Desktop, Cursor, …):

{
  "mcpServers": {
    "mcpdactyl": { "command": "node", "args": ["/path/to/mcpdactyl/dist/index.js"] }
  }
}

Then add a panel from the chat with panel_add (see Panels).

Run (Streamable HTTP)

node dist/index.js --http --port 3000 --host 127.0.0.1
# endpoint: http://127.0.0.1:3000/mcp  (POST/GET/DELETE)

Each MCP session gets its own active-panel state; saved panels are shared via the config file. Set MCPDACTYL_HTTP_TOKEN to require Authorization: Bearer <token> on every request. Bind to a public host only behind auth/TLS — the panel registry is shared across clients (or use MCPDACTYL_STATELESS=1 so every call must carry inline creds).

A caller that acts for different people can pin each session to one panel instead: send x-ptero-base-url and x-ptero-client-key and/or x-ptero-application-key headers on the initialize request. That session talks to that panel only; nothing is read from or written to the shared store, and no key appears in a tool argument. With MCPDACTYL_SEALED=1 the tools also stop accepting baseUrl/clientKey/applicationKey arguments and panel_add, panel_remove and panel_use are not registered.

Docker (HTTP)

docker build -t mcpdactyl .
docker run -p 3000:3000 -e MCPDACTYL_HTTP_TOKEN=your-secret mcpdactyl

The image is a self-contained bundle (no node_modules). Seed panels with -e MCPDACTYL_PANELS='[{"name":"prod","baseUrl":"https://panel","clientKey":"ptlc_…"}]' or mount a config dir at ~/.config/mcpdactyl. Always set MCPDACTYL_HTTP_TOKEN when exposing the port. The image serves the client tools by default; add -e MCPDACTYL_TOOLS=all for the admin tools too.

Cloudflare Workers (remote, free tier)

worker/index.ts runs MCPDactyl as a remote MCP server via the agents McpAgent on a Durable Object (per-session active panel) with Workers KV for the shared panel registry. The WebSocket console tool is omitted on Workers (ws is Node-only). All other tools are identical — they reuse the same pteroRequest and tool modules.

npx wrangler kv namespace create PANELS   # replace REPLACE_WITH_YOUR_KV_NAMESPACE_ID in wrangler.jsonc
npx wrangler deploy                        # needs a Cloudflare account (free plan is enough)

Endpoint: https://<worker>.workers.dev/mcp (Streamable HTTP). Choose the surface with the MCPDACTYL_TOOLS var (wrangler.jsonc ships with all); seed read-only panels with an MCPDACTYL_PANELS secret or let clients panel_add at runtime (persisted to KV).

Protect the public endpoint with a bearer token. Set MCPDACTYL_HTTP_TOKEN as a secret and every request must send Authorization: Bearer <token> — otherwise anyone who reaches the URL can use stored panel keys:

npx wrangler secret put MCPDACTYL_HTTP_TOKEN   # paste a long random token

Claude's built-in remote-MCP connector expects OAuth, so for a bearer connect through mcp-remote, which injects the header:

{ "mcpServers": { "mcpdactyl": {
  "command": "npx",
  "args": ["mcp-remote", "https://<worker>.workers.dev/mcp", "--header", "Authorization: Bearer <token>"]
}}}

pnpm cf:check validates the build without deploying; pnpm cf:dev runs it locally.

Free-tier fit: Workers 100k req/day, Durable Objects on the free plan (SQLite), KV 100k reads + 1k writes/day — ample for a personal proxy. CPU limit (10ms/invocation) is fine because the work is I/O-bound (fetch to the panel).

Panels

No URL or key in the MCP config. Manage panels via tools:

  • panel_add { name, baseUrl, clientKey?, applicationKey?, apiVersion?, makeDefault?, test? }

  • panel_list — keys masked

  • panel_use { name } — active panel for this session

  • panel_test { name? } — validate keys and re-detect the panel's API version

  • panel_remove { name }

Every panel-targeting tool also accepts panel (a saved name) or inline baseUrl + clientKey/applicationKey. Resolution order: inline > panel name > active > default.

Client API keys start with ptlc_, Application (admin) keys with ptla_. A tool fails clearly if the selected panel lacks the key type it needs.

Panel versions (1.x and 2.0)

Each panel's API version is detected the first time a version-bound tool needs it, from whether /api/admin/version exists (2.0) or not (1.x). With only an application key the check uses /api/application/tags. The answer is cached on the panel (detectedApiVersion); panel_test probes again, for a panel upgraded since. Pin it with apiVersion: "1" or "2" in panel_add (or in MCPDACTYL_PANELS) to skip detection.

The version decides what is offered and how a call is sent:

  • 1.x: nest tools (admin_nest_list, admin_nest_get) are listed. admin_egg_list without nest collects every egg through the nests.

  • 2.0: tag tools (admin_tag_list, admin_tag_get), admin_node_deployable and the whole Admin API (adminapi_*, 115 tools) are listed. admin_egg_list and admin_egg_get use the flat egg routes, and a nest id is mapped to its tag through legacy_nest_id.

  • Unknown (not detected yet): both small sets are listed and the Admin API is not.

The tool list follows the active panel and the client is sent tools/list_changed when it changes. A tool that needs one version also checks it when called, since a call can name another panel, and says which version the panel runs. On 2.0 a root administrator's client key also works where an application key is asked for.

Storage & env

  • Panels persist to ~/.config/mcpdactyl/panels.json (chmod 600).

  • MCPDACTYL_CONFIG_DIR — override the config directory.

  • MCPDACTYL_PANELS — JSON seed read at boot, never written to disk.

  • MCPDACTYL_STATELESS=1 — disable persistence; every call must carry inline creds.

  • MCPDACTYL_TRANSPORT=http|stdio, MCPDACTYL_HTTP_HOST, MCPDACTYL_HTTP_PORT, MCPDACTYL_HTTP_TOKEN — HTTP transport.

  • MCPDACTYL_SEALED=1 — hide the credential arguments and the panel-switching tools (see Run (Streamable HTTP)).

  • MCPDACTYL_TOOLS=client|admin|all — which API surface to expose (default client). Application tools need a ptla_ key (or, on 2.0, a root admin's ptlc_ key); the Admin API needs a root admin's ptlc_ key.

Tools

Panel: panel_add, panel_list, panel_use, panel_test, panel_remove.

Full Client API (all accept panel / inline creds):

  • Servers: server_list, server_get, server_resources, server_power, server_command, server_activity

  • Settings: server_startup_get, server_set_variable, server_rename, server_reinstall, server_docker_image

  • Console: server_console_tail (WebSocket, bounded capture window)

  • Files: files_list, files_read, files_write, files_rename, files_copy, files_mkdir, files_delete, files_compress, files_decompress, files_chmod, files_pull, files_download_url, files_upload_url

  • Databases: db_list, db_create, db_rotate_password, db_delete

  • Schedules: schedule_list, schedule_get, schedule_create, schedule_update, schedule_delete, schedule_execute, schedule_task_create, schedule_task_update, schedule_task_delete

  • Network: network_list, network_assign, network_set_primary, network_set_notes, network_delete

  • Backups: backup_list, backup_create, backup_get, backup_download_url, backup_restore, backup_toggle_lock, backup_delete

  • Subusers: subuser_list, subuser_get, subuser_create, subuser_update, subuser_delete, permissions_list, and subuser_set_files (only for panels running an SFTP-permissions addon; it is a route the stock panel does not have)

  • Account: account_get, account_activity, account_2fa_get, account_2fa_enable, account_2fa_disable, account_update_email, account_update_password, account_apikey_list, account_apikey_create, account_apikey_delete, account_sshkey_list, account_sshkey_create, account_sshkey_remove

Application API (admin, ptla_ key; opt-in via MCPDACTYL_TOOLS=admin or all):

  • Users: admin_user_list, admin_user_get, admin_user_get_external, admin_user_create, admin_user_update, admin_user_delete

  • Servers: admin_server_list, admin_server_get, admin_server_get_external, admin_server_create, admin_server_update_details, admin_server_update_build, admin_server_update_startup, admin_server_suspend, admin_server_unsuspend, admin_server_reinstall, admin_server_delete

  • Server databases: admin_server_db_list, admin_server_db_get, admin_server_db_create, admin_server_db_reset_password, admin_server_db_delete

  • Nodes: admin_node_list, admin_node_get, admin_node_deployable, admin_node_config, admin_node_create, admin_node_update, admin_node_delete, admin_node_alloc_list, admin_node_alloc_create, admin_node_alloc_delete

  • Locations: admin_location_list, admin_location_get, admin_location_create, admin_location_update, admin_location_delete

  • Nests & eggs: admin_nest_list, admin_nest_get (Pterodactyl 1.x only), admin_egg_list, admin_egg_get (pass nest on 1.x; omit it on 2.0)

  • Tags (Pterodactyl 2.0, replace nests): admin_tag_list, admin_tag_get

Admin API (Pterodactyl 2.0 only, a root administrator's ptlc_ key; MCPDACTYL_TOOLS=admin or all): one adminapi_* tool per operation of /api/admin: users, servers (mounts, transfer, rebuild, suspension, databases, backups), nodes (allocations, tags, utilization, deploy token), locations, mounts, eggs (variables, scripts, export, import, catalog), tags, settings, database hosts, API keys, extensions and the panel version. The tools are generated from the OpenAPI document of the 2.0 docs: node scripts/gen-admin-api.mjs [openapi-v2.json | URL] rewrites src/tools/admin/definitions.ts. Query filters such as filter[name] are arguments named filter_name. Uploads (adminapi_install_extension, adminapi_import_egg, adminapi_update_egg_from_import) take the file as base64, or the JSON text itself for an egg.

Develop

pnpm typecheck         # tsc --noEmit
pnpm typecheck:worker  # the same for the Cloudflare Worker entry
pnpm lint              # biome
pnpm test              # vitest: request client, panel registry, version detection, tools, Admin API
pnpm build             # tsup -> dist/index.js
pnpm smoke             # end-to-end stdio test, no real panel needed
pnpm smoke:http        # end-to-end Streamable HTTP test
pnpm cf:check          # Worker build dry-run

CI (.github/workflows/ci.yml) runs all of these. node scripts/gen-admin-api.mjs regenerates the Admin API tools from the 2.0 OpenAPI document.

License

MIT, see LICENSE.

Available Tools

75 tools
account_2fa_disableDisable 2FAC

Disable two-factor authentication with the account password.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
passwordYes
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses only that the account password is the credential; it says nothing about whether disabling invalidates existing recovery codes or sessions, whether the change is reversible, whether it requires elevated auth, or what the response contains — significant gaps for a security-weakening mutation.

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

Conciseness4/5

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

One front-loaded sentence with no filler, correctly leading with the action. It is efficient, though its brevity leaves no room for the risk context that a destructive security operation warrants.

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

Completeness2/5

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

Five parameters with panel/URL/key overrides, no output schema, and no annotations — yet the description mentions none of the environment-override mechanics and none of the effects. For a security-critical mutation it should explain consequences and return behavior; here almost everything must be inferred.

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

Parameters3/5

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

Schema description coverage is 80%, so the schema already documents panel, baseUrl, clientKey, and applicationKey. The description's only added parameter content is that the password gates the operation, which is already implied by the required field. Baseline 3 applies.

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

Purpose4/5

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

States a specific verb+resource ('Disable two-factor authentication') plus the credential it needs. The name and description together clearly distinguish it from account_2fa_enable and account_2fa_get, though the description itself never names those siblings.

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

Usage Guidelines2/5

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

No guidance on when an agent should call this versus account_2fa_get or account_update_password, no prerequisites beyond the password parameter, and no warning about the security consequence of turning 2FA off. The agent is left to infer usage entirely.

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

account_2fa_enableEnable 2FAB

Enable two-factor authentication by confirming a TOTP code. Returns recovery tokens.

NameRequiredDescriptionDefault
codeYes6-digit TOTP code.
panelNoName of a saved panel. Omit to use the active or default panel.
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It usefully says recovery tokens are returned, but it omits auth/permission requirements, what happens if 2FA is already enabled, and whether recovery tokens are shown once or persisted.

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

Conciseness5/5

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

Two short sentences, front-loaded with the operation and mechanism, and the return-value note is also concise. There is no wasted text.

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

Completeness3/5

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

The description is adequate to invoke the tool: the required TOTP code is clear, and the return of recovery tokens is disclosed despite no output schema. However, for a security-sensitive mutation with no annotations, it omits prerequisites and permission context, leaving clear gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so all five parameters are already documented in the input schema. The description mentions the TOTP code, which aligns with the required parameter, but adds no meaningful detail for the panel, baseUrl, clientKey, or applicationKey overrides, so the baseline of 3 applies.

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

Purpose5/5

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

The description states a specific verb and resource: enabling two-factor authentication. It adds the confirmation mechanism ('by confirming a TOTP code') and the return value ('recovery tokens'), which clearly separates it from sibling tools like account_2fa_get and account_2fa_disable.

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

Usage Guidelines2/5

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

It explains the mechanism but gives no explicit when-to-use guidance, prerequisites, or alternatives. It does not say when to use this instead of account_2fa_get or account_2fa_disable, nor whether 2FA setup must happen first.

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

account_2fa_getGet 2FA setupB

Get the TOTP secret / QR image URL to enable two-factor authentication.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about whether the returned secret is single-use or invalidated by repeated calls, whether the account must not already have 2FA enabled, or that the secret must be confirmed via account_2fa_enable. For a read that exposes a credential, this silence is a meaningful gap.

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

Conciseness4/5

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

A single front-loaded sentence that returns the resource description immediately, with zero filler. There is little structure to evaluate because the description is so short.

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

Completeness3/5

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

With no annotations and no output schema, the description is the only source for the enrollment contract, and it only obliquely covers the return shape (secret plus QR URL). It omits the lifecycle relationship to account_2fa_enable, which is the missing piece for an agent to use this correctly.

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

Parameters3/5

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

Schema description coverage is 100% with all four parameters (panel, baseUrl, clientKey, applicationKey) fully documented inline, so the baseline is 3. The description adds nothing about panel/credential override resolution, which is acceptable given the schema already handles it.

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

Purpose4/5

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

The description names a specific verb ('Get') and the exact resource returned ('TOTP secret / QR image URL'), which distinguishes it from the sibling mutations account_2fa_enable and account_2fa_disable. It stops short of explicitly naming those siblings as the follow-up/alternative steps.

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

Usage Guidelines3/5

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

The phrase 'to enable two-factor authentication' implies this is the first step of the 2FA enrollment flow, but the tool never states when it should be called versus account_2fa_enable / account_2fa_disable, nor what to do if 2FA is already active. Usage is only inferable from context.

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

account_activityAccount activity logC

Get the account activity log.

NameRequiredDescriptionDefault
pageNo
sortNotimestamp; prefix - for descending.
eventNoFilter by event name, e.g. auth:success.
panelNoName of a saved panel. Omit to use the active or default panel.
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
includeNoe.g. actor
perPageNo
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it only implies a safe read operation via 'Get'. It says nothing about pagination behavior, default page size, whether results are complete or truncated, or the permissions/auth context (panel, clientKey, applicationKey overrides) needed to call it successfully.

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

Conciseness3/5

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

One short sentence with no filler, so it is not verbose, but it is under-specified rather than genuinely concise. There is no structure to front-load because there is only a bare purpose statement.

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

Completeness2/5

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

This is a 9-parameter tool with no annotations and no output schema, including non-trivial overrides (panel, baseUrl, clientKey, applicationKey) that are not mentioned anywhere. Given that complexity, a single-sentence description leaves an agent without enough context to invoke it correctly or interpret its results.

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

Parameters2/5

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

Schema description coverage is 78% but the description contributes zero parameter meaning — it never mentions filtering by event, sorting, pagination, or the include option. Notably 'page' has no schema description at all and 'include' is only documented as 'e.g. actor', so the description leaves real ambiguity (e.g. what include values are valid) unaddressed.

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

Purpose3/5

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

The description states a retrieval verb and the resource ('account activity log'), and the word 'account' implies account-level scope as opposed to the sibling server_activity. However, it adds nothing beyond the title 'Account activity log' other than 'Get', and gives no hint about what the log contains or how it differs from server_activity beyond scope.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as server_activity, or on prerequisites like which panel or API key context is required. The agent must infer everything from the name alone.

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

account_apikey_createCreate API keyB

Create a new client API key. The secret is only returned once.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
allowed_ipsNoOptional IP allowlist.
descriptionYes
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations at all, the description carries the full disclosure burden, and it does deliver one genuinely critical trait: 'The secret is only returned once', which tells the agent to capture the value immediately. It omits other relevant behavior for a mutation tool — required permissions, whether keys expire or are revocable, and that the inline panel/baseUrl/clientKey/applicationKey values are overrides rather than persisted settings.

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

Conciseness5/5

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

Two short sentences, zero filler, with the core action first and the critical once-only secret caveat immediately after. Nothing is padded or repeated from the schema.

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

Completeness3/5

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

For a 6-parameter creation tool with no annotations and no output schema, the definition covers the action and the most important consequence (single-return secret) but not what the response contains, what permissions are needed, or how the optional override parameters interact with saved panels. Adequate but with clear gaps.

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

Parameters3/5

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

Schema description coverage is 83%, so the schema already explains panel, baseUrl, clientKey, applicationKey and allowed_ips. The description adds no parameter-level detail beyond the word 'client', and notably leaves the required 'description' parameter undocumented in both places. Baseline 3 applies.

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

Purpose4/5

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

Names a specific verb and resource ('Create a new client API key'), which cleanly separates it from account_apikey_list and account_apikey_delete in the sibling set. It does not explicitly contrast the 'client' key with the applicationKey override, but the core purpose is unambiguous.

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

Usage Guidelines2/5

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

There is no statement of when to create a key versus listing or deleting one, no prerequisites (e.g. needing panel authentication or an application key first), and no mention of scope or limits. The agent must infer usage entirely from the name.

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

account_apikey_deleteDelete API keyC

Revoke a client API key by its identifier.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
identifierYes
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full disclosure burden, yet it only implies destruction via "Revoke." It does not say whether the key is hard-deleted or disabled, whether permission scoping is required, or what happens to active sessions using that key.

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

Conciseness4/5

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

A single front-loaded sentence with no filler or redundancy. It is efficiently structured, though the terseness leaves room for one or two more high-value sentences.

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

Completeness2/5

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

A destructive credential-revocation tool with no annotations and no output schema needs to spell out irreversibility and side effects. The description covers only the basic action, leaving the agent without the safety context this operation demands.

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

Parameters3/5

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

Schema coverage is 80%; the connection-override parameters (panel, baseUrl, clientKey, applicationKey) are already documented in the schema. The description only confirms that `identifier` is the target selector, which the required-fields list already signals, so it adds little beyond structured data.

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

Purpose4/5

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

Specific verb ("Revoke") plus resource ("client API key") plus the lookup key ("by its identifier") clearly separate it from account_apikey_list and account_apikey_create. It stops short of stating whether application keys (ptla_) are also covered, so it is clear but not airtight.

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

Usage Guidelines2/5

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

No indication of when to use this versus listing keys first, no prerequisites, and no note that revocation is irreversible or affects clients currently authenticating with the key. The agent must infer all usage context from the name alone.

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

account_apikey_listList API keysB

List the account's client API keys.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral burden: it does disclose scope (client keys only, not application keys), which is useful context beyond the schema. However, it says nothing about whether key secrets/full key values are returned, whether results are paginated, or what auth/panel context is required — meaningful gaps for a credentials-listing tool with zero annotation coverage.

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

Conciseness4/5

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

A single seven-word sentence with no padding, and the resource plus scope qualifier are front-loaded. It is efficient, though the brevity contributes to the completeness gaps elsewhere.

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

Completeness3/5

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

With no output schema, the description need not explain return values, and parameter semantics are covered by the schema. Still, for a tool listing account credentials it leaves open whether secrets are exposed and how the panel/override parameters interact with the listing, which an agent would want to know before calling.

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

Parameters3/5

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

Schema coverage is 100%, and each of the four optional parameters (panel, baseUrl, clientKey, applicationKey) is documented as an inline override or saved-panel selector. The description adds nothing about how these overrides affect the listing, so the baseline 3 applies.

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

Purpose4/5

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

The description gives a specific verb and resource ("List the account's ... API keys") and narrows scope to client keys, which separates it from the create/delete siblings. It doesn't explain the client-vs-application key distinction explicitly, but the qualifier is still doing differentiating work.

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

Usage Guidelines2/5

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

There is no statement of when to use this versus account_apikey_create, account_apikey_delete, or how to obtain application keys. The verb "List" implies a read operation, but no alternatives, prerequisites, or exclusions are named.

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

account_getGet accountB

Get the authenticated user's account details.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. 'Get' implies a read, but it discloses nothing about the auth mechanisms hinted at by the clientKey/applicationKey params, what details are returned, or how failures (invalid panel/key) manifest.

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

Conciseness4/5

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

A single front-loaded sentence with zero waste. It is appropriately sized for the operation, though its brevity borders on under-specification rather than elegant economy.

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

Completeness3/5

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

No output schema, no annotations, and the description never indicates what account fields come back or what the panel/baseUrl/clientKey overrides do to the result. For a read-details tool whose return value matters, this leaves a moderate gap.

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

Parameters3/5

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

All four parameters have full schema descriptions (100% coverage), including the panel vs. inline-override distinction, so the schema does the heavy lifting. The description adds nothing about parameters, which is acceptable at this coverage but not additive.

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

Purpose4/5

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

States a specific verb (get) and resource (authenticated user's account details), which is clear and distinct from mutating siblings like account_update_email. It does not explicitly differentiate itself from account_activity or account_2fa_get, but the resource scope is unambiguous.

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

Usage Guidelines3/5

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

Usage is only implied: needing the current account's profile. There is no stated when-not, no mention of alternatives like account_activity or account_2fa_get, and no prerequisites beyond the phrase 'authenticated user's'.

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

account_sshkey_createAdd SSH keyC

Add an SSH public key to the account.

NameRequiredDescriptionDefault
nameYes
panelNoName of a saved panel. Omit to use the active or default panel.
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
public_keyYes
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It conveys only that a key is added, saying nothing about duplicate-key handling, idempotency, required permissions, or what happens to the override params (panel, clientKey, applicationKey) — a meaningful gap for a write tool with zero annotation coverage.

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

Conciseness4/5

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

A single front-loaded sentence with no waste. It is concise and readable, though the brevity edges toward under-specification rather than deliberate economy.

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

Completeness2/5

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

For a six-parameter mutation tool with no annotations and no output schema, the description is too thin. It omits the meaning of the required name/public_key parameters and the purpose of the auth-override params, leaving the agent to reconstruct behavior from the schema.

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

Parameters3/5

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

Schema coverage is 67%: panel, baseUrl, clientKey, and applicationKey are documented in the schema, but the two required params (name, public_key) have no descriptions in either schema or description. The description names the 'public key' concept but adds no format or constraints, so it neither compensates for the required-param gap nor adds value beyond the schema.

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

Purpose4/5

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

States a specific verb ('Add') and resource ('SSH public key to the account'), clearly distinguishing it from account_sshkey_list and account_sshkey_remove by the mutation verb. It lacks any explicit sibling routing but the name and description together make the purpose unambiguous.

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

Usage Guidelines2/5

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

No guidance on when to use this versus account_sshkey_remove or account_sshkey_list, and no prerequisites or exclusions are stated. The agent must infer all usage context from the name alone.

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

account_sshkey_listList SSH keysC

List the account's SSH keys.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden, and it discloses almost nothing: not whether the operation is read-only (implied by 'List' but not stated), whether private key material is exposed, whether results are paginated, or whether panel/auth overrides are validated. 'List' is the only behavioral signal.

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

Conciseness4/5

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

A single short sentence, front-loaded with the action and scope, with no filler. It is efficient, though the terseness borders on under-specification handled elsewhere.

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

Completeness2/5

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

With no annotations, no output schema, and four auth/panel-override parameters, the description should at least note what is returned (e.g., key fingerprints vs. private material) and the auth-override behavior. For a tool this simple it is close to adequate, but the absence of any behavioral or return context leaves real gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the four parameters (panel, baseUrl, clientKey, applicationKey) are already documented in the schema. The description adds no extra meaning beyond that, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb ('List') and resource ('the account's SSH keys'), which is unambiguous. It does not explicitly differentiate itself from siblings account_sshkey_create and account_sshkey_remove, but the verb does the work implicitly.

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

Usage Guidelines2/5

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

No guidance on when to use this versus other account tools, no prerequisites, and no mention of what it does not cover (create/remove). The agent must infer everything from the name.

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

account_sshkey_removeRemove SSH keyC

Remove an SSH key from the account by fingerprint.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
fingerprintYes
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It implies deletion but never says the removal is irreversible, what happens to servers still authorized by that key, or whether the fingerprint must match exactly. For a mutation with zero annotation coverage this is a real gap.

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

Conciseness4/5

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

A single front-loaded sentence with no filler and the identifying parameter placed where it matters. It is efficient, though the brevity reflects under-specification rather than true completeness.

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

Completeness2/5

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

A destructive account-level mutation with no annotations and no output schema should explain irreversibility and the practical workflow (look up key, then remove). The description supplies neither, so an agent lacks what it needs beyond the raw schema.

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

Parameters3/5

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

Schema description coverage is 80%, so the schema already documents the panel, baseUrl, clientKey and applicationKey overrides. The description adds only 'by fingerprint', which confirms the selector role of the required field but nothing about format or matching semantics. Baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Remove an SSH key from the account') and adds the identifying mechanism ('by fingerprint'), which clearly separates it from account_sshkey_list and account_sshkey_create. It never names a sibling explicitly, so it stops short of the 5 band.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of the alternative (e.g. how to first discover a fingerprint via account_sshkey_list). The agent must infer everything from the tool name.

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

account_update_emailUpdate emailB

Change the account email. Requires the current password.

NameRequiredDescriptionDefault
emailYes
panelNoName of a saved panel. Omit to use the active or default panel.
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
passwordYes
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description must carry the full burden. It usefully discloses the credential requirement, but says nothing about side effects an agent would care about: whether changing email invalidates sessions or API keys, whether verification is triggered, or whether the change is immediate.

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

Conciseness4/5

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

Two short sentences with zero filler, and the auth prerequisite is front-loaded right after the action. The terseness borders on under-specification rather than waste, but nothing written is redundant.

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

Completeness3/5

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

For a six-parameter mutation tool with no annotations and no output schema, the description covers the action and the credential prerequisite but leaves side effects, failure modes, and the panel/key override params unexplained. Adequate to attempt a call, not complete.

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

Parameters3/5

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

Schema coverage is 67%; the description touches only email and password, both of which the schema already marks as required. It adds no format, constraint, or meaning for the four undocumented connection-override params (panel, baseUrl, clientKey, applicationKey), though those are largely self-explanatory in schema.

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

Purpose4/5

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

States a specific verb+resource ('Change the account email') that an agent can immediately distinguish from account_update_password and other account_* siblings. It does not explicitly name the nearest sibling, so it falls just short of 5.

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

Usage Guidelines3/5

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

The prerequisite 'Requires the current password' is a real usage condition, but there is no guidance on when to choose this over account_update_password or what to do if the password isn't known. Usage is implied from the name rather than spelled out.

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

account_update_passwordUpdate passwordC

Change the account password.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
passwordYes
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.
current_passwordYes
password_confirmationYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does not say this is an irreversible mutation, whether the current session survives, what authentication is required, or what the result looks like.

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

Conciseness3/5

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

A single, front-loaded sentence with no waste, but it is under-specified for a seven-parameter mutation tool. Conciseness here comes at the cost of necessary information.

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

Completeness2/5

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

A mutation tool with no annotations, no output schema, seven parameters, and only 57% schema coverage needs more than five words. The description lacks authentication, confirmation, and irreversibility context.

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

Parameters2/5

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

Schema description coverage is 57%; the required password fields (current_password, password, password_confirmation) have no schema descriptions and the description does not compensate. The agent is left to infer that password_confirmation must match.

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

Purpose4/5

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

States a specific verb ('Change') and resource ('account password'), so the agent knows this is a password-mutation tool. It is close to the title but adds the account scope; there is no sibling differentiation, though sibling account_update_email covers a different field.

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

Usage Guidelines2/5

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

No guidance on when to use this versus account_apikey_create or account_update_email, and no prerequisites. The description does not mention that the current password is required or that the new password must be confirmed.

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

backup_createCreate a backupC

Start a new backup. ignored is a newline-separated list of glob patterns to exclude.

NameRequiredDescriptionDefault
nameNo
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
ignoredNo
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
is_lockedNo
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden but only clarifies one parameter. It does not say whether the backup is synchronous or async, how long it takes, whether it is destructive to existing backups, or whether permissions are required — significant gaps for a mutation tool.

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

Conciseness5/5

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

Two short sentences, front-loaded with the core purpose, and the second sentence is targeted at the one parameter that genuinely needs clarification. No wasted text.

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

Completeness2/5

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

An 8-parameter mutation tool with no annotations, no output schema, and half the schema descriptions missing. The description addresses only one parameter and none of the runtime behavior, so it is well short of what an agent needs to invoke this confidently.

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

Parameters3/5

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

Schema coverage is 50%, and the description usefully explains the 'ignored' parameter's format (newline-separated glob patterns) where the schema provides no description at all. However, 7 other parameters — including required 'server', 'name', 'is_locked', and the inline credential overrides — get no mention in the description, so it only partially compensates.

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

Purpose4/5

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

States a specific verb and resource ('Start a new backup'), which unambiguously separates it from backup_list, backup_restore, and backup_delete. It doesn't explicitly name a contrasting sibling, but the operation is self-evident from the phrasing.

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

Usage Guidelines2/5

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

No guidance on when to use this versus alternatives, and no prerequisites such as whether the server must be online, whether it counts against a backup limit, or what happens if a backup is already running. Usage must be inferred entirely from the name.

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

backup_deleteDelete a backupC

Delete a backup from the server.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
backupYes
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure and fails to meet it: it does not say the deletion is irreversible, whether backups must be unlocked first, what permissions/keys are required, or what happens on success. For an irreversible mutation this is a significant gap.

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

Conciseness4/5

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

A single short sentence with the action front-loaded and no filler. It is efficient, though its brevity is under-specification rather than deliberate density.

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

Completeness2/5

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

For a destructive, unannotated tool with six parameters, 67% schema coverage, no output schema, and undescribed required identifiers, the description should explain permanence, prerequisites, and parameter meaning. None of that is present.

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

Parameters2/5

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

Schema coverage is only 67%, and the two required parameters (server, backup) have no schema descriptions at all — the description likewise adds nothing about whether "backup" is a name, UUID, or index, or how it relates to the server. Only the panel/baseUrl/key overrides are documented, and only by the schema.

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

Purpose3/5

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

The description states a specific verb and resource ("Delete a backup"), which is clearer than the title alone, but it does nothing to distinguish this from siblings like backup_restore, backup_toggle_lock, or backup_get — the agent must infer that this is the destructive sibling.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus backup_restore or backup_toggle_lock, no mention of prerequisites such as whether a locked backup must be unlocked first, and no exclusions. The agent gets an implied destructive intent from the name only.

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

backup_download_urlGet a backup download URLB

Return a one-time signed URL to download a backup. Fetch it outside the model context.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
backupYes
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose one important trait: the URL is one-time signed, implying single-use/expiring credentials. It does not say how long the URL lasts, whether generating it consumes/locks anything, or what auth is required for the panel/API-key overrides.

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

Conciseness4/5

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

Two short sentences, both front-loaded and free of filler; the result-handling hint follows the purpose statement in the right order. 'Outside the model context' is slightly jargon-y but not wasteful.

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

Completeness2/5

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

For a tool whose entire output is a URL, the description never says what the response looks like (raw URL string vs. an object field), and there is no output schema to fall back on. With 6 parameters, no annotations, and two undescribed required params, the description leaves material gaps for correct invocation.

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

Parameters2/5

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

Schema coverage is 67%, and the two required parameters (server, backup) have no descriptions in either the schema or the description. The description says nothing about what 'backup' identifies or how 'server' relates to 'panel'. The undocumented required fields are exactly the ones an agent must supply.

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

Purpose4/5

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

States a specific verb and resource: returns a one-time signed URL to download a backup. An agent can distinguish it from backup_get (metadata) and files_download_url (files). However it does not explicitly name or contrast with those siblings, so it stays at 4 rather than 5.

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

Usage Guidelines3/5

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

'Fetch it outside the model context' is a usable operating instruction for what to do with the result, which implies the intended workflow. But there is no explicit statement of when to choose this over backup_get or backup_restore, nor any prerequisite (e.g. backup must exist, must be unlocked).

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

backup_getGet a backupC

Get details for one backup.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
backupYes
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full disclosure burden. It implies a read-only fetch but says nothing about behavior if the backup or server does not exist, permission requirements, or what fields 'details' includes. For a tool with zero annotation coverage this is a substantial gap.

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

Conciseness3/5

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

A single short sentence with no waste, but its brevity comes from under-specification rather than efficiency.

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

Completeness2/5

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

No output schema exists, so the description should explain what a 'details' response contains and how the panel/override parameters interact. It does neither, leaving an agent to guess at the result shape and auth override behavior.

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

Parameters2/5

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

With 6 parameters and only 67% schema description coverage, the description adds no parameter meaning at all. The two required parameters, 'server' and 'backup', are undocumented in both schema and description, so the agent gets no help on their expected format.

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

Purpose3/5

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

The verb 'get' and resource 'backup' plus 'one backup' distinguish it slightly from backup_list, but the description never names that sibling or specifies what 'details' means. It is a minimal but readable statement of purpose.

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

Usage Guidelines2/5

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

No when-to-use guidance, no mention of prerequisites, and no explicit contrast with backup_list (which retrieves many) or backup_restore/backup_download_url (which act on a backup). The agent must infer everything from the name.

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

backup_listList backupsC

List the server's backups.

NameRequiredDescriptionDefault
pageNo
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
perPageNo
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It only says 'List' and does not disclose pagination behavior, ordering, permission requirements, or what happens when backups are locked or absent.

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

Conciseness4/5

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

The description is a single front-loaded sentence with no wasted words. Its brevity is structurally clean, though it leaves important context to other dimensions.

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

Completeness2/5

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

For a 7-parameter tool with no annotations and no output schema, one sentence is not enough. The description omits pagination, filtering, panel selection, and return-value expectations that an agent would need to invoke it confidently.

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

Parameters2/5

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

The schema has 7 parameters with only 57% description coverage, and the description adds meaning only for the 'server' parameter implicitly. It does not explain page, perPage, panel, or the inline credential/URL overrides.

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

Purpose2/5

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

The description essentially restates the tool name and title: 'backup_list' / 'List backups' becomes 'List the server's backups.' It adds the server scoping but does not differentiate the tool from siblings like backup_get or backup_download_url beyond the verb 'List.'

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus backup_get, backup_download_url, or other sibling backup tools. It also does not mention prerequisites such as needing a server identifier or panel context.

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

backup_restoreRestore a backupB

Restore a backup to the server. truncate wipes existing files first.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
backupYes
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
truncateNo
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose one genuinely important behavioral trait — that 'truncate wipes existing files first' — which signals destructiveness. However, it never says that a plain restore also overwrites existing server files, nor does it mention required permissions, whether the server is stopped/restarted, or whether the action is recoverable.

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

Conciseness4/5

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

Two short sentences, front-loaded with the primary action and followed by the key destructive caveat. No wasted words, though the lowercase fragment 'truncate wipes...' reads as a note rather than structured guidance.

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

Completeness2/5

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

For a destructive mutation with 7 parameters, no annotations, no output schema, and 43% undocumented parameter coverage, the description is materially incomplete. It omits overwrite semantics for non-truncate restores, prerequisites, and any post-restore state information the agent would need to call this safely.

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

Parameters3/5

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

Schema coverage is 57%, so several parameters (backup, server, truncate) are undocumented in the schema. The description explains the effect of `truncate` behaviorally ('wipes existing files first'), which is useful, but leaves `backup` and `server` (e.g., identifier format) unexplained. Baseline 3 is appropriate for the partial coverage.

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

Purpose4/5

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

The description states a specific verb and resource ('Restore a backup to the server') and is clearly distinct from siblings like backup_create, backup_list, and backup_download_url. It doesn't explicitly call out those siblings, but the operation is unambiguous.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus alternatives, no preconditions (e.g., backup must exist, server state, whether the server should be stopped), and no warning that restore overwrites live server files. The agent is left to infer everything about appropriateness.

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

backup_toggle_lockToggle backup lockB

Lock or unlock a backup (locked backups cannot be deleted or rotated out).

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
backupYes
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose the meaningful behavioral consequence of locking (blocks deletion and rotation). However, it omits toggle semantics — whether the call inverts current state, is idempotent, or what it returns — and says nothing about required permissions or reversibility of the unlock direction.

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

Conciseness4/5

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

A single front-loaded sentence with the core action first and the consequence in a parenthetical — no wasted words. It is terse enough that it could afford one more clause on toggle behavior without becoming bloated.

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

Completeness2/5

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

This is a mutation with no annotations, no output schema, and six parameters, including four auth/panel override params. The description never resolves the central ambiguity of a toggle-style tool (no desired-state parameter) nor states what happens on repeat invocation, leaving a meaningful gap for an agent about to mutate backup state.

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

Parameters3/5

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

Schema coverage is 67%, and the description names no parameters at all; the two required parameters (server, backup) have no schema descriptions, so an agent must infer that they identify the target backup and its owning server. Panel/baseUrl/clientKey/applicationKey are documented in the schema, so the description's silence there is acceptable.

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

Purpose4/5

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

States a specific verb pair (lock/unlock) and resource (backup), and adds the consequence that locked backups cannot be deleted or rotated out, which makes the effect tangible. It does not explicitly differentiate itself from backup_delete/backup_restore, but the action is distinctive enough that an agent can identify it.

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

Usage Guidelines2/5

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

No guidance on when to lock versus leave unlocked, no prerequisites (permissions, backup state), and no mention of alternatives. Since there is no target-state parameter, an agent gets no hint that this flips the current state rather than setting an explicit lock value.

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

db_createCreate a databaseC

Create a new database on the server.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
remoteNoAllowed connection host, e.g. % (default).
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
databaseYesDatabase name.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full behavioral burden and largely drops it. It does not say what happens on a name collision, whether the operation returns credentials, what permissions or panel/API keys are required, or how the inline baseUrl/clientKey/applicationKey overrides interact with persistence beyond what the schema already states.

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

Conciseness3/5

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

One short sentence, front-loaded and free of waste, but it is under-specified rather than genuinely concise — the brevity comes at the cost of any useful information.

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

Completeness2/5

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

For a mutation tool with 7 parameters, no annotations, and no output schema, the description is far too thin. It never explains server identification, panel selection versus inline overrides, or what the caller receives after creation — all things an agent needs before invoking it.

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

Parameters3/5

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

Schema description coverage is 86%, so most parameters are already documented (panel, remote, baseUrl, database, clientKey, applicationKey). The description adds nothing to explain 'server' (the only undocumented param, likely an identifier) or how required server/database relate. Baseline 3 applies when the schema does the work.

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

Purpose3/5

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

The description states a verb and resource (create a database) and adds minimal scope ('on the server'), but it essentially restates the tool name db_create and the title 'Create a database'. It does nothing to distinguish this from sibling tools like db_list, db_delete, or db_rotate_password, so the agent gets no differentiating detail.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no preconditions, and no mention of alternatives such as db_list for checking existing databases or db_rotate_password for credential management. The agent must infer the tool's role from the name alone.

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

db_deleteDelete a databaseC

Delete a database from the server.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
databaseYes
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of disclosure. It states that a deletion occurs but says nothing about irreversibility, required permissions, or the effect on related resources, which is a significant omission for a destructive mutation.

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

Conciseness3/5

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

The single sentence is short and front-loaded, but it is under-specified rather than genuinely concise. It avoids bloat but fails to include information that would make the tool easier to invoke correctly.

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

Completeness2/5

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

For a destructive tool with no annotations, no output schema, and six parameters (two required and undocumented), the description is too thin. It leaves out safety, permission, and parameter details that an agent needs before calling it.

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

Parameters2/5

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

Schema description coverage is 67%, but the two required parameters ('server' and 'database') have no descriptions in either the schema or the tool description. The description adds no semantic meaning beyond the bare parameter names already present in the schema.

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

Purpose4/5

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

The description gives a specific verb and resource ('Delete a database'), and the tool name makes it distinguishable from sibling tools like db_create, db_list, and db_rotate_password. It stops short of clarifying the scope of deletion, such as whether associated users or data are removed.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as db_rotate_password or db_create, and no prerequisites, warnings, or exclusions are mentioned. The agent must infer usage from the name alone.

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

db_listList databasesC

List the server's databases.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.
includePasswordNoInclude the database password in the response.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about permissions required, whether results are paginated, or that the response may contain sensitive credentials when includePassword is set. Only the bare direction of the operation (read) is conveyed.

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

Conciseness4/5

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

A single short sentence with no waste, and the scope ('the server's') is front-loaded. It is arguably too terse rather than padded, which is the better failure mode for this dimension.

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

Completeness2/5

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

The tool has 6 parameters, 1 required, no output schema, and no annotations, so the description should describe what comes back (names only? host, username, password?) and how to identify the target server. None of that is present, leaving the agent to guess at response shape for a credential-adjacent endpoint.

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

Parameters3/5

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

Schema description coverage is 83%, with panel, baseUrl, clientKey, applicationKey, and includePassword all documented in the schema itself. The description adds no parameter meaning, but the baseline of 3 applies when the schema does the heavy lifting.

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

Purpose4/5

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

States a specific verb and resource ('List the server's databases'), which is enough to separate it from siblings like db_create, db_delete, and db_rotate_password. It does not explicitly name those siblings as alternatives, but the read-only list semantics are unambiguous.

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

Usage Guidelines2/5

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

No guidance on when to call this versus db_create/db_delete/db_rotate_password, and no mention of prerequisites such as which server identifier to use or whether the panel must be selected first. The agent must infer all routing from the tool name alone.

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

db_rotate_passwordRotate database passwordC

Generate a new password for a database.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
databaseYesDatabase id.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It says a new password is generated but does not disclose whether the old password is invalidated, whether the caller needs auth privileges, whether the password is returned in the response, or whether the change is persisted—all critical for a mutation tool.

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

Conciseness4/5

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

A single short sentence with no wasted words, front-loading the action. The terseness is appropriate structurally, though it reflects under-specification rather than deliberate economy.

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

Completeness2/5

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

With six parameters, no annotations, and no output schema, the description is materially incomplete. Most importantly, it does not tell the agent whether the newly generated password is returned by the call, which is essential to invoking this correctly.

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

Parameters3/5

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

Schema description coverage is 83%, so the schema already documents most parameters (panel, baseUrl, database, clientKey, applicationKey). The description adds no parameter-level meaning beyond the schema; baseline 3 applies when structured data does the heavy lifting.

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

Purpose4/5

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

States a specific verb ('Generate') and resource ('password for a database'), so the agent knows it produces new credentials for a database. It does not explicitly frame this as rotation/replacement or distinguish it from siblings like db_create/db_delete, which keeps it from a 5.

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

Usage Guidelines2/5

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

There is no guidance on when to use this instead of db_create or db_delete, no mention of prerequisites (panel/server permissions), and no warning about invalidating existing credentials. The agent must infer usage entirely.

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

files_chmodChange file permissionsC

Set the mode (e.g. 644, 755) of a file under a root directory.

NameRequiredDescriptionDefault
fileNoSingle file. Or use files.
modeNoOctal mode as a string, e.g. 755, for file.
rootNo
filesNoSeveral files at once, names relative to root.
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It says nothing about whether permissions are replaced or merged, what auth/panel context is required, whether the operation is recursive, or what feedback is returned on failure for a mutation tool.

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

Conciseness4/5

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

One tight, front-loaded sentence with concrete mode examples and zero filler. It is efficient, though the brevity comes at the cost of the coverage noted elsewhere.

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

Completeness2/5

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

For a 9-parameter mutation tool with no annotations and no output schema, a single sentence is insufficient. Key behaviors (batch mode, root-relative paths, connection overrides, error semantics) are left entirely to the schema and inference.

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

Parameters2/5

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

Coverage is 78%, so the schema documents most parameters, but the description adds almost nothing beyond what the schema already says (file, mode, root). It never mentions the batch 'files' array, the panel/server selector, or the inline credential overrides, leaving the multi-file path and connection params without prose context.

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

Purpose4/5

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

States a specific verb ('Set') and resource ('mode of a file'), with examples 644/755, so an agent knows exactly what it does. It omits the batch ('files') capability that the schema supports, but the core purpose is unambiguous and there are no competing chmod siblings.

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

Usage Guidelines2/5

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

No indication of when to use this vs alternatives, no mention that it is the tool for both single-file and multi-file permission changes, and no prerequisites. The only hint is 'under a root directory', which is scope, not usage guidance.

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

files_compressCompress filesC

Create an archive from one or more files/directories under a root.

NameRequiredDescriptionDefault
rootNo
filesYes
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full disclosure burden, yet it omits the destination path/filename, overwrite behavior, archive format, and permission requirements for a write operation. Only the source scope is disclosed.

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

Conciseness4/5

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

A single front-loaded sentence with no filler, but its brevity reflects under-specification rather than tightness of thought.

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

Completeness2/5

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

A mutation tool with 7 parameters, no annotations, and no output schema; the description should explain where the archive lands and what happens on existing files. It does not, leaving the agent unable to call it confidently.

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

Parameters2/5

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

Schema description coverage is 57%; the description only restates 'files' and 'root' while saying nothing about the server, panel, or inline credential override parameters (baseUrl, clientKey, applicationKey). It also leaves ambiguous what 'under a root' means when root is optional.

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

Purpose4/5

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

States a specific verb (create) and resource (archive) plus the scoping constraint (files/directories under a root). It implicitly separates itself from files_decompress, but never names the archive format or destination, so it stops short of full differentiation.

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

Usage Guidelines2/5

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

No statement of when to use this over alternatives such as files_decompress or files_upload_url, no prerequisites, and no exclusions. An agent must infer the use case entirely from the tool name and one sentence.

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

files_copyCopy a fileC

Copy a file or directory. The copy is placed next to the original.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
locationYesAbsolute path of the file to copy.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses the destination rule ('placed next to the original'), but says nothing about the auto-generated copy name, overwrite/conflict behavior, recursive directory handling, or required permissions for a mutation tool.

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

Conciseness5/5

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

Two short sentences, front-loaded with the action and then the destination constraint. No filler or repetition of the title.

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

Completeness2/5

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

For a mutating tool with no annotations, no output schema, and 6 parameters, the description is too thin: it leaves copy naming, overwrite semantics, error conditions, and return value entirely unaddressed.

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

Parameters3/5

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

Schema coverage is 83%, so almost every parameter is already documented in the schema; the description adds no parameter detail. Baseline 3 applies since the schema does the heavy lifting and the description only indirectly confirms 'location' is the source path.

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

Purpose4/5

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

States a specific verb and resource ('Copy a file or directory'), which is clearer than the bare title. It does not explicitly distinguish itself from siblings like files_rename or files_pull, so it stops short of a 5.

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

Usage Guidelines2/5

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

No guidance on when to use files_copy rather than files_rename, files_pull, or upload/compress alternatives. The only usage signal is implied by the verb 'copy'.

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

files_decompressDecompress an archiveC

Extract an archive file under a root directory.

NameRequiredDescriptionDefault
fileYes
rootNo
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full disclosure burden, yet it says nothing about overwrite behavior, supported archive formats, extraction target naming, or required permissions. Only the vague "under a root directory" hints at path containment, leaving the destructive potential of a filesystem write unexplained.

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

Conciseness4/5

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

A single front-loaded sentence with zero filler. The brevity costs specification rather than clarity, so it is efficient but under-informative rather than padded.

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

Completeness2/5

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

A 7-parameter, filesystem-mutating tool with no annotations and no output schema; the description should at minimum cover overwrite behavior, source-vs-target path semantics, and format support. One sentence cannot carry that, so the definition is incomplete for the tool's complexity.

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

Parameters3/5

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

Schema coverage is 57%: 'file', 'server' and 'root' have no schema descriptions. The description loosely maps 'file' to the archive and 'root' to a base directory, but adds no format, path-resolution, or server-vs-panel semantics beyond that. Baseline 3 for moderate coverage is appropriate.

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

Purpose4/5

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

States a specific verb ("Extract") and resource ("an archive file") plus a scoping note ("under a root directory"). Clear enough to distinguish from files_compress, but it never names the inverse sibling or explains the root scoping.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no mention of alternatives such as files_compress or files_pull. An agent must infer from the name that this is the inverse of compression and that a target root must exist.

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

files_deleteDelete filesC

Delete one or more files/directories under a root directory.

NameRequiredDescriptionDefault
rootNo
filesYesNames relative to root.
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden for a destructive mutation. It never states whether deletion is permanent, whether directories are removed recursively, whether missing paths cause an error, or what permissions/keys are required — all critical for an irreversible operation.

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

Conciseness4/5

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

A single front-loaded sentence with no filler. It is efficient, though the brevity comes at the cost of the behavioral detail noted elsewhere rather than being genuinely complete.

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

Completeness2/5

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

For a seven-parameter destructive tool with no annotations and no output schema, the description omits the information an agent most needs: irreversibility, recursion over directories, auth/override behavior, and error conditions. What exists is accurate but far from sufficient.

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

Parameters3/5

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

Schema coverage is 71%, so the schema already documents most parameters including the 'names relative to root' semantics. The description's phrase 'under a root directory' loosely frames the root/files pairing but adds no syntax, path-format, or override-precedence detail beyond the schema.

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

Purpose4/5

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

States a specific verb (delete) and resource (files/directories) with scope ('under a root directory') and batch cardinality ('one or more'). It is clearly distinguishable from read-oriented siblings like files_list/files_read, though it never explicitly contrasts with the closer files_rename or files_copy.

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

Usage Guidelines2/5

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

No guidance on when to use this versus alternatives such as files_rename or files_copy, and no mention of preconditions (does the path need to exist, must it be empty for directories). The only usage signal is the word 'delete' in the title.

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

files_download_urlGet a file download URLB

Return a one-time signed URL to download a file (binary-safe). Fetch it outside the model context.

NameRequiredDescriptionDefault
fileYes
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description does carry the key behavior: the URL is one-time signed (ephemeral, expires) and binary-safe. It omits TTL, whether the URL requires the panel credentials embedded, and any permission requirements for reading the file.

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

Conciseness4/5

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

Two short sentences, front-loaded with the outcome, no filler. The second sentence is slightly telegraphic in phrasing but still useful, so it just misses a 5.

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

Completeness2/5

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

Six parameters, no annotations, no output schema, and the two required identifiers are undescribed everywhere. For a tool whose output is a credential-bearing URL, the description says nothing about expiry, scope of access, or how to use the returned URL, leaving real gaps.

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

Parameters3/5

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

Schema coverage is 67% and the two required parameters, 'server' and 'file', have no schema descriptions at all; the description adds no guidance on their format (server ID vs name, absolute path). The optional panel/baseUrl/clientKey/applicationKey overrides are documented in the schema, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource — 'Return a one-time signed URL to download a file' — plus a distinguishing property (binary-safe). It is clearly separable from files_read/files_write, though it never names a sibling such as files_upload_url or files_read.

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

Usage Guidelines3/5

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

The phrase 'Fetch it outside the model context' implies when this is preferred (binary/large payloads the agent shouldn't inline), but it never states when-not-to-use or points to files_read for text content. Usage is implied rather than prescribed.

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

files_listList filesC

List files and directories at a path on the server.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
directoryNo
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden and discloses almost nothing: no mention of recursion, pagination, hidden-file behavior, ordering, or required panel/application key permissions. An agent cannot tell from this text whether the call is a safe read-only listing or what scope of credentials it needs.

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

Conciseness4/5

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

A single front-loaded sentence with no filler. It is efficient, though the terseness comes at the cost of content rather than being a model of economy.

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

Completeness2/5

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

For a 6-parameter tool with multi-tenant override parameters (panel, baseUrl, clientKey, applicationKey), no annotations and no output schema, one sentence leaves the agent without enough context to call it confidently or interpret results.

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

Parameters2/5

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

Coverage is 67%, and the most important parameter for this operation, 'directory', has no description in the schema and no clarification here (is it required? does omitting it list the root?). The description never connects 'path' to a specific parameter, and the panel/server/baseUrl/clientKey override layering that dominates the schema is left unaddressed.

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

Purpose4/5

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

States a specific verb and resource ('List files and directories') plus a scope ('at a path on the server'), so the agent can distinguish it from files_read or files_write. It does not explicitly contrast itself with any sibling, keeping it below a 5.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus files_read, files_download_url, or recursive listing, and no preconditions are stated. Usage is only inferable from the tool name and one-line purpose.

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

files_mkdirCreate a directoryC

Create a new folder under a root directory.

NameRequiredDescriptionDefault
nameYes
rootNo
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full behavioral burden. It implies a mutation but does not disclose permission requirements, behavior when the folder already exists, path defaults, or the role of the required server parameter.

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

Conciseness4/5

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

The single sentence is efficient and front-loads the action. It is not padded or repetitive, though its brevity contributes to the missing context elsewhere.

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

Completeness2/5

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

For a 7-parameter mutation tool with no annotations and no output schema, the description is too thin. It omits required parameter semantics, path resolution rules, credential override behavior, and what happens on name conflicts.

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

Parameters2/5

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

With 7 parameters and only 57% schema description coverage, the description should compensate but does not. It clarifies 'root' only implicitly via 'under a root directory' and says nothing about the required name or server parameters or the inline credential overrides.

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

Purpose4/5

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

The description states a clear verb and resource: create a new folder. It does not distinguish this operation from sibling files_* tools or clarify that it creates a directory rather than a file, but the core action is unambiguous.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as files_upload_url or files_write, and no prerequisites or exclusions are given. The phrase 'under a root directory' hints at scoping but does not tell the agent when to select this tool.

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

files_pullPull a remote fileC

Download a remote URL directly onto the server.

NameRequiredDescriptionDefault
urlYes
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
filenameNo
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
directoryNo
foregroundNoWait for the download instead of running it in the background.
use_headerNoTake the file name from the Content-Disposition header.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden but only hints that the file lands on the remote server. It does not disclose overwrite behavior, default background vs. foreground execution, permission/auth requirements implied by clientKey/applicationKey, or any side effects of a 10-parameter mutation.

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

Conciseness4/5

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

A single front-loaded sentence with no waste. It is efficient but borders on under-specification given the tool's complexity.

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

Completeness2/5

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

For a 10-parameter, no-annotation, no-output-schema tool, one sentence is far too thin. It leaves the agent without enough context to pick correct panel/auth options or predict the outcome of the download.

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

Parameters2/5

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

Schema description coverage is only 60%, so several parameters (url, server, filename, directory) rely on name alone. The description adds no meaning about how directory/filename interact, what 'server' identifies, or how the auth override params behave, failing to compensate for the coverage gap.

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

Purpose4/5

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

The description states a specific verb and resource ('Download a remote URL') and clarifies the destination is 'onto the server', which distinguishes it from a local download. It does not, however, differentiate itself from siblings like files_download_url or files_upload_url.

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

Usage Guidelines2/5

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

There is no guidance on when to use this instead of files_download_url, files_upload_url, or files_write, nor on prerequisites such as panel selection or authentication. The agent must infer usage entirely from the name and schema.

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

files_readRead file contentsA

Read the raw contents of a file. Use for text/config files; large or binary files are better downloaded.

NameRequiredDescriptionDefault
fileYesAbsolute path, e.g. /server.properties
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. "Raw contents" usefully signals verbatim, unparsed output, but it says nothing about permissions, size limits, encoding, or error behavior for missing files.

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

Conciseness5/5

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

Two short sentences with no padding; the core action is front-loaded and the caveat follows immediately.

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

Completeness3/5

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

There is no output schema, and the description says only "raw contents" without indicating return shape or handling of large/truncated responses. For an unannotated read tool with 6 params, a bit more behavioral detail would help.

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

Parameters3/5

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

Schema description coverage is 83%, so path format and panel/key overrides are already documented inline. The description adds no meaning beyond that, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource (read raw file contents) in the first sentence, which cleanly separates it from list/write/delete siblings in the files_* family. It does not explicitly differentiate from files_download_url, which overlaps in intent.

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

Usage Guidelines4/5

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

"Use for text/config files; large or binary files are better downloaded" gives both a when-to-use and a when-not-to-use condition, steering the agent toward the download sibling for binaries. The alternative isn't named by tool name, so routing requires inference.

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

files_renameRename or move a fileC

Rename or move a file/directory within the server. Paths are relative to root.

NameRequiredDescriptionDefault
toNoSingle rename: new name. Or use files.
fromNoSingle rename: current name. Or use files.
rootNoDirectory the paths are relative to (default /).
filesNoSeveral renames at once, names relative to root.
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden for a mutating tool. It states the basic scope but does not disclose overwrite behavior, permission requirements, atomicity, batch semantics, 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.

Conciseness5/5

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

Two short sentences, front-loaded with the primary action, with no filler. Every sentence contributes directly to the stated purpose.

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

Completeness2/5

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

For a 9-parameter mutating file tool with no annotations or output schema, the description is thin. It omits mention of batched renames via the 'files' array, panel targeting, and inline credential overrides, leaving the agent reliant entirely on the schema.

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

Parameters3/5

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

Schema description coverage is high (89%), so the schema already documents parameters like root, from, to, and files. The description only repeats that paths are relative to root and adds no new meaning beyond the schema.

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

Purpose4/5

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

States a specific verb+resource ('Rename or move a file/directory') and adds scope ('within the server', 'relative to root'). It does not distinguish itself from siblings such as files_copy or server_rename, but the core operation is clear.

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

Usage Guidelines2/5

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

No guidance on when to use this instead of alternatives like files_copy, files_mkdir, or server_rename. The description gives no conditions, prerequisites, or exclusions.

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

files_upload_urlGet a file upload URLB

Return a one-time signed URL to upload files to the server. directory is appended to the signed URL, because Wings reads the target folder from it and the panel's own response ignores it.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
directoryNoTarget folder, e.g. /plugins. Default is the server root.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose a genuinely non-obvious trait — the URL is one-time and the directory is appended because Wings reads the folder from the query string while the panel response ignores it. But it omits the HTTP method/headers to use against the signed URL, the expiry window, and size or path constraints, which are essential to invoke it correctly.

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

Conciseness4/5

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

Two sentences, front-loaded with the core purpose; the second sentence is dense but every clause about the directory quirk earns its place. Nothing redundant.

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

Completeness3/5

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

For a 6-parameter, no-annotation, no-output-schema tool, the definition names the return value (a signed URL) but never describes its shape or the follow-up upload steps. Adequate to identify the tool, insufficient to complete the upload flow without trial and error.

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

Parameters4/5

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

Schema coverage is 83%, so the schema does most of the work. The description nonetheless adds real meaning for `directory` by explaining that it is appended to the signed URL and why, which goes beyond the schema's 'Target folder, e.g. /plugins' text.

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

Purpose4/5

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

States a specific verb+resource: returns a one-time signed URL for uploading files to the server. This clearly distinguishes it from files_download_url and the other file siblings, though it never explicitly names an alternative.

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

Usage Guidelines2/5

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

No guidance on when to use this versus files_write, files_pull, or files_download_url, and no stated prerequisites (auth, panel selection, whether the target directory must already exist). An agent must infer the whole workflow.

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

files_writeWrite file contentsB

Write raw content to a file, creating or overwriting it.

NameRequiredDescriptionDefault
fileYes
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
contentYes
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It does disclose the key mutation behavior that the file is created or overwritten, which is valuable. However, it omits permission requirements, response behavior, size or encoding limits, and whether parent directories are created.

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

Conciseness5/5

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

The description is a single efficient sentence with the main action and overwrite behavior front-loaded. There is no wasted text.

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

Completeness2/5

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

For a seven-parameter mutation tool with no annotations and no output schema, the description is too thin. It does not explain required server/panel context, authentication overrides, overwrite implications, or what happens after writing.

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

Parameters2/5

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

Schema description coverage is only 57%, and several parameters such as server, file, and content have no schema descriptions. The tool description does not clarify the meaning or role of these parameters, nor does it explain panel, baseUrl, clientKey, or applicationKey overrides.

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

Purpose4/5

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

The description states a specific verb and resource: write raw content to a file. It also adds the important scope detail that the operation creates or overwrites the file. However, it does not explicitly distinguish this tool from nearby file operations such as files_upload_url or files_pull.

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

Usage Guidelines2/5

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

The description does not say when to use files_write instead of related tools like files_upload_url or files_pull. There is no guidance on prerequisites, alternatives, or when-not to use this direct-content write path.

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

network_assignAssign an allocationB

Request a new allocation. With no ip/port the next available one is auto-assigned.

NameRequiredDescriptionDefault
ipNo
portNo
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full behavioral burden. It implies a mutation but says nothing about required permissions, what happens when the requested ip/port is already taken, whether the allocation is reversible, or what the tool returns. For a write operation with zero annotation coverage this is a meaningful gap.

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

Conciseness4/5

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

Two short sentences with the core behavior front-loaded and no filler. It is efficient though arguably too terse for a 7-parameter mutation tool.

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

Completeness2/5

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

With 7 parameters, no annotations, and no output schema, the description should explain return shape, error behavior on conflicting ip/port, and how the panel/override parameters interact. None of that is present, so an agent must infer most of the calling contract.

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

Parameters3/5

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

Schema coverage is 57%, and the description adds the one piece of semantics the schema lacks: omitting ip/port triggers auto-assignment of the next free allocation. It adds nothing about the server, panel, or inline override parameters (baseUrl/clientKey/applicationKey), leaving those to their schema descriptions.

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

Purpose4/5

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

The description uses a clear verb+resource ('Request a new allocation') that identifies the operation as creating an allocation, which implicitly distinguishes it from siblings like network_list, network_delete, and network_set_primary. However, it never ties the action to the required 'server' scope or explicitly names a sibling, so the differentiation is left to inference.

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

Usage Guidelines3/5

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

'With no ip/port the next available one is auto-assigned' gives a genuine usage rule for the optional parameters, which implies when to omit them. But there is no guidance on when to use this versus network_list/network_set_primary, and no prerequisites (panel resolution, permissions) are stated.

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

network_deleteDelete an allocationC

Unassign an allocation from the server.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
allocationYes
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full disclosure burden; it only implies a mutation via 'unassign'. It says nothing about reversibility, required API permission level (admin vs subuser), whether the allocation must be in a particular state, or side effects on server networking.

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

Conciseness3/5

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

A single front-loaded sentence with no padding is structurally efficient, but at this brevity it reads as under-specification rather than genuine conciseness given a 6-parameter mutation tool.

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

Completeness2/5

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

For a destructive, unannotated, multi-parameter network mutation with no output schema, one sentence is far from complete; key facts about permissions, state requirements and result are absent.

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

Parameters2/5

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

Schema coverage is 67%, and the description adds no parameter meaning beyond the schema. The two required parameters ('server' and 'allocation') are undocumented in both schema and description, so the agent gets no clue what format an allocation identifier takes or how server is identified.

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

Purpose4/5

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

The description names a specific verb ('unassign') and resource ('allocation') scoped to a server, and usefully clarifies that the tool's 'delete' semantics mean unassigning rather than removing a record. It stops short of naming or contrasting the sibling network_assign, so differentiation is implied rather than stated.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus network_assign, network_set_primary, or network_list, and no prerequisites (e.g., whether the allocation must be unassigned from the primary first). The agent must infer usage entirely from the verb.

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

network_listList allocationsC

List the server's network allocations (IP/port assignments).

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It implies a non-mutating read via 'List', but says nothing about permission requirements, pagination, ordering, or what happens if the server has no allocations. The parenthetical clarifies terminology but adds little behavioral context.

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

Conciseness4/5

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

A single front-loaded sentence that states the core action and clarifies the resource terminology. There is no padding, but also no structure beyond the one line.

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

Completeness2/5

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

With no annotations, no output schema, and five parameters, the description should do more: it never describes the shape of returned allocations, whether results are read-only scoped, or how panel/baseUrl/clientKey resolution interacts with 'server'. The one-line statement leaves critical calling context unstated.

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

Parameters3/5

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

Schema description coverage is 80%, so the baseline is 3 even though the description explains no parameters. Notably, the required 'server' parameter has no schema description and the description does not compensate for that gap.

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

Purpose4/5

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

The description gives a specific verb and resource ('List the server's network allocations') and clarifies what an allocation is ('IP/port assignments'). It is clearly a read operation, distinguishable from mutating siblings like network_assign, network_set_primary, and network_delete, though it never names them.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus siblings such as server_get or network_assign, and no mention of prerequisites (e.g. panel selection or API key requirements) despite five parameters covering those concerns. The list semantics imply read-only usage, but that inference is all an agent gets.

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

network_set_notesSet allocation notesC

Update the notes on an allocation.

NameRequiredDescriptionDefault
notesYes
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
allocationYes
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It says 'Update' but does not disclose permissions required, whether existing notes are replaced, whether changes are persisted, or what the response looks like.

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

Conciseness4/5

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

The description is a single front-loaded sentence with no wasted words. It is efficient, though its brevity leaves important invocation context unstated.

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

Completeness2/5

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

With seven parameters, three required fields, panel/auth overrides, no annotations, and no output schema, the description is too sparse. It identifies the mutation target but omits enough operational context that an agent could misinvoke the tool.

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

Parameters2/5

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

Schema coverage is only 57%, and the description mentions only notes and allocation indirectly. It does not clarify the roles of server, panel, baseUrl, clientKey, or applicationKey, so it fails to compensate for the undocumented parameters.

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

Purpose4/5

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

The description states a clear verb and resource: update the notes on an allocation. It is specific enough for an agent to understand the core operation, but it does not distinguish this tool from sibling network tools such as network_assign or network_set_primary.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The agent must infer that this is the tool for changing allocation notes from the name alone.

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

network_set_primarySet primary allocationC

Mark an allocation as the server's primary.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
allocationYes
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states the mutation but says nothing about side effects (does the previous primary get demoted?), required permissions, idempotency, or the response. For a write operation with zero structured safety hints, this is a significant gap.

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

Conciseness3/5

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

The single sentence is front-loaded and free of fluff, but at seven words it is arguably undersized for a six-parameter mutation tool with no annotations. It is concise without being complete.

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

Completeness2/5

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

Given no annotations, no output schema, two undocumented required parameters, and an unstated side-effect profile, the description does not provide enough for an agent to invoke this confidently beyond the basic action.

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

Parameters2/5

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

Schema coverage is 67%, and the two required parameters, server and allocation, have no schema descriptions. The tool description adds no meaning to any parameter, so the agent gets no help on what an allocation identifier is or how it relates to a server.

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

Purpose4/5

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

The description gives a specific verb and resource: marking an allocation as the server's primary. That distinguishes it reasonably well from network_assign, network_list, and network_set_notes, though it never names those siblings explicitly.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as network_assign. The agent must infer the context entirely from the tool name.

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

panel_addAdd or update a panelA

Register a Pterodactyl panel by name with its base URL and API key(s). Persisted locally (chmod 600). Re-adding the same name updates it.

NameRequiredDescriptionDefault
nameYes
testNoValidate the key(s) against the panel before returning (default true).
baseUrlYes
clientKeyNoClient API key, starts with ptlc_
apiVersionNoPanel API major version: 1 (Pterodactyl 1.x) or 2 (2.0). Default auto detects it.
makeDefaultNo
applicationKeyNoApplication (admin) API key, starts with ptla_

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden and does disclose meaningful behavior: credentials are persisted locally with chmod 600 and repeated adds are upserts. It omits important mutation semantics — whether omitted keys on update are cleared or preserved, and whether makeDefault changes the active panel.

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

Conciseness5/5

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

Three short sentences, front-loaded with the action and followed by the two facts an agent most needs (local persistence, upsert). No filler.

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

Completeness3/5

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

For a 7-parameter, unannotated, no-output-schema mutation tool, the description covers purpose and storage semantics but leaves default-panel behavior and update/overwrite rules unexplained, which is where an agent is most likely to cause unintended credential loss.

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

Parameters3/5

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

Schema coverage is 57%; the description adds the semantic that name is the upsert key and that multiple API keys are accepted, which the schema does not state. However it says nothing about makeDefault or how test/apiVersion interact with the add, leaving the most ambiguous parameters to inference.

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

Purpose4/5

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

Uses a concrete verb and resource ('Register a Pterodactyl panel') and states the identifying inputs (name, base URL, API keys), plus the upsert behavior 'Re-adding the same name updates it.' It does not explicitly contrast with siblings like panel_use or panel_test, so an agent must infer that this is the registration step rather than the selection or validation step.

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

Usage Guidelines3/5

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

The 're-adding the same name updates it' line implies a legitimate update scenario, but there is no explicit when-to-use/when-not guidance and no pointer to panel_use (activate) or panel_test (validate keys). Usage is inferable but not stated.

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

panel_listList panelsA

List registered panels. API keys are masked.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It does disclose one non-obvious return behavior ('API keys are masked'), but it says nothing about read-only semantics, auth requirements, ordering, or whether unregistered/offline panels appear.

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

Conciseness4/5

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

Two short, front-loaded sentences with no filler. The masking note is worth its space, though it is the only piece of substance beyond restating the name.

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

Completeness3/5

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

For a simple no-arg list call the definition is serviceable, but with no output schema and no annotations the description could have said more about the returned panel fields or whether inactive panels are included. It is minimally complete rather than thorough.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4; there is nothing for the description to document and nothing misleading is claimed.

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

Purpose4/5

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

The description states a specific verb and resource ('List registered panels'), which is unambiguous against write-oriented siblings like panel_add, panel_use, and panel_remove. It does not explicitly name or distinguish itself from those siblings, which keeps it short of a 5.

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

Usage Guidelines3/5

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

Usage is only implied by 'List'; there is no statement of when to reach for this versus panel_test or panel_use, nor any preconditions. For a zero-parameter enumeration tool the intent is obvious enough that this is adequate rather than harmful.

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

panel_removeRemove a panelC

Delete a registered panel by name.

NameRequiredDescriptionDefault
nameYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full disclosure burden, and it says nothing beyond 'delete'. It does not state whether removal is irreversible, what happens to servers or backups associated with that panel, or whether elevated permissions are required — critical omissions for a destructive tool.

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

Conciseness4/5

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

A single six-word sentence that is front-loaded with the verb and free of filler. It is efficient, though its brevity reflects under-specification rather than tight editing.

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

Completeness2/5

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

For a destructive mutation with zero annotation coverage, no output schema, and undocumented parameters, the description should do substantially more — irreversibility, side effects on related servers, and failure modes are all absent. An agent could not safely predict the consequences of calling this.

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

Parameters2/5

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

Schema description coverage is 0%, so the schema only reveals that 'name' is a required string. The description's 'by name' adds only the mild clarification that the panel is identified by its registered name rather than an ID, with no format, casing, or naming-convention details.

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

Purpose4/5

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

States a specific verb and resource ('Delete a registered panel') plus the lookup key ('by name'), so the agent knows exactly what operation this performs and against what object. It does not explicitly contrast itself with siblings like panel_add or panel_list, but the destructive verb makes the distinction obvious.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus alternatives, no prerequisites (e.g. whether the panel must first be unused or unreferenced by servers), and no warning about consequences. The agent is left to infer the entire call context from the name alone.

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

panel_testTest panel credentialsB

Check which API keys work for a panel by making a lightweight request to each API.

NameRequiredDescriptionDefault
nameNo

TDQS

B3.2/5.0
Behavior3/5

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

No annotations exist, so the description carries the whole burden. It usefully discloses that real network requests are made ('lightweight request to each API'), which signals cost and non-destructiveness, but says nothing about what happens on partial failure, whether it reports per-key results, whether it is rate-limited, or what output it returns.

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

Conciseness4/5

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

One front-loaded sentence with no filler and the mechanism stated immediately. Slightly ambiguous wording ('each API' when there is one panel parameter) costs it the top mark.

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

Completeness3/5

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

For a simple one-optional-param diagnostic tool with no output schema, the description is close but not sufficient: the role of 'name', the behavior when it is omitted, and the shape of the diagnostic result are all unstated, and with no output schema the description is the only place result semantics could be conveyed.

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

Parameters2/5

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

Schema description coverage is 0% for the single 'name' parameter, and the description never mentions it at all. It is unclear whether 'name' selects one panel, whether omitting this optional parameter tests every configured panel, or what the string refers to — the description does not compensate for the total coverage gap.

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

Purpose4/5

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

States a specific verb (check/test), a specific resource (API keys for a panel) and the mechanism (lightweight request to each API). This is enough to distinguish it from the sibling set (panel_add, panel_use, panel_list), though the description never names those siblings explicitly and the term 'API keys' differs slightly from the title's 'credentials'.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is a verification step, presumably before or after panel_add/panel_use, but the description never says when to prefer it, that it should follow panel_add, or that panel_list is a different (non-verifying) operation.

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

panel_useSet active panelB

Set the active panel for this session. Tools called without an explicit panel arg use it.

NameRequiredDescriptionDefault
nameYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden and does disclose the key behavioral trait: this mutates session-scoped default state rather than a server resource, and it affects subsequent tool calls. It omits whether the setting persists beyond the session, whether an unknown name errors, and whether validation is delegated to panel_test.

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

Conciseness5/5

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

Two short sentences, the primary effect first and the consequence second. Nothing is wasted and nothing important is buried.

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

Completeness3/5

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

For a one-parameter session-state tool with no annotations or output schema, the description covers the essential effect but leaves the practical gaps: valid name source, error behavior on unknown panels, and session lifetime. Adequate but not complete enough to call it confidently without trial.

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

Parameters2/5

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

Schema coverage is 0% — the single 'name' parameter has no type-level documentation beyond being a required string. The description adds nothing about what name refers to (a panel identifier from panel_list?), its format, or whether it must already exist, so the agent learns no more than the parameter label implies.

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

Purpose4/5

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

The description gives a specific verb and resource ('Set the active panel') plus the scope ('for this session'), which distinguishes it from sibling state-mutating panel tools like panel_add/panel_remove. It doesn't explicitly contrast itself with panel_list or panel_test, so an agent must infer the boundary rather than being told.

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

Usage Guidelines3/5

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

'Tools called without an explicit panel arg use it' implies when the tool matters, but there is no explicit 'call this before X' instruction, no precondition that the panel must exist, and no mention of how to discover valid names (panel_list). Usage is implied rather than stated.

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

permissions_listList permission keysA

List all available subuser permission keys (use with subuser_create).

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden; "List" does imply a read-only, side-effect-free operation, which is the main thing an agent needs. However, it doesn't disclose that results may be scoped by the panel credentials resolved from the four connection parameters, nor anything about result shape or size.

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

Conciseness5/5

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

A single tight sentence with the resource named first and the usage hint second. Nothing is wasted and nothing important is buried.

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

Completeness3/5

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

Parameters are fully covered by the schema, but with no output schema and no annotations, the description leaves the agent guessing what a permission key looks like (string identifier vs. object) and whether the list varies by panel. For a zero-required-arg lookup tool this is acceptable but thin.

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

Parameters3/5

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

Schema description coverage is 100%, so all four connection parameters (panel, baseUrl, clientKey, applicationKey) are already documented in the schema. The description adds no additional parameter semantics, which is acceptable at baseline when the schema is this complete.

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

Purpose4/5

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

States a specific verb and resource — listing available subuser permission keys — and ties itself to subuser_create, which separates it from the CRUD siblings like subuser_list and subuser_get. It doesn't explicitly say it is the lookup companion for subuser_update or subuser_set_files, but the purpose is unambiguous.

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

Usage Guidelines3/5

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

The parenthetical "use with subuser_create" gives implied usage context, but there is no explicit when-to-call framing, no statement that it takes no required arguments, and no mention of the other subuser mutation tools that also consume permission keys.

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

schedule_createCreate a scheduleC

Create a schedule with a cron expression.

NameRequiredDescriptionDefault
hourYes
nameYes
monthYes
panelNoName of a saved panel. Omit to use the active or default panel.
minuteYesCron minute, e.g. "0" or "*/5".
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
is_activeNo
day_of_weekYes
day_of_monthYes
applicationKeyNoInline application API key (ptla_…) override. Not persisted.
only_when_onlineNo

TDQS

C2.4/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full behavioral burden, and it discloses nothing: not whether creation is idempotent, not what permissions or panel-level API keys are required, not that inline baseUrl/clientKey/applicationKey overrides are transient, and not that the schedule is empty until tasks are added. A single sentence for a mutation tool with 13 parameters and zero annotation coverage leaves behavior almost entirely opaque.

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

Conciseness3/5

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

The single sentence is front-loaded and wastes no words, but the brevity comes from omission rather than efficiency. There is no structure to speak of because there is essentially no content beyond the verb and one attribute.

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

Completeness2/5

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

For a 13-parameter, 7-required mutation tool with no annotations and no output schema, the description should explain scope, required cron fields, credential overrides, and what is returned. It supplies only a cron hint, so an agent would have to infer nearly everything from the schema property names alone.

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

Parameters2/5

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

Schema description coverage is only 38%, so the description must compensate and largely does not. The phrase 'cron expression' does implicitly map minute/hour/day_of_month/month/day_of_week to cron syntax, which is genuine added meaning for five undocumented fields, but required params like server and name, plus is_active and only_when_online, are left with no semantic explanation anywhere.

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

Purpose4/5

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

States a specific verb (Create) and resource (schedule) plus one defining attribute (cron expression), which is enough to separate it from schedule_list, schedule_get, schedule_update and schedule_delete. It does not say the schedule is server-scoped or that creating it is only the container step before adding tasks, so the purpose is clear but shallow.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance and no named alternatives. An agent gets no hint about prerequisites (a valid server identifier, panel context, valid cron semantics) or about the follow-up call to schedule_task_create needed to make the schedule useful.

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

schedule_deleteDelete a scheduleC

Delete a schedule and its tasks.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
scheduleYes
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full burden for a destructive mutation. It usefully discloses that tasks are deleted along with the schedule, but it does not mention irreversibility, confirmation requirements, permissions, or missing-resource behavior.

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

Conciseness5/5

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

The definition is a single, front-loaded sentence with no redundant text. It is appropriately sized for its information content, even though more information would be needed for completeness.

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

Completeness2/5

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

For a destructive tool with no annotations, no output schema, and six parameters, the description is too sparse. It leaves required parameters and safety-critical behavior undocumented, so an agent lacks enough context to invoke it responsibly.

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

Parameters2/5

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

Schema coverage is 67%, and critically the two required parameters, server and schedule, are undocumented in the schema. The description only implies that a schedule identifier is needed and adds no meaning for server or the authentication override parameters.

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

Purpose4/5

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

The description states a specific verb and resource: delete a schedule. Adding 'and its tasks' signals a cascade scope that helps distinguish it from schedule_task_delete, though no sibling is named explicitly.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as schedule_update or schedule_task_delete. The action is inferable from the name, but the description provides no 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.

schedule_executeRun a schedule nowC

Trigger a schedule to run immediately.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
scheduleYes
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. 'Run immediately' does convey that this is a one-off execution rather than a reschedule, but it omits whether the call blocks or returns async, whether it returns run output, whether it requires write permission, and whether the run is recorded in schedule history.

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

Conciseness3/5

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

A single short sentence that is front-loaded, but it is under-specified rather than lean — the brevity comes at the cost of missing behavior and target-resolution detail.

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

Completeness2/5

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

Six parameters, no output schema, no annotations, and an execution-triggering action: the description says nothing about response shape, side effects, or how the two undocumented required parameters resolve. For a mutation/trigger tool this is a substantial gap.

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

Parameters2/5

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

The two required parameters, server and schedule, have no schema descriptions at all, and the description supplies nothing about their format (IDs vs names) or how they identify the target. Only the four optional override parameters are documented in the schema, so the description leaves the critical inputs undefined.

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

Purpose3/5

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

It states a verb-plus-resource (trigger a schedule) and adds the 'immediately' modifier, which distinguishes it from schedule_create/update. But the phrasing is nearly a restatement of the title 'Run a schedule now' and gives no detail on targeting a specific schedule on a specific server.

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

Usage Guidelines2/5

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

No guidance on when to use this versus schedule_list/schedule_get (to inspect first) or schedule_task_create, and no prerequisite stated — e.g. that the schedule must already exist and be enabled on the server. The agent must infer whether this causes a one-off manual run or persists anything.

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

schedule_getGet a scheduleC

Get one schedule and its tasks.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
scheduleYes
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about read-only safety, permission requirements, error behavior for a missing schedule, or how the panel/server resolution works. The only disclosure is that tasks are included in the result.

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

Conciseness4/5

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

A single short sentence with the resource front-loaded and no wasted words. It is efficient, though the brevity contributes to the specification gaps noted elsewhere.

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

Completeness2/5

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

For a 6-parameter tool with no annotations and no output schema, the description is too thin: it does not explain the panel-resolution fallback, the inline credential overrides, or what the returned schedule/task structure contains. An agent would have to guess at several call-shaping details.

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

Parameters2/5

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

Schema coverage is only 67%, and the two required parameters ('server' and 'schedule') have no descriptions in either the schema or the description. The description adds no meaning about their format, allowed values, or how the optional panel/baseUrl/clientKey overrides interact with them.

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

Purpose4/5

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

Specific verb ('Get') plus a specific resource ('one schedule'), and it adds that the related tasks are returned. This implicitly separates it from schedule_list and the schedule_task_* tools, though it never names a sibling explicitly.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance, no mention of the prerequisite that a server and schedule identifier must already be known, and no pointer to schedule_list or schedule_task_* as alternatives. Usage is only inferable from the word 'one'.

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

schedule_listList schedulesC

List the server's scheduled tasks.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, but it only implies a read operation. It does not disclose authentication needs, pagination behavior, return shape, or how panel/clientKey/baseUrl overrides affect the request.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It is terse, but that terseness is efficient rather than padded.

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

Completeness2/5

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

The tool has five parameters, including required server and several override options, plus no annotations or output schema. A one-sentence description is not enough to explain scoping, return values, or the role of the panel and API key overrides.

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

Parameters3/5

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

Schema coverage is high at 80%, and the schema already documents the optional panel and override parameters. The description adds only the notion that schedules belong to a server and does not clarify the required server parameter or the override semantics beyond what the schema states.

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

Purpose4/5

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

The description states a specific verb ('List') and resource ('scheduled tasks') scoped to a server, so the basic operation is clear. However, it does not distinguish this tool from siblings like schedule_get or explain whether it returns full schedule details or only a summary.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus schedule_get, schedule_execute, or the task-level schedule tools. The agent can infer that it lists schedules, but no alternatives, prerequisites, or exclusions are provided.

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

schedule_task_createAdd a task to a scheduleC

Add a task. action is command, power, or backup; payload is the command, power signal, or ignored globs.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
actionYes
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
payloadNo
scheduleYes
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
sequence_idNoPosition in the schedule.
time_offsetYesSeconds after the previous task.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.
continue_on_failureNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full behavioral burden and does not meet it: it says nothing about permissions needed, ordering/append semantics, what happens on failure (continue_on_failure is unmentioned), or whether the call is idempotent. It only clarifies action/payload value mapping.

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

Conciseness4/5

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

Two tight sentences with no filler, and the action/payload mapping is front-loaded immediately after the verb. It is efficient, though its brevity is closer to under-specification than true economy given an 11-param tool.

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

Completeness2/5

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

For an 11-parameter mutation tool with no annotations and no output schema, the description is substantially incomplete — required params like server, schedule, and time_offset and the ordering semantics of sequence_id are never addressed. It explains only the action/payload pairing.

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

Parameters2/5

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

The description does add real value for two undocumented params — action's three modes and payload as "command, power signal, or ignored globs" (payload has no schema description). But with 11 parameters at 55% coverage, it says nothing about server, schedule, time_offset, sequence_id, continue_on_failure, or the inline override params, leaving the majority of the surface unexplained.

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

Purpose3/5

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

"Add a task" gives a verb and object, but it only restates the title and never says the task is appended to an existing schedule — the key distinction from sibling schedule_create. An agent must infer the schedule-create vs schedule-task-create split from names alone.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus schedule_create, schedule_task_update, or schedule_execute, and no prerequisites (e.g., that the target schedule must already exist, or how time_offset/sequence_id order tasks). Usage is only implied by the name.

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

schedule_task_deleteDelete a schedule taskC

Remove a task from a schedule.

NameRequiredDescriptionDefault
taskYes
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
scheduleYes
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. 'Remove' implies a destructive mutation, but it does not disclose irreversibility, required permissions, what happens to the parent schedule, or what the response contains.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no wasted words. It is concise, though its brevity contributes to gaps covered in other dimensions rather than to structural clarity.

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

Completeness2/5

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

For a destructive tool with seven parameters, no annotations, no output schema, and incomplete schema descriptions, the one-sentence description is too sparse. It omits safety, authentication, target identification, and result expectations.

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

Parameters2/5

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

The description adds no parameter-level meaning beyond the operation itself. Schema coverage is only 57%, and the required parameters server, schedule, and task have no schema descriptions, so the agent must infer how to identify the target schedule task.

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

Purpose4/5

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

The description states a specific verb and resource: remove a task from a schedule. It distinguishes the operation from schedule_delete by saying it removes a task rather than the whole schedule, though it does not explicitly name sibling tools as alternatives.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus schedule_delete, schedule_task_update, or schedule_task_create. No prerequisites, permissions, or conditions for use are provided.

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

schedule_task_updateUpdate a schedule taskD

Update a task within a schedule.

NameRequiredDescriptionDefault
taskYes
panelNoName of a saved panel. Omit to use the active or default panel.
actionYes
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
payloadNo
scheduleYes
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
sequence_idNo
time_offsetYes
applicationKeyNoInline application API key (ptla_…) override. Not persisted.
continue_on_failureNo

TDQS

D1.5/5.0
Behavior1/5

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

No annotations are provided, so the description carries the entire behavioral burden, and it discloses nothing about mutation semantics: which fields are overwritten vs. preserved, whether omitting optional fields clears them, or what permissions/credentials are needed. For a write operation over 12 parameters this is a complete gap.

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

Conciseness2/5

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

The single sentence is short with no filler, but its brevity is under-specification rather than conciseness — it fails to convey anything an agent needs before calling a 5-required-parameter mutation tool.

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

Completeness1/5

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

With 12 parameters, 5 required, an enum, no annotations, and no output schema, this definition gives the agent nothing to work with. It cannot determine how to identify the task, what the action enum means, or what the offset is relative to.

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

Parameters1/5

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

Only 33% of the 12 parameters have schema descriptions, so the description must compensate, yet it names zero parameters. Nothing explains the action enum (command/power/backup), time_offset, sequence_id, continue_on_failure, or the inline override fields.

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

Purpose2/5

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

The description 'Update a task within a schedule' is essentially the tool name/title (schedule_task_update / 'Update a schedule task') reworded. It adds no scope, no indication of what 'update' modifies (action, payload, timing, sequence), and does not distinguish it from schedule_task_create or schedule_task_delete in the sibling set.

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

Usage Guidelines2/5

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

There is no when-to-use guidance at all: no statement of prerequisites (existing schedule and task required), no mention of the create/delete/execute siblings, and no note on when an update is preferred over deleting and re-creating the task.

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

schedule_updateUpdate a scheduleC

Update a schedule. Pterodactyl requires the full cron expression and name on update.

NameRequiredDescriptionDefault
hourYes
nameYes
monthYes
panelNoName of a saved panel. Omit to use the active or default panel.
minuteYesCron minute, e.g. "0" or "*/5".
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
scheduleYes
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
is_activeNo
day_of_weekYes
day_of_monthYes
applicationKeyNoInline application API key (ptla_…) override. Not persisted.
only_when_onlineNo

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It discloses one important constraint, that Pterodactyl requires the full cron expression and name on update, but omits permissions/auth needs, mutation side effects, handling of omitted optional fields, and reversibility.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the action and immediately followed by a key platform constraint. There is no wasted wording.

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

Completeness2/5

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

For a 14-parameter mutation tool with no annotations and no output schema, the description is substantially incomplete. It adds a useful update constraint but does not explain most parameters, auth overrides, side effects, or which schedule fields behave how.

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

Parameters2/5

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

Schema description coverage is only 36%, so the description should compensate by explaining parameter meaning. It mentions only full cron expression and name requirements and leaves server, schedule, hour, day_of_month, month, day_of_week, is_active, only_when_online, and auth/panel override parameters unexplained.

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

Purpose4/5

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

The description states a clear verb and resource: "Update a schedule." This distinguishes it from schedule_list, schedule_get, schedule_delete, and schedule_execute, but it does not explicitly differentiate schedule_update from the sibling schedule_task_update.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives such as schedule_task_update or schedule_create. The only additional note is a platform requirement about full cron expression and name, which is operational context rather than usage routing.

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

server_activityServer activity logC

Get the server's activity log.

NameRequiredDescriptionDefault
pageNo
sortNotimestamp; prefix - for descending.
eventNoFilter by event name, e.g. server:power.start.
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
includeNoe.g. actor
perPageNo
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, but it only implies a read operation via 'Get'. It does not disclose pagination defaults, sorting behavior, required permissions, return format, or what activity events include.

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

Conciseness4/5

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

The description is a single front-loaded sentence with zero filler. It is appropriately concise, though it provides little structure beyond the title.

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

Completeness2/5

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

For a 10-parameter read tool with no annotations and no output schema, one sentence is insufficient; pagination, filtering, panel/key overrides, and return shape are unexplained. The schema partially covers parameters but not behavioral context.

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

Parameters2/5

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

Schema description coverage is 70%, with descriptions for sort, event, panel, baseUrl, include, clientKey, and applicationKey, but the description adds no meaning for any parameter and leaves page/server undocumented. It does not compensate for the remaining coverage gap.

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

Purpose4/5

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

States a specific verb ('Get') and resource ('server's activity log'), and the server scope distinguishes it from account_activity and general server_console_tail. It does not explicitly name alternatives, but the resource scope is enough for basic selection.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance, prerequisites, or comparison to account_activity or server_console_tail. An agent must infer that this is for server-scoped activity rather than account-wide activity or console-tail use.

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

server_commandSend console commandC

Send a command to a running server's console. The server must be online.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
commandYes
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses only the online prerequisite; it does not say whether the command executes synchronously, whether its console output is returned (no output schema exists), whether arbitrary console commands can be destructive, or what permissions/API key scope 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.

Conciseness4/5

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

Two short sentences, front-loaded with the action, and both earn their place. It is efficient, though arguably too terse for a 6-parameter mutation tool - a deficiency better scored under completeness.

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

Completeness2/5

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

For a 6-parameter, annotation-free command-execution tool with no output schema, the description is insufficient. It says nothing about the return value (command output?), error behavior for offline servers, side effects of arbitrary commands, or how the inline key/panel overrides interact with the active panel.

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

Parameters2/5

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

Schema coverage is 67%, and the two undocumented parameters are the REQUIRED ones: server and command. The description adds nothing about their format or meaning beyond the phrase 'server's console'. The four optional panel/override parameters are described only in the schema, so the description contributes no semantic value over it.

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

Purpose4/5

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

States a specific verb and resource: 'Send a command to a running server's console.' This distinguishes it from siblings like server_console_tail (read logs) and server_power (lifecycle control) without naming them. Clear but no explicit sibling differentiation.

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

Usage Guidelines3/5

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

The prerequisite 'The server must be online' is useful and tells the agent a precondition. However, there is no guidance on when to use this versus server_power for start/stop, or versus server_console_tail for observing output, leaving the agent to infer usage.

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

server_console_tailTail server consoleA

Open the console WebSocket, replay recent output and collect live output for a few seconds, then return it as text. The server should be running.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
secondsNoCapture window (default 5).
maxLinesNoStop after this many lines (default 200).
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description must carry behavioral disclosure. It usefully describes the operational sequence: opening a WebSocket, replaying recent output, collecting live output for a few seconds, and returning text. However, it omits whether the operation is read-only, what permissions or keys are needed, and any error or rate-limit behavior.

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

Conciseness5/5

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

Two sentences with no wasted words. The core action is front-loaded, and the prerequisite is stated compactly afterward.

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

Completeness3/5

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

The description covers the capture mechanics and return type broadly, but with no output schema and seven parameters, it does not explain the shape or limits of the returned text. It is adequate but leaves meaningful gaps for an agent to infer.

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

Parameters3/5

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

Schema description coverage is 86%, well above the 80% baseline, so the schema already documents the parameters thoroughly. The description adds no parameter-specific meaning beyond the behavioral context, making 3 the appropriate baseline.

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

Purpose4/5

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

The description states a specific verb-and-resource action: open the console WebSocket, replay recent output, collect live output, and return text. It is clear what the tool does, though it does not explicitly differentiate itself from nearby siblings such as server_activity or server_command.

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

Usage Guidelines3/5

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

It provides one useful prerequisite, 'The server should be running,' but gives no guidance on when to use this versus alternatives like server_activity, server_command, or files_read for logs. Usage is implied by the console-tail purpose rather than explicitly guided.

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

server_docker_imageSet Docker imageB

Change the server's Docker image (must be one allowed by its egg).

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
docker_imageYes
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are supplied, so the description carries full behavioral burden; it does disclose a real validation precondition (image must be permitted by the server's egg), which prevents a likely failure mode. It says nothing about required permissions, whether the server must be stopped or restarted afterward, effect on existing container data, or whether the change persists immediately.

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

Conciseness5/5

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

A single front-loaded sentence with the action and its constraint, no filler. Every clause earns its place.

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

Completeness2/5

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

For an unannotated mutation tool with two undocumented required parameters and no output schema, the description is thin. It omits prerequisites, post-change effects (restart, reinstall requirement), how to discover allowed images, and permission scope, leaving the agent to guess at the operational sequence.

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

Parameters3/5

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

Schema coverage is 67%, and the two required parameters (server, docker_image) carry no schema descriptions. The description ties docker_image to the egg's allowed-image set, which is genuine semantic value, but adds no format guidance for the image string nor any indication of how the server is identified.

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

Purpose4/5

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

States a specific verb and resource: 'Change the server's Docker image', plus a scoping constraint about the egg. An agent can tell this mutates the image rather than reading startup config or renaming the server. No explicit naming of a sibling to contrast with, so it stops short of 5.

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

Usage Guidelines3/5

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

The parenthetical 'must be one allowed by its egg' implies the agent should first resolve allowed images (plausibly via server_startup_get) before calling, but this is left implicit. There is no explicit when-to-use versus when-not-to-use statement or named alternative to consult.

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

server_getGet server detailsB

Get details for one server by its short identifier or UUID.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
serverYesServer short id or UUID.
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral disclosure burden. 'Get details' implies a read-only operation, but the description does not state authentication requirements, error behavior, or what kind of detail is returned.

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

Conciseness5/5

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

The description is a single front-loaded sentence with no wasted wording. It immediately states the action, scope, and lookup key.

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

Completeness3/5

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

For a simple read tool with rich parameter documentation, the description is minimally adequate. However, with no output schema and no annotations, it leaves return-value expectations and behavioral context underspecified.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents all five parameters including panel, server, baseUrl, clientKey, and applicationKey. The description only restates the required server identifier and adds no meaning beyond the schema.

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

Purpose4/5

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

The description uses a specific verb and resource: 'Get details for one server,' and identifies the lookup key as short identifier or UUID. It is clearly distinct from server_list, though it does not explicitly differentiate itself from closely related server detail tools such as server_resources.

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

Usage Guidelines2/5

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

The description states how to identify the server but gives no guidance on when to use this tool instead of alternatives like server_list or server_resources. It also does not mention prerequisites such as panel selection or authentication overrides.

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

server_listList serversB

List servers the client API key can access on the selected panel.

NameRequiredDescriptionDefault
pageNo
typeNoScope: owner (default, servers you own), admin (servers you can administer but do not own), admin-all (both). The admin scopes need a key with admin rights.
uuidNo
panelNoName of a saved panel. Omit to use the active or default panel.
filterNoFilter by server name.
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
perPageNo
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
descriptionNo
external_idNo
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

B3.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. 'List' implicitly conveys a read-only operation and the phrase 'the client API key can access' discloses the auth scoping, which is useful context. However, pagination behavior, default page size, and any considerations around the inline, non-persisted credential overrides are left undisclosed.

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

Conciseness4/5

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

A single front-loaded sentence with no wasted words; the resource is stated first and the access scope follows. It is efficient, though for an 11-parameter tool one sentence borders on under-specification rather than true conciseness.

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

Completeness2/5

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

With 11 parameters, no annotations, 55% schema coverage, and no output schema, a one-sentence description is not sufficient. Missing are pagination semantics, return shape (e.g., what identifying fields a server entry carries), and any note on how inline panel/clientKey overrides interact with the 'selected panel.'

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

Parameters3/5

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

Schema coverage is only 55%, so the description should compensate, but it adds meaning for just two concepts: the client API key (clientKey) and 'the selected panel' (panel, including the default-when-omitted behavior). It says nothing about page/perPage, the filter, or the type scopes, leaving roughly half the parameters undocumented in prose.

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

Purpose4/5

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

States a specific verb and resource ('List servers') plus a meaningful scope: only servers the client API key can access on the selected panel. An agent can infer it is distinct from server_get (single server) and panel_list (panels), but the description never names those siblings to make the distinction explicit.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this versus server_get (single-server fetch) or panel_list (enumerate panels), and no statement of when-not to use it. The only usage hint is the implicit scoping to the 'selected panel,' which the schema already conveys via the panel parameter.

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

server_powerSend power actionC

Send a power signal to a server: start, stop, restart, or kill.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
signalYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full disclosure burden. It labels the tool as sending a 'signal' but never says that stop may be graceful while kill is abrupt and potentially data-destructive, nor whether actions are reversible or require confirmation. For a mutation tool with a 'kill' option this is a meaningful gap.

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

Conciseness4/5

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

One short sentence, front-loaded with the action and resource, with the option list immediately after. Nothing is wasted, though there is little structure to speak of.

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

Completeness2/5

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

With no annotations, no output schema, and an enum containing a destructive 'kill' option, the description should explain effects and risk. It instead stops at naming the tool, which is not enough for an agent to invoke it safely.

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

Parameters2/5

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

Schema coverage is 67%, so the description should add meaning. It only restates the 'signal' enum already in the schema and says nothing about the semantics of each value or about the undocumented 'server' parameter, leaving the reader no better informed than the raw schema.

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

Purpose4/5

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

States a specific verb ('send a power signal') and resource ('a server') and enumerates the four signals. It distinguishes itself from console-style tools implicitly, though it never names a sibling such as server_command or server_reinstall to draw the line explicitly.

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

Usage Guidelines2/5

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

There is no guidance on when to use each signal versus the others, no mention of prerequisites or required permissions, and no indication of which sibling tool to prefer for non-power actions. The agent must infer everything about selection.

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

server_reinstallReinstall serverB

Trigger a server reinstall. This can wipe server files; use with care.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does disclose the critical destructive trait ('can wipe server files'), which is the single most important fact. But it omits whether data is recoverable, what a reinstall actually does to the container/OS, and what gets returned.

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

Conciseness4/5

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

Two short sentences with the action stated first and the danger warning second. Efficient, though 'use with care' is a soft filler phrase that could be replaced with concrete consequences.

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

Completeness3/5

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

For a destructive mutation tool with no annotations and no output schema, the description covers the key risk but leaves gaps: irreversibility, scope of what is wiped, and whether configuration/startup variables survive. Adequate but not complete.

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

Parameters3/5

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

Schema coverage is 80% and the panel/API-key overrides are documented in the schema. The description adds nothing about the required 'server' parameter or the credential overrides, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource: 'Trigger a server reinstall.' Clear and distinct from siblings like server_power or server_rename, though it never explicitly contrasts itself with them.

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

Usage Guidelines2/5

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

'use with care' is a warning, not guidance. It says nothing about when a reinstall is appropriate versus alternatives such as server_power (restart) or backup_restore, nor about prerequisites or required permissions.

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

server_renameRename serverC

Change the server's name and optionally its description.

NameRequiredDescriptionDefault
nameYes
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
descriptionNo
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full behavioral burden, yet it does not state whether the rename requires specific permissions, whether it is reversible, whether the server identifier changes, or what side effects occur. For a mutation tool with zero annotation coverage, this is a significant disclosure gap.

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

Conciseness4/5

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

A single efficient sentence with the key action front-loaded and no wasted words. It is terse but structurally sound; the missing detail belongs to other dimensions rather than being a failure of conciseness.

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

Completeness2/5

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

A seven-parameter mutation tool with no annotations, no output schema, and partial schema coverage needs more context than this. The description omits the connection/panel parameters and the server identifier argument, so an agent must rely entirely on the schema to call it correctly.

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

Parameters2/5

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

Schema coverage is only 57%, yet the description mentions only the name and description fields. It says nothing about the required server identifier, the panel selector, or the inline baseUrl/clientKey/applicationKey overrides, leaving half the parameters with no description-level explanation.

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

Purpose4/5

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

States a specific verb and resource: changing the server's name with optional description. An agent can tell what it does, though it doesn't distinguish this rename from any similarly named sibling operation or note that it's the server-level rename rather than a file rename.

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

Usage Guidelines2/5

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

Gives no guidance on when to use this versus alternatives, no prerequisites, and no exclusions. The only implied usage is 'rename a server,' which is already evident from the name and title.

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

server_resourcesGet server resource usageB

Current state and CPU / memory / disk / network usage for a server.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It indicates the data returned, but does not state that the operation is read-only, whether it has side effects, what permissions or panel credentials it needs, or any rate-limit behavior.

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

Conciseness5/5

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

The description is a single front-loaded sentence with no filler. It states the core resource and the metric categories efficiently.

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

Completeness3/5

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

For a modest read-style tool with 5 parameters, the description gives the minimum needed to understand the return content, and the schema covers most parameters. However, with no annotations and no output schema, it leaves gaps around safety, permissions, and the panel/credential override context.

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

Parameters3/5

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

Schema description coverage is 80%, so the schema already documents panel, baseUrl, clientKey, and applicationKey. The description adds no parameter-specific semantics beyond saying the result is for a server, which is already captured by the required server field.

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

Purpose4/5

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

The description clearly states the resource and the returned metrics: current state plus CPU, memory, disk, and network usage for a server. It does not explicitly distinguish this from siblings such as server_get, server_activity, or server_console_tail, so it falls short of a 5.

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

Usage Guidelines2/5

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

The description offers no when-to-use guidance, prerequisites, or alternatives. An agent must infer from the name and description alone that this is for resource telemetry rather than general server details or activity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

server_set_variableSet startup variableC

Set the value of a startup environment variable.

NameRequiredDescriptionDefault
keyYes
panelNoName of a saved panel. Omit to use the active or default panel.
valueYes
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full behavioral burden. It states that a value is set, but it does not disclose whether this overwrites existing variables, requires a restart, needs specific permissions, persists changes, or what side effects occur.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no redundant or filler text. It is concise and structurally efficient, although the same brevity contributes to gaps scored under other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with seven parameters, no annotations, and no output schema, this description is not complete enough. It omits prerequisites, alternatives, side effects, and any indication of what happens after the startup variable is set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 57%, and the description does not explain any of the seven parameters. In particular, the required server, key, and value parameters lack schema descriptions, and the description does not clarify their syntax, constraints, or relationship to the startup environment.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: 'Set the value of a startup environment variable.' It is clear what the tool does, but it does not distinguish this from the sibling server_startup_get or clarify scope, such as whether it creates new variables or only updates existing ones.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives such as server_startup_get, nor any prerequisites or exclusions. The verb 'Set' implies mutation, but the description offers no situational guidance beyond that implication.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

server_startup_getGet startup configB

Get the server's startup command and configurable variables.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, but it only states what is retrieved. It does not explicitly confirm that the operation is read-only, mention permission requirements, describe return formatting, or clarify that the listed variables can be modified via server_set_variable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is a single front-loaded sentence with no wasted wording. It communicates the core purpose immediately and does not bury useful information under filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives a partial return summary ('startup command and configurable variables'), which helps because no output schema exists. However, for a tool with five parameters and no annotations, it leaves out important context such as permissions, panel resolution behavior, and what the configurable variables represent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 80%, with panel, baseUrl, clientKey, and applicationKey already documented in the input schema. The description adds no parameter-specific meaning beyond implying the required 'server' parameter, so it remains at the baseline for high-coverage schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the verb 'Get' and the resource 'server's startup command and configurable variables,' which clearly identifies it as a startup-config reader rather than a general server-info tool. It does not explicitly differentiate itself from siblings like server_get or server_set_variable, but the resource is specific enough for an agent to recognize.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as server_get, server_resources, or server_set_variable. The description only implies usage through its name and does not state prerequisites, exclusions, or workflow context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

subuser_createInvite a subuserB

Add a user to the server by email with a set of permission keys (see permissions_list).

NameRequiredDescriptionDefault
emailYes
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
denyfilesNoSFTP-permissions addon: paths this subuser may not see or touch. Anything absent from the list stays readable, so treat it as a blocklist and keep it complete.
hidefilesNoSFTP-permissions addon: hide the denied paths outright instead of only blocking them.
permissionsYes
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full behavioral burden. It does not disclose whether an invitation email is sent, how duplicate emails are handled, required authorization, or other side effects of creating a subuser.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted language. It efficiently states the primary action and key inputs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nine-parameter mutation tool with no annotations and no output schema, the description is too sparse. It references permissions_list but does not cover invitation behavior, panel selection, inline credential overrides, or file-permission addons.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning for the email and permissions parameters and points to permissions_list for permission keys. With 67% schema description coverage and nine parameters, it leaves optional overrides and denyfiles/hidefiles semantics largely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: add a user to the server by email with permission keys. It clearly distinguishes creation from listing or deleting subusers, though it does not explicitly differentiate from subuser_update or subuser_set_files.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'Add a user' and the reference to permissions_list for permission keys. However, there is no explicit guidance on when to use this versus subuser_update, subuser_set_files, or what prerequisites are needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

subuser_deleteRemove a subuserC

Remove a user's access to the server.

NameRequiredDescriptionDefault
userYes
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey the behavioral profile. It implies a destructive mutation by saying 'Remove,' but does not disclose irreversibility, confirmation requirements, authorization needs, or what specifically is removed beyond server access.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. It is appropriately concise, though its brevity contributes to the broader completeness gap rather than being a structural flaw.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive six-parameter tool with no annotations and no output schema, the description is too thin. It should at least clarify deletion consequences, required identifiers, and whether the operation affects only server access or the subuser account itself.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 67%, and the description adds no format or semantic detail for the six parameters. It vaguely maps to the required user and server fields but does not clarify identifiers, panel selection, or override parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: removing a user's access to a server. It is clear enough to distinguish this from creation or update siblings, though it does not explicitly name subuser_delete versus subuser_update or subuser_set_files.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus related subuser tools, nor any prerequisites such as required permissions. The usage is only implied by the phrase 'Remove a user's access.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

subuser_getGet a subuserC

Get one subuser and their permissions.

NameRequiredDescriptionDefault
userYesSubuser UUID.
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does not disclose permission requirements, whether the call is read-only, what happens when the subuser is missing, or what the returned permission payload looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. It is efficient, though so brief that it borders on under-specification rather than being genuinely complete.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter, no-annotation, no-output-schema tool, the definition is minimal but the schema itself documents most inputs well. The missing pieces are read-vs-write semantics, auth expectations, and error/return behavior, which the description leaves unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 83%, so most parameters (user UUID, panel, baseUrl, keys) are already documented inline. The description adds no parameter-level meaning beyond implying that permissions are returned for the identified subuser, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get') and resource ('one subuser and their permissions'), which is more precise than the bare name. The word 'one' implicitly distinguishes it from the sibling subuser_list, but it never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this versus subuser_list, subuser_update, or subuser_set_files. The singular 'one subuser' hints at a single-record lookup, but the agent must infer that from the sibling list rather than reading it in the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

subuser_listList subusersC

List users with access to the server.

NameRequiredDescriptionDefault
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether the operation is read-only, what permissions are required, whether pagination or filtering applies, or what the response contains beyond the broad notion of listing users.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no redundant or filler text. It is appropriately concise, though very minimal; the score is 4 rather than 5 because it leaves essential context unaddressed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no output schema, the description covers the basic operation but omits return-value expectations, permission requirements, and any caveats. It is minimally adequate for an agent to invoke the tool, but not rich enough to predict what the result will contain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 80%, so the schema already documents most parameters such as panel, baseUrl, clientKey, and applicationKey. The description adds only that these users are tied to a server, but does not clarify the required server parameter's accepted format or how the optional overrides interact with it. The baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb ("List") and resource ("users with access to the server"), making the tool's purpose understandable. It does not explicitly differentiate from the sibling subuser_get tool or clarify that it returns all subusers rather than a single one, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus subuser_get, subuser_create, or other server-related list tools. The intent to enumerate subusers is only implied by the word "List"; no alternatives or exclusions are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

subuser_set_filesSet a subuser's file blocklistA

Set which files and directories a subuser may not touch, on panels carrying the sftp-permissions addon. This is a route of its own: the fields are read back by subuser_list but sending them to subuser_update does nothing. Patterns are gitignore syntax, matched by wings — '.jar' matches at any depth, a trailing slash means a directory, and '!' re-allows a path. Note that wings anchors every negation to the server root, so an exception has to name its full path: '!/plugins/AxVaults/messages.yml' works where '!/messages.yml' does not. A root admin bypasses the list entirely.

NameRequiredDescriptionDefault
userYesSubuser uuid, from subuser_list.
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
denyfilesYesBlocked patterns. Pass an empty array to clear the list.
hidefilesYesTrue hides the blocked paths from listings; false only refuses access.
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full load and delivers real behavior: addon prerequisite, wings-side matching semantics, negation anchoring to server root, and root-admin bypass. It stops short of stating that the deny list is replaced wholesale on each call and says nothing about auth scope, which is the main remaining gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The routing constraint and addon prerequisite come first, then syntax rules with concrete examples, then the root-admin caveat. Each sentence covers a distinct fact and none repeats schema or title content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter mutation tool with no annotations and no output schema, the description supplies the routing, prerequisite, and matching semantics an agent needs to call it correctly. The replacement-vs-merge behavior of denyfiles is only implied via the schema's 'empty array to clear' note.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 88%, so the baseline is 3; the description earns above that by documenting pattern syntax the schema never explains — gitignore semantics, depth-agnostic matching, trailing-slash directory rules, and '!' re-allow with full-path anchoring. denyfiles and hidefiles semantics remain schema-only.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource ('Set which files and directories a subuser may not touch') plus the enabling condition (sftp-permissions addon). It also explicitly distinguishes itself from subuser_update, so an agent can route correctly without inspecting schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'This is a route of its own: the fields are read back by subuser_list but sending them to subuser_update does nothing' names both the alternative and the failure mode of picking wrong. The addon prerequisite further constrains when the tool is applicable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

subuser_updateUpdate subuser permissionsC

Replace a subuser's permission set.

NameRequiredDescriptionDefault
userYes
extraNoExtra body fields merged into the request verbatim. Modified panels add their own subuser fields whose request names do not always match the ones the API returns; this is how to reach them without another deploy.
panelNoName of a saved panel. Omit to use the active or default panel.
serverYes
baseUrlNoInline panel URL override, e.g. https://panel.example.com. Not persisted.
clientKeyNoInline client API key (ptlc_…) override. Not persisted.
denyfilesNoSFTP-permissions addon: paths this subuser may not see or touch. Anything absent from the list stays readable, so treat it as a blocklist and keep it complete.
hidefilesNoSFTP-permissions addon: hide the denied paths outright instead of only blocking them.
permissionsYes
applicationKeyNoInline application API key (ptla_…) override. Not persisted.

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. 'Replace' hints that existing permissions are overwritten rather than merged, which is useful, but it says nothing about required auth, the effect of the extra/panel/clientKey overrides, or what happens to permissions omitted from the request. For a 10-parameter mutation with zero annotation coverage this is a thin disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence with zero filler, but the brevity comes at the cost of substance rather than from disciplined editing. It is concise without being informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A mutation tool with 10 parameters, nested extra object, no annotations and no output schema would need the description to cover preconditions, overwrite semantics and validation rules. The single sentence covers only the overwrite idea, leaving an agent unable to call it confidently with the required fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 70%, below the high-coverage threshold, and the three required parameters (server, user, permissions) have no schema descriptions at all. The description does not explain what form permissions takes (strings, validated against permissions_list, minimum one entry) or how extra fields are merged. It adds no parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Replace a subuser's permission set.' An agent knows this is a permission-set write on a subuser. However it does not distinguish this from sibling subuser_set_files, which also changes file-related permissions, leaving ambiguity about which tool owns permission updates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance and no mention of alternatives, despite sibling tools subuser_create, subuser_get, subuser_set_files and subuser_delete existing in the same family. The agent must infer that this tool is for changing permissions on an already-existing subuser.

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.

  1. 75 tool updatesv0.1.0
    • First observedaccount_2fa_disable
    • First observedaccount_2fa_enable
    • First observedaccount_2fa_get
    • First observedaccount_activity
    • First observedaccount_apikey_create
    • First observedaccount_apikey_delete
    • First observedaccount_apikey_list
    • First observedaccount_get
    • First observedaccount_sshkey_create
    • First observedaccount_sshkey_list
    • First observedaccount_sshkey_remove
    • First observedaccount_update_email
    • First observedaccount_update_password
    • First observedbackup_create
    • First observedbackup_delete
    • First observedbackup_download_url
    • First observedbackup_get
    • First observedbackup_list
    • First observedbackup_restore
    • First observedbackup_toggle_lock
    • First observeddb_create
    • First observeddb_delete
    • First observeddb_list
    • First observeddb_rotate_password
    • First observedfiles_chmod
    • First observedfiles_compress
    • First observedfiles_copy
    • First observedfiles_decompress
    • First observedfiles_delete
    • First observedfiles_download_url
    • First observedfiles_list
    • First observedfiles_mkdir
    • First observedfiles_pull
    • First observedfiles_read
    • First observedfiles_rename
    • First observedfiles_upload_url
    • First observedfiles_write
    • First observednetwork_assign
    • First observednetwork_delete
    • First observednetwork_list
    • First observednetwork_set_notes
    • First observednetwork_set_primary
    • First observedpanel_add
    • First observedpanel_list
    • First observedpanel_remove
    • First observedpanel_test
    • First observedpanel_use
    • First observedpermissions_list
    • First observedschedule_create
    • First observedschedule_delete
    • First observedschedule_execute
    • First observedschedule_get
    • First observedschedule_list
    • First observedschedule_task_create
    • First observedschedule_task_delete
    • First observedschedule_task_update
    • First observedschedule_update
    • First observedserver_activity
    • First observedserver_command
    • First observedserver_console_tail
    • First observedserver_docker_image
    • First observedserver_get
    • First observedserver_list
    • First observedserver_power
    • First observedserver_reinstall
    • First observedserver_rename
    • First observedserver_resources
    • First observedserver_set_variable
    • First observedserver_startup_get
    • First observedsubuser_create
    • First observedsubuser_delete
    • First observedsubuser_get
    • First observedsubuser_list
    • First observedsubuser_set_files
    • First observedsubuser_update

TDQS

C2.6/5.0

Scored across 75 tools

Disambiguation4/5

Tools are generally cleanly separated by resource and action, and adjacent tools like subuser_update vs subuser_set_files are explicitly distinguished. A few pairs remain close enough to require description-checking (files_pull vs files_upload_url, backup_download_url vs files_download_url, panel_list vs panel_test), but most boundaries are clear.

Naming Consistency4/5

Names consistently use snake_case and a resource-prefixed pattern (backup_*, files_*, schedule_*, account_*). Minor deviations exist where the action is implicit or noun-like, such as server_resources, server_power, server_activity, and files_mkdir, but the convention remains readable and predictable.

Tool Count1/5

At 75 tools, this surface is far beyond a reasonable tool count for an agent-facing MCP server and creates a heavy selection burden. The broad Pterodactyl management scope justifies many operations, but not this many in a single toolset.

Completeness4/5

Coverage is extensive across files, backups, schedules, network allocations, subusers, panels, and account management, with full lifecycle operations for most resources. Minor gaps remain around server-level creation/deletion or transfer/admin operations, but core workflows have no dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables managing Ploi.io servers, sites, databases, and Docker containers through the Ploi API, supporting both local stdio and remote Cloudflare Worker deployments with multi-tenant authentication.
    32
    ISC
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to manage, configure, and operate game servers hosted on Pterodactyl panels, including power actions, console commands, file operations, plugin installation, and backups. It also supports Cloudflare challenge bypass and automatic request pacing for reliable panel automation.
    MIT