proxmox-mcps
Provides comprehensive management of Proxmox VE environments, including CRUD and lifecycle operations for QEMU VMs and LXC containers, cluster administration, storage management, networking, high availability, replication, SDN, and node-level tasks such as apt, DNS, and systemd services.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@proxmox-mcpslist all VMs on the cluster"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
A Model Context Protocol server that exposes your Proxmox VE cluster to AI assistants (Claude Code, Cursor, Windsurf, …). VMs, containers, storage, network, HA, replication, SDN, node admin — 195 tools over stdio, HTTP+SSE, or streamable HTTP.
User-confirmation gates every destructive call. No silent deletes.
Why
Proxmox has no first-class AI surface. Existing bridges are usually a thin wrapper around one or two endpoints. This server exposes the entire Proxmox API surface — VMs and containers, lifecycle, diagnostics, console access, replication, SDN, HA, cluster jobs, node admin — and wraps every destructive call behind an explicit yes/no prompt the model has to relay to you.
195 tools across 9 functional areas (see Tool catalog)
3 transports — stdio for Claude Code, streamable HTTP for remote clients, SSE legacy
Approval-gated destructive ops —
delete_vm,wipe_node_disk,apply_sdn, … wait for you to typeyesSSRF guard for server-side downloads (URL allowlist, RFC1918 / loopback rejection)
Pluggable job store — in-memory (default) or SQLite for tracking long-running operations across restarts
QEMU guest agent — exec inside the guest, fstrim, fsinfo, hostname, OS info, users, network
SSH-backed
execute_container_command— runspct execon the host to drop into a container
Related MCP server: ProxmoxEmCP
Install
From npm
# One-off run (always picks the latest published version)
npx proxmox-mcps
# Or install globally
npm install -g proxmox-mcps
proxmox-mcpsThe package ships three binaries:
Binary | Purpose |
| MCP server (the thing you wire into Claude Code / your client) |
| Validate |
| Print every registered tool (or just the destructive ones) |
From source
git clone https://github.com/ngocdd/proxmox-mcps.git
cd proxmox-mcps
npm install
cp .env.example .env # then fill in host + API token
npm run check-config # validates your env without starting the server
npm run build # tsc → dist/
npm start # node dist/index.jsConfigure
1. Get a Proxmox API token
Proxmox UI → Datacenter → Permissions → API Tokens → Add
User:
root@pamToken ID:
mcpUncheck "Privilege Separation" (so the token inherits the user's full privileges)
Copy the generated UUID — that goes into
PROXMOX_TOKEN_VALUE
2. Wire it into Claude Code
Install at user scope so the same proxmox server follows you across every project:
claude mcp add proxmox --scope user \
-e PROXMOX_HOST=proxmox.example.com \
-e PROXMOX_PORT=8006 \
-e PROXMOX_USER=root@pam \
-e PROXMOX_TOKEN_NAME=mcp \
-e PROXMOX_TOKEN_VALUE=<uuid> \
-e PROXMOX_VERIFY_SSL=false \
-e PROXMOX_DEV_MODE=true \
-- npx -y proxmox-mcps
--scope userwrites to~/.claude.json(or~/.config/claude/on Linux). Use--scope projectto commit a.mcp.jsonentry, or--scope localfor a one-off project-only entry.
Restart Claude Code. Verify with /mcp — you should see proxmox with 195 tools.
Inspect or remove later:
claude mcp list # show all configured servers
claude mcp get proxmox # show env vars + command
claude mcp remove proxmox # delete the entryA drop-in .mcp.json snippet is in .mcp.json.example.
3. Or use any other MCP client
The server speaks the standard MCP protocol over three transports. Pick one via MCP_TRANSPORT:
Transport | When to use |
| Default. Local clients (Claude Code, Cursor, Windsurf) |
| Remote clients, modern MCP-over-HTTP |
| Legacy SSE-only clients |
For STREAMABLE / SSE the server listens on MCP_HOST:MCP_PORT and exposes /mcp (JSON-RPC) plus /health.
Tool catalog
195 tools, grouped by surface. Run proxmox-mcps-print-tools for the canonical list with risk classifications.
Group | Count | Highlights |
Cluster status | 1 |
|
Pools | 5 | CRUD + |
HA | 11 | Resources + groups + migrate-on-fail |
VM (QEMU) | 43 | Lifecycle, config, diagnostics, console (VNC/SPICE/termproxy/monitor), migration, 12 QEMU guest-agent tools |
Container (LXC) | 27 | Lifecycle, config, diagnostics, SSH-backed |
Snapshots | 4 |
|
Backups | 13 | On-demand + scheduled (vzdump) jobs + restore + prune |
ISO / templates | 4 | List / download / delete (URL-guarded) |
Tasks & jobs | 8 | Proxmox task log + long-running MCP job tracking |
Storage | 5 | list / get / create / update / delete (lvm, zfs, nfs, cifs, pbs, dir, …) |
Replication | 7 | ZFS replication jobs CRUD + status |
SDN | 21 | Controllers / zones / vnets / subnets + |
Node admin | 46 | apt · DNS · hosts · time · config · journal · syslog · pvereport · systemd services · network (bonds/bridges/VLANs/OVS) · disks + ZFS · bulk start/stop/migrate · subscription · certificates |
Risk profile (auto-discovered by print-tools):
Risk | Count | Behaviour |
| 79 | Runs immediately. Read-only / inspection tools. |
| 72 | Runs immediately. State-changing but recoverable. |
| 19 | Confirmation prompt (returns a yes/no request to the model). |
| 25 | Confirmation prompt + irreversible — extra warning. |
Audit-only logging for medium-risk tools is independent of the destructive gate. See Safety model.
Safety model
Destructive & high-risk tools
Any tool classified high or destructive does not run immediately. The server returns a confirmation prompt that the model must show you:
⚠️ Confirmation required: 'delete_vm' is DESTRUCTIVE and cannot be undone.
Target: node=pve, vmid=100
Ask the user to reply 'yes' to proceed, or anything else to cancel.
If they confirm, re-invoke this tool with `confirm: true` added to the arguments.You reply "yes", the model calls the same tool again with confirm: true, and the operation proceeds. Every destructive action is gated behind an explicit, visible human yes/no.
To skip the prompt for fully trusted automation:
PROXMOX_DANGEROUSLY_ALLOW_DESTRUCTIVE=trueAudit-only logging for medium-risk tools is independent:
PROXMOX_MCP_AUDIT_ONLY=trueInspect the risk registry at any time:
proxmox-mcps-print-tools # all 195 tools with risk levels
proxmox-mcps-print-tools destructive # only the 25 destructive onesSSRF guard for server-side downloads
download_iso (and any future *_from_url tool) hands the URL to Proxmox, which fetches it server-side. Before that happens, the URL is checked:
Schemes must be in
PROXMOX_DOWNLOAD_ALLOWED_SCHEMES(default:http,https).Hosts are resolved and rejected if they fall in RFC1918, RFC4193, loopback, link-local, CGNAT, multicast, or any other reserved range. The Proxmox host cannot be turned into an SSRF proxy against your internal network.
An optional operator allowlist (
PROXMOX_DOWNLOAD_ALLOWED_HOSTS) supports suffix (.corp.example), bare-IP, or CIDR matches.
See .env.example for the full reference.
VM config allowlist
update_vm_config rejects keys that can attach host PCI/USB devices, override SMBIOS, or change the QEMU machine type — see src/safety/vm-config-allowlist.ts.
Environment reference
All variables can be passed inline, in .env, or as MCP server env vars. See .env.example for the canonical list with defaults.
Var | Required | Default | Purpose |
| ✅ | — | Proxmox API hostname / IP |
|
| Proxmox API port | |
| ✅ | — | API user ( |
| ✅ | — | Token ID |
| ✅ | — | Token secret UUID |
|
| Set | |
|
| Per-request timeout | |
|
|
| |
|
| Required when | |
|
| Skip confirmation prompts for high/destructive tools | |
|
| Audit-log every medium-risk call | |
|
|
| |
|
| Use pino-pretty (dev only) | |
|
| Retries on transient API errors | |
|
| Retry backoff base | |
|
| Long-running job retention | |
|
|
| |
|
| SQLite job store path | |
|
|
| |
|
| HTTP bind address | |
|
| HTTP listen port | |
|
| SSH user for | |
|
| SSH port | |
| — | Path to SSH private key | |
| — | SSH password (prefer key) | |
| — | JSON map of | |
| — | Path to | |
|
| Reject unknown host keys | |
|
| URL schemes for | |
| — | Optional allowlist (suffix / IP / CIDR) |
PROXMOX_VERIFY_SSL=falserequiresPROXMOX_DEV_MODE=true— the server refuses to start otherwise.
Development
git clone https://github.com/ngocdd/proxmox-mcps.git
cd proxmox-mcps
npm install
npm run dev # tsx watch mode
npm run build # tsc → dist/
npm test # 179 unit tests
npm run lint # eslint
npm run format:check # prettierUpdating dependencies
npm outdated # see available updates
npm update # safe patch + minor bumps
npm audit # known CVEs
npm audit fix # safe security fixesNative deps (better-sqlite3, ssh2, …) need install scripts. The repo's .npmrc carries the npm 11+ allowlist. If you add a new native dep, append its name to allow-scripts[] there.
Releasing
Bump
versioninpackage.json.npm test && npm run build.git tag v<version> && git push --tags.npm publish.
Project layout
src/
index.ts entry point (stdio / streamable / sse)
server.ts MCP server factory
config/ env schema (zod) + typed config
format/ response formatters
jobs/ long-running job tracking (memory + sqlite)
log.ts pino logger
proxmox/ API client + path helpers
safety/ risk registry + approval policy + URL guard
security/ auth + secret redaction
ssh/ SSH client for pct exec
tools/ one file per tool group
vm/ crud, config, diagnostics, migration, console
container/ crud, config, diagnostics, migration, console
cluster, node, storage, tasks, jobs,
snapshot, backup, backup-schedule, iso,
pools, ha, replication, sdn,
node-admin, node-services, node-network, node-disks, node-certs,
storage-admin
cli/ check-config, print-tools
tests/
unit/ vitest unit suite (179 tests)
integration/ end-to-end (gated by PROXMOX_E2E=1)Security
Destructive calls require an explicit
confirm: truefrom the model after a user-typed "yes".URL guard rejects private/loopback hosts for server-side downloads.
VM config allowlist blocks keys that can attach host devices or change machine type.
Logs redact token UUIDs and SSH passwords.
Found a vulnerability? Please email ngocdd94@gmail.com rather than filing a public issue.
Contributing
Issues and PRs welcome. For anything beyond a typo:
Open an issue first describing the change.
New tools must register a risk level in
src/safety/risk.ts(low/medium/high/destructive).New env vars must be added to both
src/config/env.ts(zod schema) and.env.example.Run
npm test && npm run lint && npm run buildbefore opening the PR.
Acknowledgments
Built on
@modelcontextprotocol/sdk.The Proxmox API client uses
axioswithp-retryfor transient errors.Long-running job tracking uses
better-sqlite3when persistence is enabled.Container command execution uses
ssh2to shell out topct execon the host.
License
MIT © Proxmox MCP Contributors
Available Tools
195 toolsadd_ha_resourceAdd HA resourceADestructive
Make a VM or container HA-managed by the cluster. HIGH RISK — service will be restarted on failure. Ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| sid | Yes | Service ID, e.g. 'vm:100' or 'ct:101' | |
| group | No | HA group to assign (default: 'default') | |
| state | No | started | |
| comment | No | ||
| confirm | No | Set to true once the user has approved this action | |
| max_restart | No | Max restart attempts | |
| max_relocate | No | Max relocate attempts |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint: true. The description adds context that the service will be restarted on failure, which explains the destructive nature. No contradiction. It provides useful behavioral insight beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first defines purpose, second adds risk and action requirement. No wasted words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, risk, and confirmation requirement. However, with 7 parameters and no output schema, it lacks information about return values or asynchronous behavior. Adequate but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (71-86%), so the schema already explains most parameters. The description adds value by linking the confirm parameter to the usage guideline ('Ask the user to confirm'), but doesn't add significant meaning to other params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool makes a VM or container HA-managed, matching the name 'add_ha_resource'. It doesn't explicitly differentiate from siblings like list_ha_resources or migrate_ha_resource, but the purpose is distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises high risk and requiring user confirmation before invocation, which is a strong usage guideline. It doesn't mention when not to use or alternatives, but the confirmation condition is a clear directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_sdnApply SDN changesADestructive
Push pending SDN changes to the cluster (rebuilds config and reloads daemons). HIGH RISK — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Set to true once the user has approved this action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds context that the tool rebuilds config and reloads daemons, and reinforces the high-risk nature, providing value beyond the structured annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The action and risk warning are front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, risk, and basic mechanism. For a mutation tool with no output schema and one parameter, it is mostly complete. Could mention reversibility or failure modes, but the destructive hint covers the risk aspect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage with one parameter (confirm). The description indirectly refers to the need for user confirmation but does not explicitly describe the parameter's semantics. Given high schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool pushes pending SDN changes to the cluster, with specific actions (rebuilds config and reloads daemons). The verb 'Push' and resource 'pending SDN changes' provide a specific purpose that distinguishes it from sibling tools like create_sdn_* or delete_sdn_*.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises 'HIGH RISK — ask the user to confirm before invoking,' providing a clear usage directive. While it does not explicitly mention when not to use or list alternatives, the risk warning implies appropriate conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_jobCancel a running jobAIdempotent
Request cancellation of a tracked job. Calls Proxmox's task-stop endpoint. Some operations cannot be cancelled cleanly.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and non-destructive hint. Description adds direct call to task-stop endpoint and the caveat that some operations may not cancel cleanly, offering useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences with no redundant information. Every sentence provides value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool without output schema, description covers purpose, mechanism, and a limitation. Could mention polling for status, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with description 'Job identifier' for job_id. Description adds no extra parameter semantics beyond schema, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool 'request[s] cancellation of a tracked job' and mentions the endpoint, distinguishing it from sibling tools like get_job, list_jobs, or retry_job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., retry_job, poll_job). Only a warning about clean cancellation, but no explicit usage contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clone_containerClone containerB
Clone an existing container to a new ID on the same or different node.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | ||
| node | Yes | ||
| pool | No | ||
| storage | No | ||
| hostname | No | ||
| snapname | No | ||
| source_vmid | Yes | ||
| target_node | No | ||
| target_vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutation (readOnlyHint=false) and non-destructive nature. The description adds the ability to clone to different nodes but lacks details on other behaviors like default full clone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that delivers the core purpose without any superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complex tool with 9 parameters and no output schema, the description is too minimal; it fails to explain key aspects like return values, parameter meanings, or the full clone default.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and no parameter explanations in the description, the agent receives no guidance on the meaning or usage of the nine parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (clone), the resource (container), and the scope (same or different node), distinguishing it from similar tools like clone_vm.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for cloning containers but provides no explicit guidance on when to use this tool versus alternatives or any prerequisites/conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clone_vmClone VMB
Full or linked clone of an existing VM.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Full clone (true) or linked (false) | |
| name | No | New VM name | |
| node | Yes | Source node | |
| pool | No | Resource pool | |
| storage | No | Target storage | |
| snapname | No | Source snapshot name to clone from | |
| source_vmid | Yes | Source VM ID | |
| target_node | No | Destination node (default: same as source) | |
| target_vmid | Yes | New VM ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds minimal behavioral context beyond annotations. Annotations already indicate mutability (readOnlyHint=false) and non-destructiveness. However, description does not disclose important details like whether source VM must be stopped, how clone is created, or success/failure conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. Could be slightly more informative without becoming verbose, but it's efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 parameters and no output schema, the description is too brief. It does not explain the difference between full and linked clones, constraints, or what the operation entails. Incomplete for a complex operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (all 9 parameters documented in schema). Description does not add any additional parameter information beyond what's in schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Full or linked clone of an existing VM', specifying both the action (clone) and the resource (VM), and distinguishes between clone types. This differentiates it from sibling tools like 'clone_container' or 'create_vm'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., migrate_vm, create_vm). Does not mention prerequisites like VM state or permissions, nor when to choose full vs linked clone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
container_firewall_optionsGet container firewall optionsCRead-onlyIdempotent
Return container firewall options.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, indicating a safe read operation. The description adds no extra behavioral context beyond the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of four words, very concise. Every word is meaningful, but it could include additional key information without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and the presence of sibling tools, the description is incomplete. It does not explain what the returned options look like, nor does it provide context about typical usage or scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description should explain the purpose of 'node' and 'vmid' parameters. However, it does not mention them at all, leaving the agent without semantic context for the required inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Return container firewall options' clearly states a get/read operation on a specific resource. It distinguishes from siblings such as 'container_firewall_rules' and 'vm_firewall_options' via the resource name, though it does not explicitly differentiate them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'container_firewall_rules' or 'vm_firewall_options'. No context or scenarios are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
container_firewall_rulesGet container firewall rulesCRead-onlyIdempotent
Return firewall rules for an LXC container.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description adds no extra behavioral context. It does not mention return format, pagination, or authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence, but it lacks important details that could be included without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and minimal description; the tool returns firewall rules, but the structure or content of those rules is not described, leaving the agent without enough context for parsing the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description should explain the parameters (node and vmid). It only says 'for an LXC container', leaving the agent to infer parameter semantics from the tool name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Return) and the resource (firewall rules for LXC container), distinguishing it from sibling tools like vm_firewall_rules and container_firewall_options.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as container_firewall_options or vm_firewall_rules. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
container_spiceproxyGet container SPICE proxy ticketB
Generate a SPICE ticket for an LXC container.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-read-only and non-idempotent behavior, but the description fails to disclose details such as ticket expiration or side effects. Without an output schema, more clarity on the return value would be helpful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 8 words with no fluff, making it highly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (2 required params, no output schema) and context of sibling remote access tools, the description lacks critical details like return value, prerequisites, and usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the parameters 'node' and 'vmid', leaving the agent to infer their meaning from context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'generate' and the resource 'SPICE ticket for an LXC container', effectively distinguishing it from similar tools like container_vncproxy and container_termproxy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like container_termproxy or vm_spiceproxy, nor are prerequisites or conditions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
container_termproxyGet container terminal proxy ticketB
Generate a terminal proxy ticket for an LXC container.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, idempotentHint=false, destructihint=false, which align with generating a ticket (a stateful, non-idempotent, non-destructive operation). The description does not add further behavioral context such as authentication requirements or ticket expiration, but it does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence of 7 words with no fluff. It is appropriately front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is too brief for a tool with no output schema and 0% parameter coverage. It does not explain what a terminal proxy ticket is, how to use the result, or any side effects. Sibling tools exist, but no differentiation is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% parameter description coverage, and the description adds no meaning for the two parameters ('node' and 'vmid'). It does not explain that 'node' refers to the Proxmox node or that 'vmid' is the container ID, leaving the agent without guidance on required values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'generate' and the resource 'terminal proxy ticket' for 'an LXC container'. It distinguishes from sibling tools like container_spiceproxy and container_vncproxy by specifying 'terminal proxy' rather than SPICE or VNC.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as container_spiceproxy or container_vncproxy. The description does not mention prerequisites, use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
container_vncproxyGet container VNC proxy ticketC
Generate a VNC ticket for an LXC container console.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| websocket | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Generate' implying a write operation, consistent with readOnlyHint=false. However, it does not disclose behavioral details like ticket expiration, temporary nature, or that the ticket is typically used for immediate connection. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence and concise, but it omits critical information. For a tool with three parameters and no output schema, brevity comes at the cost of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, no output schema) and the presence of sibling tools, the description is insufficient. It does not explain the return value (the ticket), how to use the ticket, or the role of the websocket parameter. The description fails to compensate for missing schema descriptions and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds no meaning to the parameters (node, vmid, websocket). It fails to explain that 'websocket' is a boolean indicating whether a WebSocket connection is requested, leaving the agent to rely solely on the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a VNC ticket for an LXC container console, specifying the resource type (container) and output (ticket). However, it does not differentiate from sibling tools like container_spiceproxy or container_termproxy, which target different console protocols.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., SPICE or terminal proxy). The description does not mention prerequisites, such as the container needing a VNC console enabled, or that this ticket is typically used with a WebSocket connection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_container_to_templateConvert container to templateADestructive
Convert an LXC container into a template. HIGH RISK — original becomes read-only. Ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| confirm | No | Set to true once the user has approved this action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses high risk and the side effect that the original becomes read-only, going beyond the annotations which only mark it as destructive. It also instructs on user confirmation, adding behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. It front-loads the purpose and immediately adds risk and user instruction. Every sentence contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's destructive nature and lack of output schema, the description provides enough context for safe invocation: it explains the action, risk, and need for confirmation. It could mention what happens to the container after conversion, but the core context is there.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain any of the three parameters (node, vmid, confirm). With schema description coverage at only 33%, the description should compensate but fails to do so, leaving the agent to infer from parameter names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: converting an LXC container to a template, and it distinguishes from the sibling 'convert_vm_to_template' by specifying 'LXC container'. The verb 'Convert' and resource 'container' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to ask user for confirmation before invoking, providing clear context for when it's appropriate. However, it does not explicitly compare with alternatives like 'convert_vm_to_template' or mention when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_vm_to_templateConvert VM to templateADestructive
Convert a VM into a Proxmox template (subsequent clones can use it as a source). HIGH RISK — original VM becomes read-only. Ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| confirm | No | Set to true once the user has approved this action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the original VM becomes read-only and emphasizes high risk, adding value beyond annotations (destructiveHint=true).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that efficiently convey purpose, risk, and action needed without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and lack of output schema, the description covers the core purpose, side effects, and user actions adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 33% schema description coverage, the description fails to explain the 'node' and 'vmid' parameters, which are not self-explanatory to all users.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Convert a VM into a Proxmox template' with a specific verb and resource, distinguishing it from sibling tools like convert_container_to_template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Indicates high risk and requires user confirmation, but does not explicitly state when to use vs. alternatives like cloning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_backupCreate backupB
Trigger a vzdump backup of a VM or container to a target storage pool.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Backup mode: snapshot, suspend, or stop | snapshot |
| node | Yes | Host node name | |
| vmid | Yes | VM or container ID | |
| notes | No | Optional notes (Proxmox 8+) | |
| storage | Yes | Target storage pool | |
| compress | No | Compression algorithm | zstd |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-destructive and non-idempotent behavior, but the description adds no context about permissions, execution time, or side effects beyond triggering backup. Does not add value over annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is highly concise and front-loaded with the action, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks information about return values (e.g., task ID) since no output schema is provided. Also missing prerequisites or behavior details for a tool with 6 parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 6 parameters with descriptions, so the tool description does not need to add extra meaning. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool triggers a vzdump backup for a VM or container to a storage pool, specifying the verb, resource, and target, distinguishing it from sibling tools like clone_vm or create_backup_job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like create_backup_job or run_backup_job. Does not mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_backup_jobCreate backup scheduleC
Schedule a recurring vzdump backup job.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job ID | |
| all | No | Backup all VMs/containers | |
| mode | No | snapshot | |
| pool | No | Pool filter | |
| vmid | No | Specific VM/CT (or 'all' for everything) | |
| notes | No | ||
| ionice | No | ||
| mailto | No | ||
| bwlimit | No | Bandwidth limit in KB/s | |
| comment | No | ||
| enabled | No | ||
| exclude | No | Comma-separated list of VMIDs to exclude | |
| storage | Yes | Target storage | |
| compress | No | zstd | |
| lockwait | No | ||
| maxfiles | No | DEPRECATED — use prune_backups | |
| next_run | No | ||
| schedule | Yes | Calendar event: 'Mon..Sun', '00:00', or a calendar event spec | |
| stopwait | No | ||
| prune_backups | No | Retention options, e.g. 'keep-last=7,keep-daily=14' | |
| mailnotification | No | ||
| notification_mode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds no additional behavioral context, such as side effects or state changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is too concise (one sentence) and under-specified. It fails to provide enough information to be genuinely helpful, sacrificing substance for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high complexity (22 parameters, no output schema, many siblings), the description is completely inadequate. It omits return values, prerequisites, and scheduling details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 22 parameters and only 45% schema description coverage, the description adds no parameter information. Required parameters like schedule and storage are not explained beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('schedule') and resource ('recurring vzdump backup job'), distinguishing it from siblings like create_backup (immediate backup) and run_backup_job (run existing job).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as run_backup_job or update_backup_job. No exclusions or context are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_containerCreate containerB
Create a new LXC container from a vztmpl template.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Host node name | |
| swap | No | Swap in MiB | |
| vmid | Yes | New container ID | |
| cores | No | vCPU cores | |
| memory | No | Memory in MiB | |
| onboot | No | ||
| nesting | No | Enable LXC nesting | |
| storage | No | Storage pool for rootfs | |
| hostname | No | Container hostname | |
| password | No | Root password (will be redacted in logs) | |
| disk_size | No | Root disk in GB | |
| ostemplate | Yes | OS template volume ID (e.g. 'local:vztmpl/alpine-3.19-default_...tar.xz') | |
| unprivileged | No | Create as unprivileged container | |
| network_bridge | No | Network bridge | vmbr0 |
| ssh_public_keys | No | URL-encoded SSH public keys for root | |
| start_after_create | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While the description matches the readOnlyHint=false annotation, it fails to disclose potential side effects (e.g., ID conflicts, template resolution failure) or any needed permissions. The openWorldHint=true suggests side effects, but the description does not elaborate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no redundant information. It efficiently conveys the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (16 parameters, no output schema), the description is too sparse. It does not explain return values, failure scenarios, or dependencies, leaving the agent ill-equipped to handle edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 88% schema description coverage, the schema already documents most parameters well. The description adds no additional parameter-specific information, staying at the baseline for high-coverage cases.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (create), the resource (LXC container), and the source (vztmpl template). It effectively distinguishes the tool from sibling tools like clone_container or create_vm.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, lacks prerequisites or context about required parameters, and does not mention any constraints like ID uniqueness or template availability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_ha_groupCreate HA groupADestructive
Create an HA group with a list of preferred nodes and a failover/restart policy. HIGH RISK — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| group | Yes | Group name | |
| nodes | Yes | Comma-separated node list (e.g. 'pve1,pve2,pve3') | |
| comment | No | ||
| confirm | No | Set to true once the user has approved this action | |
| nofailback | No | ||
| restricted | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, and the description adds 'HIGH RISK' and a request for user confirmation, which goes beyond the annotation and provides actionable behavioral guidance without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load the purpose and a critical warning. Every sentence adds value with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a creation tool given the annotations, but it lacks details on return values, side effects beyond destruction, or explanation of the failover/restart policy flags, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (3 of 6 params have descriptions). The description mentions 'preferred nodes' and 'failover/restart policy' but does not fully document all parameters, leaving comment, nofailback, and restricted undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates an HA group with preferred nodes and a failover/restart policy. The verb 'Create' and resource 'HA group' are specific, and it distinguishes from sibling tools like update_ha_group and delete_ha_group.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly warns 'HIGH RISK — ask the user to confirm before invoking,' providing a clear usage constraint. However, it does not explicitly contrast with alternative tools like update_ha_group or list_ha_groups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_node_networkCreate network interfaceADestructive
Create a network interface (bond, bridge, VLAN, or physical). HIGH RISK — wrong config can disconnect the node. Ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| type | No | bridge | |
| iface | Yes | Interface name (e.g. 'vmbr1', 'bond0') | |
| slaves | No | ||
| address | No | ||
| confirm | No | Set to true once the user has approved this action | |
| gateway | No | ||
| netmask | No | ||
| vlan_id | No | ||
| comments | No | ||
| autostart | No | ||
| bond_mode | No | ||
| bridge_ports | No | ||
| vlan_raw_device | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'HIGH RISK — wrong config can disconnect the node,' which aligns with the destructiveHint annotation (true) and adds context about the potential impact. It does not contradict annotations and adds valuable behavioral insight beyond the annotation flags.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loading the purpose and the critical warning. Every word adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 14 parameters, no output schema, and annotations indicating destructive behavior, the description is insufficient. It provides a crucial risk warning but fails to explain the role of many parameters, return values, or expected behavior. Important context like prerequisites or the confirm parameter is only mentioned in the schema, not in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14% (only iface and confirm have descriptions). The description adds no additional parameter details beyond mentioning interface types (bond, bridge, VLAN, physical), which partially maps to the 'type' parameter. Other critical parameters like address, gateway, slaves, etc., are left unexplained, so the description does not adequately compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Create a network interface (bond, bridge, VLAN, or physical).' This clearly identifies the action (create) and the resource (network interface), with specific types, distinguishing it from sibling tools like delete_node_network or update_node_network.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description warns 'HIGH RISK — wrong config can disconnect the node. Ask the user to confirm before invoking.' This provides clear when-to-use (creating network interfaces) and a strong caution, including an instruction to get user confirmation. However, it does not explicitly state when not to use or compare with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_node_zfsCreate ZFS poolADestructive
Create a ZFS pool across one or more disks. DESTRUCTIVE — wipes target disks. Ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ZFS pool name | |
| node | Yes | ||
| ashift | No | ||
| confirm | No | Set to true once the user has approved this destructive action | |
| devices | Yes | Comma-separated disk paths (e.g. '/dev/sdb,/dev/sdc') | |
| raidlevel | No | ||
| compression | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses destructive behavior and disk wiping, which goes beyond the destructiveHint annotation. Provides clear behavioral context for agent decision-making.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, immediately followed by critical warning. No redundancy or unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a destructive creation tool but lacks description of return value or behavior beyond creation. Missing parameter details reduce completeness for parameter-heavy tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 43% (3 of 7 params have descriptions). Description adds no extra parameter information, leaving ashift, raidlevel, compression, and node undocumented. Fails to compensate for low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it creates a ZFS pool across disks. Distinguishes from sibling create_pool by name but lacks explicit differentiation. However, verb+resource is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Includes destructive warning and user confirmation instruction, but no guidance on when to use this tool vs alternatives like create_pool or init_node_disk. Context for when not to use is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_poolCreate resource poolA
Create a new resource pool. Optionally assign VMs/CTs at creation time.
| Name | Required | Description | Default |
|---|---|---|---|
| vms | No | Initial VM/CT IDs | |
| poolid | Yes | Pool ID | |
| comment | No | ||
| storage | No | Restrict pool to these storages |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutation (readOnlyHint=false) and non-destructiveness. The description adds 'Optionally assign VMs/CTs' which is not in annotations, but this is also captured in the schema. No other behavioral context provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, 14 words, no redundant information. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a creation tool with 4 parameters and no output schema. Missing information about uniqueness constraints, return values, or error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%. The description clarifies that VMs/CTs assignment is optional, aligning with the schema not marking it required. No additional meaning for other parameters beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'resource pool', with an optional assignment capability. It distinguishes from siblings like delete_pool, get_pool, update_pool, list_pools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites, no exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_replication_jobCreate replication jobA
Create a ZFS replication job for a VM or container. Target must have a matching storage.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Replication job ID | |
| rate | No | Bandwidth limit in MB/s | |
| type | No | local | |
| vmid | Yes | VM or container ID | |
| target | Yes | Target node | |
| comment | No | ||
| disable | No | ||
| schedule | Yes | Replication schedule (e.g. '*/15') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only (readOnlyHint=false) and not idempotent (idempotentHint=false). The description adds the requirement of matching storage but does not discuss side effects like network usage or whether creation triggers immediate replication. With openWorldHint=true, more behavioral context would be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence for the primary action and one for a critical requirement. Every word serves a purpose, and there is no fluff. It is appropriately front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (8 parameters, 4 required, no output schema), the description is incomplete. It omits details about the schedule format, the difference between local and remote types, error handling (e.g., duplicate job IDs), return values, and immediate effects. The agent would need to infer too much from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 63%, but the tool description provides no additional explanation for any parameters beyond what is in the schema. For example, the schedule format is only hinted at in the schema's example, and the type enum (local/remote) is not explained. The description adds no value for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'ZFS replication job' for a VM or container, distinguishing it from siblings like update_replication_job and delete_replication_job. It also includes a key requirement (target storage must match), which aids in correct usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a prerequisite ('Target must have a matching storage') but lacks explicit guidance on when to use this tool versus alternatives like update_replication_job. It does not mention that the job is scheduled or that the same job ID should not be duplicated. The context is adequate but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sdn_controllerCreate SDN controllerBDestructive
Create an SDN controller (EVPN/ISIS/bgp). HIGH RISK — network connectivity depends on this. Ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| asn | No | ASN (for bgp) | |
| ebgp | No | ||
| name | Yes | Controller name | |
| node | No | ||
| type | No | evpn | |
| peers | No | Peer addresses | |
| confirm | No | Set to true once the user has approved this action | |
| loopback | No | ||
| ebgp_multihop | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context beyond annotations by explicitly stating the high risk and dependency on network connectivity. Annotations already indicate destructiveHint=true, but the description reinforces the need for caution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no extraneous text. First sentence states purpose and supported protocols, second sentence highlights risk and required confirmation. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a high-risk tool with 9 parameters and no output schema. The description covers the risk aspect and confirmation requirement, but does not explain return values, prerequisites, or how parameters interact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 44% schema description coverage, the description does little to clarify parameters beyond the schema. It mentions 'evpn', 'isis', 'bgp' types but does not explain other critical parameters like node, peers, loopback, or ebgp_multihop.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool creates an SDN controller and lists supported protocols (EVPN/ISIS/bgp). Distinguishes from sibling tools like update_sdn_controller and delete_sdn_controller by naming the action, but could be more explicit about what an SDN controller is versus other SDN components.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives (e.g., update_sdn_controller, create_sdn_subnet). Only instructs to ask user for confirmation, which is a safety measure but not a usage criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sdn_subnetCreate SDN subnetC
Create an IP subnet inside an SDN vnet.
| Name | Required | Description | Default |
|---|---|---|---|
| dns | No | ||
| dhcp | No | ||
| snat | No | ||
| vnet | Yes | ||
| subnet | Yes | CIDR, e.g. 10.10.0.0/24 | |
| gateway | No | ||
| comments | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=false and readOnlyHint=false, which the description does not contradict. However, the description adds no behavioral details beyond annotations, such as failure modes on duplicate subnets or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence and front-loaded, but it is too brief to convey necessary details. While concise, it sacrifices completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 7 parameters, no output schema, and no behavioral info, the description is severely lacking. It does not explain return values, error conditions, or the effect of optional parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14% (only the 'subnet' parameter has a description). The tool description does not explain any parameter, leaving the agent to rely solely on the schema, which is insufficient for the 7 parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create'), the resource ('IP subnet'), and the context ('inside an SDN vnet'). It distinguishes this tool from related sibling tools like create_sdn_vnet and create_sdn_zone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., updating or deleting subnets) or prerequisites (e.g., the vnet must exist). The usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sdn_vnetCreate SDN vnetB
Create an SDN virtual network (zone-scoped).
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | ||
| name | Yes | ||
| zone | Yes | Parent zone name | |
| alias | No | ||
| comment | No | ||
| vlanaware | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (readOnlyHint=false) and possibly open-world. The description adds no extra behavioral context (e.g., side effects, permission requirements, or what happens to resources). It simply restates the tool's purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one short sentence) and front-loaded with the key purpose. However, it is so minimal that it omits potentially useful details, though it avoids verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters (2 required) and no output schema, the description is too brief to fully guide the agent. It fails to explain constraints, return values, or how this tool fits into the broader SDN workflow among many siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 17% schema description coverage, the description does not explain any parameters beyond what the schema provides. The schema itself lacks descriptions for most parameters (name, tag, alias, comment, vlanaware), and the tool description does not compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the resource ('SDN virtual network'), and specifies 'zone-scoped', which helps distinguish it from related tools like create_sdn_subnet or create_sdn_zone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., create_sdn_subnet). The zone-scoping hint is implicit, but there are no when-not-to-use conditions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sdn_zoneCreate SDN zoneADestructive
Create an SDN zone (vxlan/evpn/simple/qinq/vlan). HIGH RISK — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| mtu | No | ||
| name | Yes | ||
| type | No | vxlan | |
| peers | No | ||
| bridge | No | ||
| confirm | No | Set to true once the user has approved this action | |
| controller | No | Controller name (for evpn) | |
| vxlan_port | No | ||
| vlan_protocol | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds the behavioral trait of high risk and confirmation requirement, consistent with annotations (destructiveHint: true). Could elaborate on effects but adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. First sentence states purpose, second adds critical risk warning. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a creation tool with risk warning, but given 9 parameters and no output schema, more context on parameter usage would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 22% schema description coverage, description adds little parameter meaning beyond listing types. Most parameters (mtu, peers, bridge, vxlan_port, vlan_protocol) lack any explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (create) and resource (SDN zone), listing supported types (vxlan/evpn/simple/qinq/vlan). Distinguishes from siblings like create_sdn_controller or create_sdn_subnet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'HIGH RISK — ask the user to confirm before invoking', providing clear usage guidance. Does not contrast with specific alternatives but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_snapshotCreate snapshotA
Take a snapshot of a QEMU VM (optionally including RAM state) or LXC container.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Host node name | |
| vmid | Yes | VM or container ID | |
| vm_type | No | qemu | |
| vmstate | No | Include VM RAM state (QEMU only — ignored for LXC) | |
| snapname | Yes | Snapshot name (no spaces) | |
| description | No | Optional description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false (write) and destructiveHint=false (non-destructive). Description adds behavior about optional RAM state and its limitation to QEMU. However, it omits important behavioral traits like prerequisites (VM running for RAM snapshot), storage impact, or that creating a snapshot may temporarily pause I/O.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence conveying the core purpose efficiently. No redundant or filler words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write tool with 6 parameters and no output schema, the description lacks critical context: when to include RAM state (VM must be running?), any requirements on the node, what happens after creation (success/error response), and the relationship with other snapshot tools. Annotations cover safety but not completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high (83%), so baseline is 3. Description 'optionally including RAM state' implicitly relates to the vmstate parameter but does not add new meaning beyond schema descriptions. No additional constraints or contexts are given for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Take a snapshot'), the resource ('QEMU VM or LXC container'), and a distinctive feature ('optionally including RAM state'). This differentiates it from sibling tools like delete_snapshot and list_snapshots.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied ('take a snapshot'), but no explicit guidance is given on when to use this tool vs alternatives (e.g., rollback_snapshot, backup tools). No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_storageCreate storage poolBDestructive
Create a new storage pool (lvm, zfspool, nfs, cifs, pbs, dir, btrfs, etc.). HIGH RISK — wrong config can lose data. Ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| fs | No | ||
| path | No | ||
| pool | No | ||
| type | Yes | Storage type | |
| nodes | No | ||
| domain | No | ||
| enable | No | ||
| export | No | ||
| server | No | ||
| shared | No | ||
| vgname | No | ||
| confirm | No | Set to true once the user has approved this action | |
| content | No | ||
| options | No | ||
| storage | Yes | Storage ID | |
| maxfiles | No | ||
| password | No | ||
| thinpool | No | ||
| username | No | ||
| datastore | No | ||
| export_vg | No | ||
| namespace | No | ||
| fingerprint | No | ||
| prune_backups | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, but the description adds specific context about potential data loss, which goes beyond the annotation. It also alerts the agent to require user confirmation. This adds behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: purpose, risk warning, and action instruction. No wasted words, well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's high complexity (24 params, no output schema, destructive), the description is too brief. It lacks prerequisite conditions, parameter dependencies, result expectations, and error handling. The risk warning is present but incomplete for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 24 parameters and only 13% schema description coverage, the description should clarify parameter usage but completely omits any parameter-level semantics. It relies solely on the sparse schema descriptions, which is insufficient for an agent to invoke correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Create a new storage pool' with types, but the vague 'etc.' and lack of precise definition of 'storage pool' in context slightly reduce clarity. It distinguishes from siblings like create_pool and other create_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a warning about high risk and instructs to ask user confirmation, which is helpful, but it does not provide guidance on when to use this tool vs. alternative creation tools, such as create_pool for HA pools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_vmCreate VMA
Create a new QEMU VM. Auto-detects default storage for the disk. Use clone_vm to duplicate from a template.
| Name | Required | Description | Default |
|---|---|---|---|
| iso | No | Optional ISO volume to attach (e.g. 'local:iso/ubuntu.iso') | |
| cpus | No | vCPU cores | |
| name | Yes | VM name | |
| node | Yes | Host node name | |
| vmid | Yes | New VM ID (must be unique cluster-wide) | |
| memory | No | Memory in MB (default 2048) | |
| ostype | No | OS type hint, e.g. 'l26' (Linux 2.6+), 'win11', 'other' | |
| storage | No | Storage pool for the primary disk | |
| disk_size | No | Primary disk size in GB (default 10) | |
| network_bridge | No | Network bridge (default vmbr0) | vmbr0 |
| start_after_create | No | Start VM after creation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds auto-detection of default storage, but does not discuss permissions, side effects, or other traits not captured by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero wasted words. The information is front-loaded and every sentence provides value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given high parameter count and no output schema, the description is brief. It does not explain prerequisites (e.g., node existence, vmid uniqueness) or default behavior for omitted parameters. Adequate but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage of parameter descriptions. The description adds no additional parameter semantics beyond noting auto-detection of storage, which is not a parameter. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new QEMU VM') and the resource, and distinguishes from a sibling tool ('Use clone_vm to duplicate from a template').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit alternative (clone_vm for duplication), indicating when to use a different tool. It lacks explicit exclusions but gives clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_backupDelete backup fileADestructive
Permanently delete a vzdump backup file. DESTRUCTIVE — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| volid | Yes | Backup volume ID | |
| confirm | No | Set to true once the user has approved this destructive action | |
| storage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds context about permanence and the need for user confirmation, enhancing transparency beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two succinct sentences, no extra words. The first sentence states the core action, the second provides a critical warning. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive action, the description covers the essential behavior and warning. It lacks mention of required parameters (node, storage, volid) but the schema covers that, and there is no output schema to address.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 50% schema description coverage, the description does not elaborate on parameters node, storage, or volid beyond the schema. The confirm parameter aligns with the 'ask user to confirm' advice, but overall parameter semantics are not improved.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Permanently delete a vzdump backup file', specifying the verb (delete) and resource (vzdump backup file). This distinguishes it from sibling tools like delete_backup_job or delete_iso.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes 'DESTRUCTIVE — ask the user to confirm before invoking', providing a strong usage guideline. However, it does not explicitly mention when not to use this tool versus alternatives like prune_backups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_backup_jobDelete backup scheduleADestructive
Delete a scheduled backup job (existing backups are not deleted). DESTRUCTIVE — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| confirm | No | Set to true once the user has approved this destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond annotations by clarifying that existing backups are not deleted. However, annotations already declare destructiveHint=true, so the description reinforces but does not significantly extend behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: one for purpose and scope, one for safety. Every word is necessary, no fluff. Ideal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, destructive nature, and clear annotations, the description is complete: it explains what is deleted, what is not, and provides a safety instruction. No output schema exists, but the action's outcome is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no parameter documentation. One parameter (id) is undocumented in both schema and description, while the confirm parameter is explained in the schema. With 50% schema coverage, the description fails to compensate for the missing id documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool deletes a scheduled backup job, and explicitly notes that existing backups are not deleted. This distinguishes it from delete_backup and other sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes 'DESTRUCTIVE — ask the user to confirm before invoking,' providing a clear safety guideline. However, it does not explicitly state when not to use this tool (e.g., if you only want to disable but keep the job).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_containerDelete containerBDestructive
Permanently delete a container and its data. DESTRUCTIVE — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| force | No | Force deletion even if running | |
| confirm | No | Set to true once the user has approved this destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, and the description confirms permanence. It adds the behavioral instruction to ask for confirmation, which is useful. No contradictions found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with a clear warning, front-loading the purpose and key action. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of annotations and simple input schema, the description covers the essential point of destruction and user confirmation. However, it omits the required parameters, behavior when container is running, and other practical details that would aid completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (force and confirm have descriptions, node and vmid do not). The description does not explain any parameters beyond implicitly referencing confirm via 'ask the user to confirm'. It fails to compensate for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool permanently deletes a container and its data, which distinguishes it from sibling tools like delete_vm or delete_backup. However, it does not explicitly specify that this applies to LXC containers, though context implies it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises asking for user confirmation due to destructive nature, but offers no guidance on when to use this tool versus siblings (e.g., delete_vm) or the force parameter. No preconditions or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_ha_groupDelete HA groupADestructive
Delete an HA group. Resources assigned to it revert to the default group. DESTRUCTIVE — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| group | Yes | ||
| confirm | No | Set to true once the user has approved this destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, but description adds meaningful behavioral detail: resources revert to default group. It also reinforces the destructive nature. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action, no filler words. Efficiently communicates purpose, side effect, and usage direction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive delete tool with 2 parameters and no output schema, the description covers the key behavioral aspects (reverting resources), confirmation requirement, and purpose. Adequate for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 2 parameters with 50% description coverage (confirm has description). Description adds context by mentioning user confirmation, which ties to the confirm parameter, but does not elaborate on the group parameter beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Delete an HA group' (specific verb+resource) and mentions side effect 'Resources assigned to it revert to the default group'. Distinguishes from sibling tools like create_ha_group, update_ha_group, list_ha_groups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'DESTRUCTIVE — ask the user to confirm before invoking', providing a clear guideline for when to use (after user confirmation) and when not to use (without confirmation). No alternatives mentioned, but the guideline is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_isoDelete ISO/templateADestructive
Permanently delete an ISO or template. DESTRUCTIVE — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| confirm | No | Set to true once the user has approved this destructive action | |
| storage | Yes | ||
| filename | Yes | Filename (e.g. 'ubuntu-22.04.iso') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false. The description adds 'Permanently delete' and the confirmation instruction, reinforcing the destructive nature and providing a safety step. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action, no redundant words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive delete tool with annotations and no output schema, the description is mostly complete. It lacks explanation of the three required parameters (node, storage, filename) but the schema provides their names and some descriptions. Overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain any parameters beyond the schema. Schema coverage is 50% (2 of 4 parameters have descriptions), and the description fails to add meaning for the undocumented parameters (node, storage). With low coverage, the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Permanently delete an ISO or template' uses a specific verb ('delete') and clearly identifies the resource type. It distinguishes this tool from siblings that delete VMs, containers, backups, snapshots, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes 'DESTRUCTIVE — ask the user to confirm before invoking', which provides explicit guidance on when to use (when user requests deletion) and the need for user confirmation. It does not compare to alternative tools for listing ISOs, but the guidance is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_node_certificateDelete node certificateADestructive
Delete a custom certificate from a node. HIGH RISK — reverts to self-signed. Ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| force | No | ||
| confirm | No | Set to true once the user has approved this destructive action | |
| restart | No | Restart pveproxy after deletion | |
| certname | Yes | Certificate name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive (destructiveHint: true). The description adds valuable context on the behavioral impact (reverting to self-signed) and the required confirmation process, going beyond the annotations. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that cover purpose, risk, and usage instruction. Every word earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema and the presence of 5 parameters including 'restart', the description omits explanation of the restart behavior and other consequences. It covers the essential risk and confirmation need but leaves some operational gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60%, which is moderate. The description itself adds no parameter-level details, leaving the schema to cover them. The baseline for this coverage is 3, as the description does not compensate further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete a custom certificate from a node') with a specific verb and resource, distinguishing it from sibling delete tools. It immediately communicates the high risk and the consequence of reverting to self-signed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly warns of high risk, specifies the consequence ('reverts to self-signed'), and instructs to ask for confirmation before invoking. This provides clear guidance on when to use and the necessity of user approval, though it does not mention alternative actions like updating the certificate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_node_networkDelete network interfaceADestructive
Delete a network interface. HIGH RISK — will disconnect any VM/CT using it. Ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| iface | Yes | ||
| confirm | No | Set to true once the user has approved this destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds detailed behavioral context beyond annotations: it explains that the tool will disconnect any VM/CT using the interface, which is not captured by the destructiveHint=true annotation alone. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences delivering the core action and risk advisory. No redundant information; each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately covers the destructive nature and confirmation requirement. It could mention irreversibility or prerequisites, but the combination with schema required fields suffices for an agent to safely invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not directly explain the 'node' and 'iface' parameters, relying on the schema. It adds value for the 'confirm' parameter by aligning with the instruction to ask for confirmation. With schema coverage at 33%, the description partially compensates but could detail parameter roles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete a network interface' with a specific verb and resource, and distinguishes from siblings like create_node_network and update_node_network by highlighting the destructive nature and disconnection impact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly warns of high risk and instructs to ask for user confirmation. It provides clear context for when to use with caution, though it doesn't list specific alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_node_subscriptionDelete subscriptionCIdempotent
Remove the Proxmox subscription from a node.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Remove' (mutation) but annotations set destructiveHint=false, which could be misleading. No additional behavioral context beyond annotations, such as permission requirements or side effects. IdempotentHint is set true, but the description does not reinforce this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise single sentence. No wasted words. However, it lacks detail that could be added without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Minimal context for a simple tool. Does not explain what happens after removal (e.g., subscription status, license). No output schema means the description could clarify return behavior. Adequate but with noticeable gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has one 'node' parameter with 0% description coverage. The description does not explain what 'node' represents (e.g., node identifier). Fails to compensate for missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Remove the Proxmox subscription from a node' clearly states the verb (Remove), resource (Proxmox subscription), and scope (from a node). It distinguishes from sibling tools like set_node_subscription (add/update) and get_node_subscription (read).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No mention of prerequisites or typical scenarios. The description does not indicate that get_node_subscription should be used to view current subscriptions, or set_node_subscription to modify.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_poolDelete resource poolADestructive
Permanently delete a resource pool. Members are NOT deleted; they remain orphaned. DESTRUCTIVE — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| poolid | Yes | ||
| confirm | No | Set to true once the user has approved this destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, but the description adds the specific effect that members remain orphaned, which is not in annotations. It also reinforces the need for user confirmation, providing behavioral context beyond what annotations offer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two sentences that front-load the key information: purpose, effect, and critical warning. No word is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive tool with partial schema coverage and no output schema, the description adequately covers the important aspects: destruction effect, membership behavior, and confirmation requirement. It is sufficient for an agent to understand what happens and how to invoke it safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only 'confirm' has a description). The tool description does not add any new information about the parameters; it does not explain 'poolid' or further clarify 'confirm'. Given the moderate coverage, the description should compensate but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'delete' and the resource 'resource pool'. It also specifies that members are not deleted but orphaned, distinguishing it from other deletion tools. This provides a specific, complete purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'DESTRUCTIVE — ask the user to confirm before invoking,' providing a clear usage guideline. While it does not list alternatives, the context of sibling tools includes create_pool and update_pool, making the when-to-use implicit. The guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_replication_jobDelete replication jobADestructive
Delete a replication job. Existing replicated snapshots are kept unless explicitly pruned. DESTRUCTIVE — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| force | No | ||
| confirm | No | Set to true once the user has approved this destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true and readOnlyHint=false. The description adds that existing snapshots are kept unless pruned, providing useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action. Every word adds value; no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core action and behavioral note. Given the complexity of sibling tools, it could elaborate on when to use this versus other deletion tools, but it is still fairly complete for a simple deletion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 33% schema description coverage (only 'confirm' has a description), the description adds no parameter information. It could explain that 'id' is required, 'force' bypasses checks, and 'confirm' indicates user approval.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete a replication job' with the specific verb and resource. It distinguishes from sibling tools like create_replication_job and prune_backups by focusing on replication job deletion and noting that snapshots are kept unless pruned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly flags the tool as destructive and instructs to ask user confirmation. However, it does not compare with alternatives like delete_backup or other deletion tools, which would strengthen guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_sdn_controllerDelete SDN controllerADestructive
Delete an SDN controller. DESTRUCTIVE — associated zones/vnets will stop working. Ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| confirm | No | Set to true once the user has approved this destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds that associated zones/vnets will stop working, which is important behavioral context. It also reinforces the need for confirmation. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. Front-loaded with the action and resource. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive delete tool with two parameters and no output schema, the description provides necessary context: consequences and confirmation requirement. It could add detail about the 'name' parameter but is generally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (only 'confirm' has description). The tool description does not add any parameter semantics beyond the schema. It mentions confirmation but doesn't explain the 'name' parameter. Baseline is 3 due to partial coverage, and description doesn't compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and the resource ('SDN controller'). It distinguishes from siblings like create_sdn_controller or update_sdn_controller. The warning about destructive effects further clarifies its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to ask for user confirmation before invoking, which is a clear usage guideline. It doesn't explicitly say when not to use, but the destructive nature and the confirm parameter imply that. It could mention alternative non-destructive actions, but it's sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_sdn_subnetDelete SDN subnetADestructive
Delete an SDN subnet. DESTRUCTIVE — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| vnet | Yes | ||
| subnet | Yes | ||
| confirm | No | Set to true once the user has approved this destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=true and readOnlyHint=false. The description adds the instruction to ask for user confirmation, which reinforces the destructive nature. However, it does not disclose additional behavioral traits such as cascading deletes or prerequisites, relying heavily on annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: first states the action, second provides a critical warning. It is extremely concise with no wasted words, front-loading the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is destructive with 3 parameters and no output schema. The description lacks prerequisites (e.g., subnet must exist, not in use), error conditions, or return value. For a delete operation, more context is needed to ensure correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only the 'confirm' parameter has a description). The tool description does not add any parameter semantics beyond stating the action. With low coverage, the description should compensate, but it fails to explain what 'vnet' and 'subnet' refer to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete an SDN subnet', providing a specific verb and resource. It distinguishes from sibling tools like create, update, list, get, and other delete operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes 'DESTRUCTIVE — ask the user to confirm before invoking', which provides a clear when-to-use guideline (only after user confirmation). It does not explicitly mention when not to use or alternatives, but the warning is sufficient for this context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_sdn_vnetDelete SDN vnetADestructive
Delete an SDN vnet and its subnets. DESTRUCTIVE — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| confirm | No | Set to true once the user has approved this destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint: true. The description adds value by stating that it also deletes the subnets (cascading deletion) and reinforces the need for user confirmation. This provides useful behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using two short sentences to convey the action, resource, and critical warning. The key information is front-loaded, and every word is meaningful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive delete tool with two parameters and no output schema, the description covers the basics: what it does and that it requires confirmation. However, it lacks context about prerequisites (e.g., vnet must not be in use), potential failure conditions, or post-deletion behavior. It is minimally adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 50% description coverage (only 'confirm' is described). The tool description does not add any additional details about the 'name' parameter (e.g., its format or purpose) or further clarify 'confirm'. Since the schema coverage is low, the description should compensate, but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete an SDN vnet and its subnets,' which specifies the exact resource and action. This distinguishes it from sibling tools like delete_sdn_subnet (which deletes only a subnet) and other delete tools for different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs the agent to ask the user for confirmation before invoking due to its destructive nature. This provides clear guidance on when to use the tool (only with user approval). However, it does not explicitly mention when not to use it or compare with alternatives like delete_sdn_subnet, leaving some room for improvement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_sdn_zoneDelete SDN zoneADestructive
Delete an SDN zone. DESTRUCTIVE — vnets/subnets in this zone will stop working. Ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| confirm | No | Set to true once the user has approved this destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds that vnets/subnets will stop working, which goes beyond the destructiveHint annotation. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with front-loaded purpose. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Sufficient for a destructive delete tool given sibling context and annotations. No output schema but behavioral warning is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description does not detail parameters beyond schema. Schema covers one parameter; description adds implicit guidance on confirm but no explicit parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Delete' and resource 'SDN zone'. Distinguishes from sibling tools like create_sdn_zone and update_sdn_zone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states destructive nature and instructs to ask user confirmation. No alternative mentioned but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_snapshotDelete snapshotADestructive
Delete a snapshot from a VM or container. DESTRUCTIVE — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| force | No | Force removal even if removal is not safe | |
| confirm | No | Set to true once the user has approved this destructive action | |
| vm_type | No | qemu | |
| snapname | Yes | Snapshot name to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly labels the tool as DESTRUCTIVE, which aligns with the destructiveHint: true annotation. It adds the instruction to ask for user confirmation, providing behavioral context beyond the annotation. This is sufficient for a simple deletion action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences: one stating the action and one providing a critical warning. Every sentence is necessary and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple deletion tool with no output schema and good annotations, the description is mostly complete. It covers the core operation and the destructive nature. However, it could mention that the snapshot must exist or that force and confirm parameters control behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 6 parameters, but only 50% have descriptions. The tool description does not mention any parameters or provide additional meaning beyond the schema. Given the low schema coverage, the description should have compensated, but it fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it 'Deletes a snapshot from a VM or container,' which is a specific verb+resource pair. It distinguishes itself from sibling tools like create_snapshot, rollback_snapshot, and list_snapshots by explicitly mentioning deletion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage guideline: 'DESTRUCTIVE — ask the user to confirm before invoking.' This tells the agent when to use the tool (only after user confirmation) and implies a safety protocol. However, it does not provide explicit alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_storageDelete storage poolADestructive
Delete a storage pool from Proxmox config. Underlying disk/files are NOT removed (Proxmox only un-registers the pool). DESTRUCTIVE — VMs/CTs using it lose access. Ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Set to true once the user has approved this destructive action | |
| storage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds key behavioral details beyond annotations: states that underlying files are not removed and that VMs/CTs lose access, which are not indicated by the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences efficiently cover purpose, nuance, and usage warning, with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core action, side effects, and confirmation requirement. However, it does not mention potential cluster-wide implications or dependencies on other resources.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only 'confirm' has description). The tool description does not explain the 'storage' parameter beyond its name, leaving ambiguity about its value (e.g., pool ID vs. name).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete a storage pool from Proxmox config') and the scope ('Underlying disk/files are NOT removed'), distinguishing it from other delete tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly warns that VMs/CTs lose access and instructs to ask user confirmation before invoking. However, no alternative actions are suggested.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_vmDelete VMADestructive
Permanently delete a VM and its disks. DESTRUCTIVE — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| force | No | Force-delete if running | |
| purge | No | Purge from backup jobs | |
| confirm | No | Set to true once the user has approved this destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the important behavioral note about requiring user confirmation and emphasizes permanence, going beyond the destructiveHint annotation. No contradiction with annotations is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences with no fluff—and front-loads the key purpose and caution.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is destructive and has an output schema absent, the description adequately covers the core behavior and necessary caution. It could briefly mention the result or impact on related resources, but it's sufficient for a delete operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no additional meaning for the parameters beyond the input schema. With schema coverage at 60%, it fails to compensate for undocumented parameters like node and vmid.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'permanently delete a VM and its disks' and highlights its destructive nature, distinguishing it from other delete operations like delete_container or delete_backup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises to ask the user for confirmation before invoking, providing clear usage context. However, it does not explicitly state when not to use the tool or mention alternatives among the many delete siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_isoDownload ISO/template from URLA
Trigger a server-side download from a URL into a storage pool (useful for large ISOs). Proxmox fetches the file directly.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Source URL (http/https/ftp) | |
| node | Yes | Target node | |
| content | No | Content type | iso |
| storage | Yes | Target storage | |
| checksum | No | Optional checksum for verification | |
| filename | Yes | Destination filename | |
| checksum_algorithm | No | sha256 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate it is a write operation (readOnlyHint=false) and not idempotent (idempotentHint=false). The description adds that it triggers a server-side fetch and mentions Proxmox fetches directly, but does not disclose potential side effects like storage space impact, network usage, or failure handling. With annotations providing basic safety profile, the description adds moderate value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first front-loads the action and target, second adds mechanism and benefit. No wasted words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple download tool with no output schema and well-covered parameters, the description is largely complete. It conveys the core function and use case. However, it omits mention of prerequisites (e.g., storage pool must exist) or return behavior (e.g., task status), which could be added for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 86% of parameters with descriptions (e.g., url, node, storage, filename, checksum). The description does not add any parameter-specific meaning beyond the schema. Baseline 3 is appropriate as schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Trigger a server-side download from a URL into a storage pool' with a specific verb ('download'), resource ('URL'), and target ('storage pool'). It differentiates from client-side uploads by noting it's server-side, and highlights being useful for large ISOs, distinguishing it from sibling tools that are primarily local operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance by stating it is 'useful for large ISOs', implying it is optimized for large files where client-side download-upload would be inefficient. However, it does not explicitly state when not to use it or provide alternatives, leaving some ambiguity. No other sibling tool directly competes, so the guidance is adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_container_commandExecute command in container (SSH + pct exec)A
Run a shell command inside an LXC container by shelling out to pct exec <vmid> -- <cmd> on the host. Requires SSH access (PROXMOX_SSH_* env).
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Host node that owns the container | |
| vmid | Yes | Container ID | |
| command | Yes | Shell command to run inside the container | |
| timeout_seconds | No | Client timeout |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the agent knows this is a mutating but not destructive operation. The description adds that the command is executed via 'pct exec' over SSH, which provides some implementation context. However, it does not disclose potential side effects (e.g., command output handling, exit codes, or resource limits beyond the timeout parameter).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, very concise, and front-loaded with the primary action. Every word earns its place; no fluff or repetition. It efficiently communicates the core functionality and a key prerequisite.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (execute a command in a container), and the description covers the essential action and prerequisites. However, it lacks details about the output format (e.g., stdout/stderr, exit code) and does not explain the timeout behavior beyond the parameter existence. Given the absence of an output schema, this information would help an agent interpret results correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 4 parameters, so the schema already defines each parameter. The description adds context that the command is run via 'pct exec' and that SSH is required, which helps interpret the 'node' and 'vmid' parameters as Proxmox host and container ID. This adds marginal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: running a shell command inside an LXC container via pct exec. It specifies the resource (LXC container) and the method (SSH to host). However, it does not explicitly distinguish from sibling tools like vm_agent_exec for VMs, but the mention of 'container' and 'pct exec' makes the purpose clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the prerequisite of SSH access (PROXMOX_SSH_* env), which is a useful precondition. However, it provides no guidance on when to use this tool versus alternatives (e.g., vm_agent_exec for VMs, or direct host commands via other tools). The usage context is implied but not fully explicated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_backup_jobGet backup schedule jobBRead-onlyIdempotent
Get a single scheduled backup job.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the title; annotations already declare readOnly, idempotent, and non-destructive, but the description does not elaborate on behaviors like error handling or return structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded, but could include more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool with no output schema, the description omits information about the return value or fields, leaving the agent partially uninformed about what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the schema already describes the single 'id' parameter. The description adds no further meaning beyond the schema's 'Job ID'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('a single scheduled backup job'), effectively distinguishing it from sibling tools like 'list_backup_jobs'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a single job is needed by ID, but provides no explicit guidance on when not to use it or alternatives among siblings like 'get_job'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_backup_job_includedGet backup job included guestsARead-onlyIdempotent
List the VMs/containers that a scheduled backup job would capture.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so safety is clear. Description adds that the job is scheduled, but no other behavioral details (e.g., pagination, ordering).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff. Purpose is front-loaded and clearly communicated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with one parameter, no output schema. Description is adequate but could mention the return format (e.g., list of VM/container IDs or names) to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter 'id' is unnamed in description. Schema description coverage is 0%, and description does not clarify that 'id' refers to the backup job ID. Parameter meaning is left implicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists VMs/containers captured by a scheduled backup job. Uses specific verb 'list' and distinguishes from sibling tools like get_backup_job and list_backup_jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage after obtaining a backup job ID. No explicit guidance on when to use or alternatives, but the tool's purpose is straightforward.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cluster_statusGet Proxmox cluster statusARead-onlyIdempotent
Return quorum status, cluster name/version, and a list of nodes with their online state and IDs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and no destructiveHint. The description adds the specific return fields (quorum status, cluster name/version, node list), which provides useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It front-loads the key information and is immediately understandable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains the return values adequately. It covers the main elements, though details like data formats (e.g., node IDs as strings) are omitted. Still, it is sufficient for a simple status query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema coverage is 100%. The description adds value by explaining what the tool returns, which is the entire semantic content since there are no parameters to describe.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns quorum status, cluster name/version, and node list with state and IDs. It uses a specific verb (return) and resource (cluster status), and uniquely distinguishes itself from sibling tools like get_nodes or get_node_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives (e.g., get_nodes for node-level info). While the purpose is clear, no guidance on when-not or alternative tools is provided, leaving it to the agent to infer from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_container_configGet container configBRead-onlyIdempotent
Return the full Proxmox container configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds 'full', implying complete configuration is returned. However, no additional behavioral context (e.g., auth needs, rate limits) is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, efficiently conveying the tool's core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is insufficiently complete given the 0% schema coverage and no output schema. It omits parameter semantics and usage context, which are necessary for an agent to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the parameters 'node' or 'vmid'. Despite the schema providing types and patterns, the agent lacks semantic context for these parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Return the full Proxmox container configuration.' It specifies the action (return), the resource (container configuration), and the context (Proxmox). Among sibling tools like 'get_container_status' or 'get_vm_config', this uniquely identifies the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as 'get_container_status' for status or 'get_containers' for listing. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_container_ipGet container IPsARead-onlyIdempotent
Return the container's network interfaces with their IPv4/IPv6 addresses (DHCP-aware — no static IP needed).
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and idempotent. Description adds valuable context: DHCP-aware (no static IP needed). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with core purpose and extra context (DHCP). Front-loaded, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so return format is vaguely described ('network interfaces with IPs'). Lacks detail on structure or pagination. Adequate for simple read.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% coverage and description does not explain 'node' or 'vmid'. They remain undefined beyond schema constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it returns container network interfaces with IP addresses. Distinct from siblings like get_container_config or get_container_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for fetching IPs, but no explicit when-to-use or alternatives. Context from sibling names helps but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_container_rrdGet container RRD time seriesCRead-onlyIdempotent
Return RRD time series for an LXC container.
| Name | Required | Description | Default |
|---|---|---|---|
| cf | No | AVERAGE | |
| ds | No | ||
| node | Yes | ||
| vmid | Yes | ||
| timeframe | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description only restates 'Return' without adding further behavioral context, such as what the time series contains or any rate limits. Minimal added value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, but it lacks essential details. While not verbose, it is too minimal to be fully useful. A bit more structured information would improve clarity without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters (3 required) and no schema descriptions, the description is severely incomplete. It omits parameter meanings, return value format, usage context, and differentiation from similar tools. An agent cannot effectively invoke this tool based on the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the 5 parameters (cf, ds, node, vmid, timeframe). The agent has no insight into the meaning of 'cf' (consolidation function), 'ds' (data source), or the timeframes. This is a critical gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return' and the resource 'RRD time series' for 'LXC container'. It is specific but does not differentiate from the sibling tool get_container_rrddata, which likely has a similar purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like get_container_rrddata or get_vm_rrd. There is no mention of prerequisites or context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_container_rrddataGet container recent RRD samplesCRead-onlyIdempotent
Return recent RRD samples for an LXC container.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| timeframe | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds the term 'recent' but does not clarify the time range or other behavioral traits like data format or potential size. It is adequate but adds minimal value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded and contains no unnecessary words. It is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 required params, no output schema, no parameter descriptions), the description is insufficient. It does not explain what RRD samples are, what the output looks like, or how the timeframe parameter works. It only covers the bare minimum.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must explain the parameters. It does not mention 'node', 'vmid', or 'timeframe' at all, leaving the agent without any semantic context for these required fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool returns recent RRD samples for an LXC container. It uses a specific verb (Return) and resource (RRD samples for LXC container). However, it does not distinguish itself from the sibling tool 'get_container_rrd' which likely has a similar purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_container_rrd' or 'get_vm_rrddata'. There is no mention of 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.
get_containersList containers (cluster-wide)ARead-onlyIdempotent
List all LXC containers across the cluster with status and resource usage.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, which indicate a safe, read-only operation. The description adds value by specifying that it returns container status and resource usage, providing behavioral context beyond the annotations. No contradictions or missing safety details are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that contains all essential information: the action ('List'), the scope ('all LXC containers across the cluster'), and the content ('with status and resource usage'). There is no trivial or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with no parameters and no output schema, the description is complete. It states what the tool does and what it returns (status and resource usage). The annotations cover safety and idempotency. No additional context is necessary for an agent to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and the schema coverage is 100% (empty schema). With zero parameters, the baseline score is 4. The description does not need to add parameter meaning, and it correctly aligns with the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all LXC containers across the cluster with status and resource usage.' The verb 'List' and resource 'LXC containers (cluster-wide)' are specific, and the scope 'all' distinguishes it from sibling tools that target individual containers (e.g., get_container_status, get_container_config) or other resource types (e.g., get_vms).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for getting an overview of all containers, but it does not explicitly state when to use this tool versus alternatives. For example, it does not mention that for a single container's details, one should use get_container_config or get_container_status. The absence of explicit when-not or alternative guidance keeps the score at a minimal adequate level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_container_statusGet container live statusBRead-onlyIdempotent
Return live status (cpu, mem, uptime) of a container.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, and non-destructive behavior. The description adds the return fields but does not disclose any behavioral traits beyond that (e.g., freshness, error handling, auth requirements). Limited added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. Front-loaded with verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two required params and no output schema, the description is somewhat complete but lacks parameter context and usage boundaries. Moderate completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and description fails to explain parameters 'node' and 'vmid'. No compensation for missing schema descriptions, leaving the agent without understanding what values to provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns live status (cpu, mem, uptime) of a container. This distinctively separates it from siblings like get_container_config (config) and get_containers (list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. The purpose is implied (when live stats are needed), but without exclusionary context or sibling differentiation it is average.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ha_groupGet HA groupBRead-onlyIdempotent
Get a single HA group configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| group | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, signaling a safe read operation. The description adds that it returns 'configuration', which provides some context beyond annotations but does not disclose additional traits like permissions or data format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence and concise, but it omits important parameter details. It is appropriately sized but incomplete, earning a middling score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and minimal description, the tool definition lacks sufficient context for an agent to understand what 'HA group configuration' entails or how to use the 'group' parameter. A more complete description would clarify the parameter and expected output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the 'group' parameter or its expected values (e.g., group name, identifier). The description adds no meaning beyond the schema, failing to compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get a single HA group configuration' uses a specific verb and resource, clearly differentiating it from sibling tools like 'list_ha_groups', 'create_ha_group', 'update_ha_group', and 'delete_ha_group'. It unambiguously states the tool's action and target.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives like 'list_ha_groups' for browsing or 'create_ha_group' for creation. The usage context is implied but lacks direct guidance or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ha_resource_statusGet HA resource statusARead-onlyIdempotent
Get the current HA manager state for a single resource.
| Name | Required | Description | Default |
|---|---|---|---|
| sid | Yes | Service ID, e.g. 'vm:100' or 'ct:101' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds 'current HA manager state', indicating a snapshot. No additional behavioral details (e.g., error behavior, required permissions) that go beyond annotations. Adequate given annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence of 8 words, front-loaded with verb and resource. No redundancy or extraneous information. Efficiently communicates the core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter and no output schema, the description is mostly complete. It could mention what 'state' entails or possible statuses, but given annotations and schema coverage, it provides sufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for sid, with its description providing examples. The tool description does not add extra semantic information about the parameter beyond what the schema provides. Baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Get the current HA manager state for a single resource.' Verb 'get' and specific resource (HA manager state for a single resource) clearly define purpose. It distinguishes from sibling 'get_ha_status' (likely global HA status) and 'list_ha_resources' (list all resources).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-to-avoid guidance. The implication is that it's for a single resource identified by sid, but alternatives like 'get_ha_status' or 'get_ha_group' are not mentioned. Minimum viable clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ha_statusGet HA manager statusARead-onlyIdempotent
Get the cluster HA manager status, including quorum and currently-active manager node.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds context about what the status contains, providing value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words, front-loaded with action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, clear annotations, and no output schema, the description fully covers what the agent needs to know about the tool's purpose and output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100%. The description correctly adds no extra parameter information, meeting the baseline for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves cluster HA manager status, including specific elements (quorum, active manager). This distinguishes it from sibling tools like get_cluster_status or get_ha_resource_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives are mentioned, but the name and description are sufficiently specific for an agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_jobGet job detailsARead-onlyIdempotent
Fetch a single tracked job by job_id, optionally refreshing from Proxmox.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job identifier returned by a prior tool call | |
| refresh | No | Force a fresh poll of the underlying Proxmox task |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint as false. The description adds the behavioral nuance of optional refresh from Proxmox, which indicates a distinction between cached and fresh data. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 12 words, front-loading the core action and resource. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple fetch tool with rich annotations, the description is nearly complete. It misses explicit mention of return value format, but given no output schema and safe annotations, the omission is acceptable. Adequate for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters have descriptions in the input schema (100% coverage). The tool description only echoes the refresh parameter's purpose ('optionally refreshing from Proxmox'), adding minimal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool fetches a single tracked job by job_id, with optional refresh from Proxmox. The verb 'Fetch' and resource 'tracked job' are specific, and the tool naturally distinguishes from list_jobs (multiple) and other job-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions optional refresh but does not explicitly guide when to use this tool versus siblings like poll_job, retry_job, or cancel_job. The context implies usage for retrieving job details, but lacks explicit alternatives or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_configGet node configBRead-onlyIdempotent
Return the node's Proxmox configuration (description, ACPI wake-on-lan, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is clear. The description adds that it returns configuration data, but doesn't elaborate on what exactly is included or any edge cases. Given annotations cover the main behavioral traits, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It is efficient but could benefit from a bit more detail to improve clarity without adding significant length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is simple (one required parameter, no output schema), the description provides a basic understanding but does not cover what the returned configuration includes or any additional context. It is minimally adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, meaning the parameter 'node' has no description in the schema. The tool description does not explain the 'node' parameter either, leaving the agent to infer its meaning from context. This is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the node's Proxmox configuration with examples (description, ACPI wake-on-lan). The name and context distinguish it from sibling tools like get_node_dns or get_node_hosts, but no explicit differentiation is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it specify any prerequisites or context for usage. It only describes the function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_dnsGet node DNSCRead-onlyIdempotent
Return the node's DNS configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, indicating a safe read operation. The description adds that it returns DNS configuration, which is consistent but does not elaborate on any additional behavioral traits (e.g., permission requirements, error conditions).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundancy. However, it is perhaps too terse and could benefit from additional structure or brevity without sacrificing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is minimal. It lacks details on the return value format and any prerequisites, which reduces completeness for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not elaborate on the 'node' parameter. It fails to clarify what the parameter represents (e.g., node ID or name) or any constraints, leaving the agent with insufficient information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Return the node's DNS configuration' clearly states the tool's action (return) and resource (node's DNS configuration). It distinguishes from siblings like set_node_dns (write) and get_node_config (broader config), but does not explicitly differentiate from other get_node_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_node_config or set_node_dns. The description lacks explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_hostsGet node /etc/hostsCRead-onlyIdempotent
Return the node's /etc/hosts entries.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety profile. The description adds only that it returns entries, which is consistent but does not provide additional behavioral details like format or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, terse sentence with no extraneous information. It is appropriately front-loaded, though it could be more detailed without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should explain the return format (e.g., list of strings, structured data). It does not, leaving the agent uncertain about how to parse the result. Parameter explanation is also missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the tool description does not elaborate on the single required 'node' parameter. The agent receives no guidance on what value to provide (e.g., hostname, IP, ID), which is critical for a one-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return' and the resource 'node's /etc/hosts entries', making the purpose evident. It distinguishes from the write sibling 'set_node_hosts' implicitly, but does not explicitly differentiate from other retrieval tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_node_config' or other node inspection tools. The description lacks context about prerequisites or exclusivity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_journalGet node systemd journalARead-onlyIdempotent
Read recent systemd journal entries from a Proxmox node.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Node name | |
| limit | No | Number of lines to return (default 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds 'recent' but does not elaborate on behavior like output format, time range, or error conditions. With high annotation coverage, the description adds minimal value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no extraneous information. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with no output schema, the description explains the core action. However, it omits details like output format or time range, which could be inferred from systemd journal context. Still, it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both node and limit described). The description does not reference parameters, but schema already provides adequate meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads recent systemd journal entries from a Proxmox node, using a specific verb and resource. This distinguishes it from siblings like get_node_syslog (syslog) and get_node_status (status).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (reading journal entries) but does not explicitly compare to siblings like get_node_syslog or provide when-not-to-use guidance. The agent must infer from the name and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_reportGet node diagnostic reportARead-onlyIdempotent
Return a Proxmox pvereport-style diagnostic bundle as text.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is clear. The description adds that output is text, but does not provide additional behavioral context such as potential size, required permissions, or effect on the system.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core purpose and output format. Every word contributes meaning with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter and no output schema, the description covers the essential function and output format. However, it could be slightly improved by noting the expected size or structure of the diagnostic bundle, but overall it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage for the 'node' parameter. The description does not explain what 'node' is (e.g., node name or identifier), leaving the agent to infer from context. Description should have clarified the parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool returns a Proxmox pvereport-style diagnostic bundle as text. The verb 'Return' and specific resource description make purpose unambiguous, and it distinguishes from sibling 'get_' tools by focusing on a node diagnostic report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for obtaining a node diagnostic bundle, but does not explicitly state when to use this tool over alternatives or provide any prerequisites or exclusion criteria. Usage context is implied but not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nodesList Proxmox nodesARead-onlyIdempotent
List all nodes in the cluster with their status, CPU, memory, uptime, and role.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety profile. The description adds value by specifying the returned fields (status, CPU, memory, uptime, role), which is behavioral context beyond annotations. It does not mention any additional behavioral traits, but none are needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is clear and front-loaded. It immediately states the action ('List all nodes') and the key information fields. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool (no parameters, clear annotations), the description is complete. It explains what the tool lists and what fields are returned. Without an output schema, mentioning the fields is sufficient. Minor gap: it could note that the output is a list, but implied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the schema is empty. The description does not need to add parameter meaning; it correctly indicates no input is required. Baseline is 4 for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all nodes in the cluster with specific attributes (status, CPU, memory, uptime, role). This distinguishes it from sibling tools like get_node_status or get_cluster_status, which operate on individual nodes or cluster-level status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for getting an overview of all nodes, but does not explicitly state when to use this tool versus alternatives like get_node_status (for a single node) or get_cluster_status (for cluster health). No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_statusGet single node statusARead-onlyIdempotent
Get detailed status (CPU, memory, uptime, storage) for a single Proxmox node.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Node name (e.g. 'pve', 'pve2') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations clearly indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description does not need to repeat safety traits. The description adds value by listing the specific data fields returned (CPU, memory, uptime, storage), which goes beyond the annotations. However, it does not disclose additional behavioral traits such as response format or any caching behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 9 words, conveying all necessary information without any fluff. It is front-loaded with the main purpose and structured efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lists the main components of the status (CPU, memory, uptime, storage), which is useful. However, it does not mention any additional returned fields or the output format (e.g., JSON). For a simple read-only tool with no output schema, the description is mostly complete but could give a hint about the response structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage with a clear description for the 'node' parameter ('Node name (e.g. 'pve', 'pve2')'). The description adds no additional meaning beyond stating the tool operates on a 'single Proxmox node'. Baseline score of 3 is appropriate since the schema already documents the parameter adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get detailed status (CPU, memory, uptime, storage) for a single Proxmox node.' This provides a specific verb ('Get') and resource ('detailed status'), and lists the key metrics included. It distinguishes itself from siblings like get_nodes and get_node_config by specifying the scope ('single node').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for obtaining detailed node status but does not explicitly state when to use this tool versus alternatives. For example, it does not mention when to prefer get_node_status over get_nodes (which lists all nodes) or get_cluster_status. No exclusions or context for when not to use it are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_subscriptionGet node subscriptionBRead-onlyIdempotent
Return the Proxmox subscription state for a node.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint. The description adds minimal context ('subscription state') but does not disclose additional traits like error handling or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with no wasted words. Information is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter and no output schema, the description is minimally adequate but lacks return type information or error scenarios, which could be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has one parameter 'node' with no description (0% coverage). The description mentions 'for a node' but does not explain the parameter's meaning, valid values, or format beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return' and the resource 'Proxmox subscription state for a node', distinguishing it from mutation siblings like set_node_subscription and delete_node_subscription.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. It does not mention that it is read-only (though annotations indicate readOnlyHint) or provide any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_syslogGet node syslogBRead-onlyIdempotent
Read recent syslog lines from a Proxmox node.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Node name | |
| limit | No | Number of lines to return (default 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint, so the safety profile is clear. However, the description adds no additional behavioral context such as data source (e.g., /var/log/syslog), default limit behavior, or potential performance impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that efficiently conveys the tool's purpose without extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with well-documented parameters and supportive annotations, the description is sufficient. It could optionally specify the log source (syslog vs journal) but is not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema documentation covers 100% of parameters with descriptions. The description adds no extra meaning, which is acceptable given the schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it reads recent syslog lines from a node. However, it does not differentiate from sibling tools like get_node_journal, which might serve a similar purpose (journal vs syslog).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like get_node_journal or get_node_report. The description does not provide context on appropriate scenarios or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_timeGet node timeARead-onlyIdempotent
Return the node's system time, timezone, and local/UTC difference.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is clear. The description adds that it returns time, timezone, and difference, which is consistent and adds some context but not beyond what is expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the key action and outputs. No extraneous words, every part adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one param, no output schema), the description sufficiently covers what the tool does and what it returns. The three output items are listed, which is complete for the agent's decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description should add meaning for the 'node' parameter. However, it does not elaborate on what 'node' refers to (e.g., hostname, ID, IP) or provide any usage hints, leaving the agent to infer from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return' and the resource 'node's system time, timezone, and local/UTC difference', which is specific and distinguishes from sibling tools like 'get_node_timezone' that only returns timezone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. While sibling tools exist for time-related queries (e.g., get_node_timezone, vm_agent_get_time), no context or exclusion criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_timezoneGet node timezoneARead-onlyIdempotent
Return the node's timezone.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds no additional behavioral context (e.g., error cases, return format). It is consistent with annotations, so no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately states the tool's purpose. It is front-loaded and contains no unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with good annotations, the description is mostly adequate. However, it lacks return format details and does not mention any prerequisites or error conditions, which could be helpful given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain the 'node' parameter beyond the tool's purpose. It does not specify what the node string represents (e.g., ID, name) or any constraints, leaving ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Return the node's timezone' uses a specific verb ('Return') and clearly identifies the resource (node's timezone). It distinguishes from sibling tools like 'get_node_time' (returns time) and 'set_node_timezone' (sets timezone).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. Usage is implied by the name and purpose, but there is no guidance on when not to use it or mention of related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_poolGet resource poolARead-onlyIdempotent
Get a single resource pool with its members.
| Name | Required | Description | Default |
|---|---|---|---|
| poolid | Yes | Pool ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds no further behavioral details (e.g., error handling, authentication). Adequate but no extra value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single 8-word sentence, front-loaded, no redundancy. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one required parameter, good annotations, and no output schema, the description covers purpose and resource. Lacks usage guidance but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter 'poolid' is fully described in schema with minLength and description 'Pool ID'. Description adds no additional semantics. Baseline 3 for 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Get', resource 'single resource pool', and scope 'with its members'. It distinguishes from sibling 'list_pools' which lists all pools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when/when-not to use or alternatives provided. Implies use for single pool details, but could benefit from mentioning that list_pools is for listing all pools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_replication_jobGet replication jobBRead-onlyIdempotent
Get a single replication job by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and idempotentHint=true. The description adds no additional behavioral context beyond what annotations convey. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, no fluff. However, it is somewhat under-specified, but conciseness is appropriate for a simple get tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so the description should explain return values. It does not. For a simple tool, it is minimally complete but lacks essential details about what the response contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description states 'by its ID', which matches the 'id' parameter, but adds no further meaning beyond the schema. Schema coverage is 0%, and the description does not compensate with any format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Get' and the resource 'replication job' with the method 'by its ID'. It distinguishes from siblings like 'get_backup_job' or 'get_job' by specifying 'replication job'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No mention of prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_replication_statusGet replication job statusBRead-onlyIdempotent
Get the current replication status (last sync time, duration, errors).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by specifying the returned fields (last sync time, duration, errors), which extends beyond annotation context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loads the action, and contains no extraneous words. It is concise and structured effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description fails to explain the 'id' parameter. It provides the return fields but omits critical context needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one required parameter 'id' with no description, and schema description coverage is 0%. The description does not mention or explain this parameter at all, leaving the agent without context on what the ID represents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets replication status, listing specific fields (last sync time, duration, errors). It effectively distinguishes from sibling 'get_replication_job' which gets configuration details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'get_replication_job'. The description does not mention contexts, exclusions, or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sdn_controllerGet SDN controllerARead-onlyIdempotent
Get a single SDN controller by name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds no additional behavioral context. It does not explain what happens if the name is not found or the return value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that immediately conveys the tool's action and key parameter. No extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-name tool with good annotations, the description is mostly adequate. However, lacking output schema, mentioning the return (controller object or error) would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds minimal value: it states the parameter is a 'name'. This is sufficient for a single obvious parameter but does not elaborate on constraints or format beyond the schema's minLength.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and resource 'a single SDN controller', clearly distinguishing it from sibling 'list_sdn_controllers' which retrieves all controllers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing one specific controller by name, but lacks explicit guidance on when not to use or comparison to alternatives like list_sdn_controllers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sdn_subnetGet SDN subnetCRead-onlyIdempotent
Get a single SDN subnet.
| Name | Required | Description | Default |
|---|---|---|---|
| vnet | Yes | ||
| subnet | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds no behavioral context beyond these, such as required permissions or side effects, so it does not improve on the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise, but it lacks necessary detail. While it avoids verbosity, it does not earn its place by providing additional utility beyond the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema and two required parameters, the description should explain what the tool returns and how to specify the parameters. It does neither, resulting in incomplete context for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain the two required parameters (vnet and subnet). Their meaning, format, or how to find valid values is entirely missing, leaving the agent with no guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get a single SDN subnet' uses a specific verb ('Get') and resource ('SDN subnet'), clearly distinguishing it from sibling tools like list, create, delete, and update. This provides unambiguous purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like list_sdn_subnets. It does not mention any prerequisites or context for use, leaving the agent to infer based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sdn_vnetGet SDN vnetARead-onlyIdempotent
Get a single SDN virtual network.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, idempotentHint, destructiveHint) already disclose safety. Description adds no extra behavioral context, but does not contradict annotations. No annotation contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, no filler, front-loaded with the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Minimal but sufficient for a simple get operation with thorough annotations. However, no output schema or additional details about return value, which could be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter 'name' with schema type string and minLength. Despite 0% schema description coverage, the parameter name and schema are self-explanatory for a get-by-name operation. No additional description needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get a single SDN virtual network' uses a specific verb 'Get' and resource 'SDN virtual network', and distinguishes from the sibling list_sdn_vnets by specifying 'single'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like create_sdn_vnet, delete_sdn_vnet, or update_sdn_vnet. Missing when-not or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sdn_zoneGet SDN zoneCRead-onlyIdempotent
Get a single SDN zone.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description 'Get' aligns with these, but adds no extra behavioral context (e.g., error handling, returned data structure). It is adequate but does not enhance beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence with no wasted words. However, it may be too terse for a tool with one undocumented parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the one required parameter with no schema description, no output schema, and numerous sibling tools, the description lacks essential context. It does not explain what an SDN zone is, how to identify it, or what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single required parameter 'name' has no description in the schema (coverage 0%). The description does not explain that 'name' is the zone identifier or what value to provide, leaving the agent without necessary guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'single SDN zone', distinguishing it from sibling tools like list_sdn_zones (plural) and create/delete/update. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., list_sdn_zones for multiple zones). No mention of prerequisites or context such as requiring the zone to exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_storageList Proxmox storage poolsARead-onlyIdempotent
List all configured storage pools cluster-wide with type, content types, and aggregate usage.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint:true, destructiveHint:false) already indicate a safe read operation. Description adds 'aggregate usage' context but doesn't discuss potential caching, data freshness, or access control beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, front-loaded sentence with clear verb ('List') and resource. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, description hints at return fields (type, content types, aggregate usage). Sufficient for a simple listing tool with no parameters, though could add context about the response format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters, so description cannot add parameter info. Baseline 4 is appropriate; description could imply no filtering but is otherwise adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states listing all storage pools cluster-wide with specific info (type, content types, usage). Unclear distinction from sibling 'list_storages' which likely has the same purpose, but the description is specific and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., list_storages or get_storage for a single pool). No when-not-to-use or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taskGet task statusARead-onlyIdempotent
Get the current status of a Proxmox task by its UPID (e.g. 'UPID:pve:000B5C66:...').
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Node that owns the task | |
| upid | Yes | Task UPID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare `readOnlyHint=true` and `destructiveHint=false`. The description adds the context of using a UPID but does not provide additional behavioral details beyond what annotations cover. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose. No redundant or irrelevant information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with two parameters and no output schema, the description adequately conveys purpose and key parameter (UPID). It does not explicitly mention the `node` parameter, but the schema covers that. Return values are implied by the tool name and description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both parameters. The description adds value by providing an example UPID format, which helps the agent understand the expected input format beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'status of a Proxmox task', and the method 'by its UPID'. It differentiates from sibling tools like `list_tasks` and `get_task_log` by specifying the exact purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (when you have a UPID and need current status) but does not explicitly exclude alternatives or mention when not to use. Siblings like `get_task_log` exist but are not referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_logGet task logBRead-onlyIdempotent
Stream log lines from a Proxmox task (UPID). Useful for diagnosing failures.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Node that owns the task | |
| upid | Yes | Task UPID | |
| limit | No | Number of log lines (default 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the description adds only the behavior of streaming log lines and the diagnostic purpose. No additional disclosures about rate limits, data format, or potential side effects are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is very concise with 2 sentences, front-loading the main action and purpose. No wasted words, though it could be slightly more informative without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with full schema coverage and annotations, the description is minimal but functional. However, it lacks output format details (since no output schema) and does not address potential edge cases or relationship to sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions, so the description does not need to add much. It mentions 'log lines' but does not provide extra constraints or formats beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it streams log lines from a Proxmox task (UPID) and is useful for diagnosing failures. However, it does not differentiate this tool from siblings like get_task or list_tasks, which could cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The phrase 'useful for diagnosing failures' implies context but does not provide exclusions or comparisons to sibling tools such as get_task or list_tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vm_configGet VM hardware configARead-onlyIdempotent
Return the full Proxmox VM configuration (cores, memory, disks, network, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Host node name | |
| vmid | Yes | VM ID | |
| current | No | If true, fetch the *current* (running) config rather than pending |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering behavioral traits. The description adds minimal extra context (e.g., 'full configuration'), but does not disclose additional behaviors like data freshness or size implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It is front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and rich annotations, the description adequately summarizes the return content. Minor gap: it could specify whether current or pending configuration is returned by default (though the 'current' parameter addresses this).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so parameters are already well-documented. The description does not add parameter-specific details, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Return the full Proxmox VM configuration' and lists example fields (cores, memory, disks, network). It distinguishes this read-only operation from sibling tools like get_vm_status or get_vm_pending.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives (e.g., get_vm_pending for pending config). No explicit usage context or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vm_pendingGet pending VM configARead-onlyIdempotent
Return pending config values not yet applied (only present when running config has pending changes).
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint. Description adds helpful context that pending values exist only when changes are pending, beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with clear, front-loaded purpose. Every word is necessary, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with 2 parameters and no output schema. Description explains the return value but not its structure. Adequate but leaves the agent guessing about the actual data format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. Description fails to explain the purpose or constraints of 'node' and 'vmid' parameters. Even though names are self-explanatory, the tool description should compensate for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Return pending config values not yet applied', using a specific verb and resource. It implicitly distinguishes from get_vm_config which returns current applied config.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States condition 'only present when running config has pending changes', implying when to use. However, does not explicitly mention when not to use or suggest alternatives like get_vm_config.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vm_rrdGet VM RRD time seriesARead-onlyIdempotent
Return raw RRD metrics (cpu, mem, netin/out, diskread/write) for a VM at a given timeframe. Used for charting and capacity analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| cf | No | AVERAGE | |
| ds | No | Filter to a specific data source (e.g. 'cpu', 'memused') | |
| node | Yes | ||
| vmid | Yes | ||
| timeframe | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the tool is safe. The description adds that it returns raw RRD metrics and lists some metrics, which adds context but doesn't reveal additional behavioral traits like pagination or response size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the action (Return raw RRD metrics) and purpose (Used for charting and capacity analysis). No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters, no output schema, and low schema coverage, the description is somewhat minimal. It tells what the tool returns but not the format or how parameters affect output. For a charting tool, it may be adequate but lacks full context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 20% (only 'ds' has a description). The description adds examples of data sources (cpu, mem, netin/out, diskread/write) which clarifies the 'ds' parameter, but does not explain 'node', 'vmid', 'cf', or 'timeframe' beyond implying a timeframe. It adds some value but is not comprehensive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns raw RRD metrics (cpu, mem, netin/out, diskread/write) for a VM at a given timeframe, and is used for charting and capacity analysis. This distinguishes it from siblings like get_vm_rrddata or get_container_rrd.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for charting and capacity analysis but provides no explicit guidance on when not to use it or alternatives. No exclusions or comparisons to sibling tools are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vm_rrddataGet VM recent RRD samplesARead-onlyIdempotent
Return recent RRD samples for a VM. Cheaper than get_vm_rrd for ad-hoc checks.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| timeframe | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds 'recent' and 'cheaper' but does not provide further behavioral details like data volume, performance, or limits. It is adequate but adds minimal value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with two front-loaded sentences. Every word serves a purpose, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description does not mention what the RRD samples contain or how they are structured. Given the complexity of three parameters and lack of output description, the tool definition is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameter descriptions are provided in the description. Schema description coverage is 0%, so the description should compensate. While parameter names are somewhat self-explanatory, the description adds no meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it returns recent RRD samples for a VM. The phrase 'Cheaper than get_vm_rrd' distinguishes it from a specific sibling tool, providing a clear purpose and differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly suggests using this tool for 'ad-hoc checks' when cost is a concern compared to get_vm_rrd. This gives clear context, though it does not specify when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vmsList VMs (cluster-wide)ARead-onlyIdempotent
List all QEMU VMs across the cluster with current status and resource usage.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds 'current status and resource usage' but does not provide additional behavioral context beyond what annotations offer, such as pagination or performance characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence that front-loads the purpose without extraneous words. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list tool with good annotations, the description is sufficient. It states the output (list with status and resource usage). No output schema exists, but the description covers the main return. Could mention sorting or filtering, but not necessary for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters (0, schema coverage 100%), so baseline is 4. The description adds meaning about what the tool returns (status and resource usage), which is helpful. No further parameter detail needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (List), resource (QEMU VMs), scope (cluster-wide), and what is returned (current status and resource usage). This distinguishes it from sibling tools like get_containers or get_nodes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing all VMs but does not explicitly state when to use this tool versus alternatives like get_vm_status for a single VM or get_containers for containers. No exclusion criteria or context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vm_statusGet VM live statusARead-onlyIdempotent
Return live status (cpu, mem, uptime, qmpstatus) of a VM.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with annotations (readOnlyHint, idempotentHint) but does not add behavioral context beyond what annotations provide, such as potential latency or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the tool's purpose without extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and no output schema, the description adequately specifies the return fields and context needed for a basic read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description does not explain the parameters (node, vmid) or their allowed values, leaving agents to infer from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns live status with specific metrics (cpu, mem, uptime, qmpstatus), distinguishing it from sibling tools like get_vm_config or get_vm_rrd.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for live status retrieval, but lacks explicit guidance on when to use this tool versus alternatives or prerequisites beyond the required parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
init_node_diskInitialize disk with GPTADestructive
Initialize a disk with a fresh GPT partition table. DESTRUCTIVE — wipes existing data. Ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| disk | Yes | Disk path (e.g. /dev/sdb) | |
| node | Yes | ||
| uuid | No | ||
| confirm | No | Set to true once the user has approved this destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description reinforces the destructiveHint annotation with explicit 'DESTRUCTIVE — wipes existing data' and adds behavioral guidance to ask for confirmation. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, followed by critical warning. Every sentence earns its place with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the essential aspects: what it does, that it's destructive, and the need for confirmation. Without an output schema, it misses details on return value, but for a destructive action these are the key points. Could mention irreversibility explicitly but 'wipes existing data' implies it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 50% schema description coverage, the description adds no parameter details, missing explanations for 'node' and 'uuid'. The schema descriptions for 'disk' and 'confirm' are present, but the description does not compensate for the gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action: initialize a disk with a fresh GPT partition table. The verb 'Initialize' and resource 'disk with GPT' are specific, and the tool is easily distinguished from siblings like 'wipe_node_disk'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly warns about destructiveness and requires user confirmation, providing clear when-to-use context. However, it does not mention alternative tools for similar operations, such as 'wipe_node_disk'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_backup_jobsList backup schedule jobsARead-onlyIdempotent
List all scheduled vzdump backup jobs (cluster-wide).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds 'cluster-wide' scope and 'scheduled' qualifier, but no additional behavioral traits like authentication needs, rate limits, or pagination. Adds some value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 5 words, zero waste, front-loaded information. Maximally concise while being informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters, no output schema, and comprehensive annotations, the description is adequate. It specifies what is listed and the scope. Could mention read-only nature, but annotations already cover that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in input schema (100% coverage). Description adds no parameter info, which is appropriate. Without parameters, baseline is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists all scheduled vzdump backup jobs cluster-wide, using specific verb and resource. Distinguishes from siblings like list_backups and list_jobs by specifying 'scheduled vzdump backup jobs' and 'cluster-wide'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context provided (scheduled backup jobs, cluster-wide), but no explicit guidance on when to use this tool versus list_jobs or list_backups. Implied usage is adequate, but direct exclusion of alternatives would improve clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_backupsList backupsARead-onlyIdempotent
List vzdump backup files cluster-wide. Filter by node, storage pool, or VM ID.
| Name | Required | Description | Default |
|---|---|---|---|
| node | No | Filter by node | |
| vmid | No | Filter by VM/container ID | |
| storage | No | Filter by storage pool |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the description adds only the cluster-wide scope. No additional behavioral details needed beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that conveys the essential information without fluff. It is front-loaded and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, scope (cluster-wide), and filtering capabilities. For a list operation with good annotations and simple parameters, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described (node, vmid, storage). The description adds 'cluster-wide' but does not provide more depth than the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists vzdump backup files cluster-wide, with filtering options. It distinguishes it from siblings like list_backup_jobs, create_backup, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (when needing to view backup files) but does not explicitly exclude alternatives like listing backup jobs. Context from sibling tools aids differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ha_groupsList HA groupsARead-onlyIdempotent
List HA groups with their node membership and failover policy.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by detailing the output includes node membership and failover policy, providing behavioral context beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words, front-loaded with the verb and resource. Every part of the sentence contributes meaning: 'List HA groups with their node membership and failover policy.'
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter list tool, the description adequately states what is listed. It does not mention sorting, pagination, or empty results, but given no output schema and simplicity, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0 parameters, so baseline score is 4. Description correctly implies no input required, adding no extra parameter info, which is sufficient given the parameter count.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'list' and resource 'HA groups', specifying the included information (node membership and failover policy). It distinguishes from sibling tools like 'get_ha_group' (single group details) and 'create_ha_group' (creation). Highly specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like 'get_ha_group' or 'list_ha_resources'. The usage is implied by the name, but the description does not provide direct context or exclusions, leaving it moderately clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ha_resourcesList HA-managed resourcesARead-onlyIdempotent
List all VMs and containers currently managed by the HA manager.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false. The description adds that it lists resources 'currently managed,' implying a live snapshot. However, it does not disclose any additional behavioral traits like pagination, sorting, or filtering, which would be valuable for a list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is front-loaded with the essential action and resource, making it highly concise and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should hint at the return structure (e.g., list of IDs, names, status). It does not, leaving the agent uncertain about what information is returned for each VM or container. Given the simplicity of the tool, this is a moderate gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so the baseline is 4. The description does not need to add parameter information, and it correctly mentions no parameters. It adds no extra meaning beyond the schema, but that is acceptable given zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'List' and clearly identifies the resource: 'VMs and containers currently managed by the HA manager.' It distinguishes itself from sibling tools like list_ha_groups (which lists groups) and get_ha_resource_status (which gets status of a specific resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool lists all HA-managed resources, but it does not explicitly state when to use this tool versus alternatives such as get_ha_resource_status or list_ha_groups. No exclusions or context are provided, leaving the agent without clear guidance on choosing among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_isosList ISO imagesBRead-onlyIdempotent
List ISO images available on the cluster.
| Name | Required | Description | Default |
|---|---|---|---|
| node | No | Filter by node | |
| storage | No | Filter by storage |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds no behavioral details beyond those annotations, such as scope of 'available' or any side effects. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It is front-loaded with the essential purpose, though it could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no output schema and two optional filters, the description is adequate but lacks detail about what the output represents or how the filters interact. It does not mention that ISOs are stored on cluster storage or that both filters can be combined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already describes both parameters ('Filter by node', 'Filter by storage'). The description does not add any additional meaning or context for the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'ISO images available on the cluster'. It is specific and easily distinguishable from sibling list_* tools which target different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like list_storages or list_templates. There is no mention of prerequisites or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_jobsList tracked jobsARead-onlyIdempotent
List long-running Proxmox jobs tracked by this MCP server (e.g. create_vm, snapshot, backup).
| Name | Required | Description | Default |
|---|---|---|---|
| tool | No | Filter by originating tool name | |
| limit | No | Max rows (default 100) | |
| status | No | Filter by job status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent nature. Description adds value by specifying scope (tracked by this server) and examples, but doesn't elaborate on behavior like ordering or pagination. With annotations covering safety, a 4 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 12 words, front-loaded with verb, no wasted words. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description covers main purpose and examples. Could mention return format or that it returns a list of job objects, but given no output schema, it's reasonably complete. Minor gap for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for each parameter. Description does not add extra meaning beyond the schema, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists long-running Proxmox jobs, using specific verb and resource. Examples provided help understanding, but it doesn't explicitly differentiate from sibling tools like get_job or list_tasks, so not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like get_job or cancel_job. The description only states what it does without mentioning context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_node_certificatesList node certificatesBRead-onlyIdempotent
Return all custom certificates installed on a node.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only and idempotent. The description adds no additional behavioral context, but does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence of 9 words efficiently conveys the tool's purpose with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one required parameter and no output schema, the description is minimally adequate but lacks details about return format or node prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The 'node' parameter is not described; the description mentions 'on a node' but does not clarify its meaning or format. With 0% schema coverage, the description should compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return' and the resource 'all custom certificates installed on a node'. It is specific and distinguishes from sibling tools like delete_node_certificate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as other list_* tools. The description simply states what it does without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_node_disksList node disks (basic)BRead-onlyIdempotent
Return basic disk inventory on a node.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that it returns 'basic disk inventory,' which implies a non-destructive read operation. However, it does not elaborate on what 'basic' entails or any potential constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at 6 words. While efficient, it sacrifices completeness. It is well-structured but could benefit from slightly more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter, no output schema, and a sibling tool for detailed disks, the description is incomplete. It does not specify what fields are included in 'basic disk inventory,' leaving the agent unaware of the output structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain the 'node' parameter beyond noting the operation is 'on a node.' With 0% schema description coverage, the description fails to provide necessary details about parameter format (e.g., hostname, IP) or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns 'basic disk inventory on a node,' using a specific verb and resource. It distinguishes itself from the sibling 'list_node_disks_detailed' by emphasizing 'basic' inventory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus 'list_node_disks_detailed' or other similar tools. The description lacks context for choosing this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_node_disks_detailedList node disks (detailed)ARead-onlyIdempotent
Return detailed disk inventory including partitions and LVM info.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| include_partitions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark as read-only and idempotent. Description adds useful behavioral context: it returns partitions and LVM info, clarifying what 'detailed' means. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 9 words, no unnecessary information. Efficient and front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description states what kind of information is returned (partitions, LVM). Could mention that it operates on a specific node, but context is mostly complete for a read-only list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description should compensate for missing parameter details. It mentions 'partitions' which relates to 'include_partitions' but does not explain either parameter explicitly. Node parameter is obvious from name but not discussed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Return' and clearly identifies resource as 'detailed disk inventory including partitions and LVM info'. It distinguishes from sibling 'list_node_disks' which presumably returns basic list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this versus alternatives like 'list_node_disks'. The term 'detailed' implies deeper information, but agent must infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_node_networkList node network interfacesARead-onlyIdempotent
Return all network interfaces (bonds, bridges, VLANs, physical) on a node.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only and idempotent. The description adds value by listing the types of interfaces returned, providing behavioral context beyond annotations. No contradictions noted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 11-word sentence that front-loads the core purpose. It contains no redundant information and is highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and no output schema, the description adequately covers the essential information. It specifies what is returned but does not mention pagination, sorting, or potential empty results, which are minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'node' is not described in the schema (0% coverage) and the description only implicitly references it ('on a node'). The agent gains no additional semantic meaning from the description, which is insufficient for a required parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: returning all network interfaces on a node. It specifies the types of interfaces (bonds, bridges, VLANs, physical), which distinguishes it from other list tools like list_node_disks or list_node_services.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., get_node_config for broader configuration). The description does not mention prerequisites or exclusions, leaving the agent without context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_node_replicationList replication jobs for a nodeARead-onlyIdempotent
List replication jobs where a specific node is the source.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide safety and idempotency hints. The description adds the filtering behavior (source node). No contradictions. However, no details on result ordering, pagination, or error handling, which would enhance transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with the action and key constraint. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 1-param tool with no output schema, the description is adequate but does not cover edge cases or default behaviors (e.g., does it list active jobs only?). Given sibling complexity, more context could help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage; the description only restates the parameter name implicitly (node as source). No format, examples, or constraints are provided, leaving the agent to infer meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it lists replication jobs where a specific node is the source, distinguishing it from siblings like list_replication_jobs (all jobs) and get_replication_job (specific job).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need jobs for a specific source node, but does not explicitly contrast with sibling tools like list_replication_jobs or provide when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_node_servicesList node servicesARead-onlyIdempotent
List all systemd services on a node with their state.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds that the tool returns state, which is not in annotations. No contradictions; no mention of output format or permissions, but acceptable given annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, front-loaded sentence with no extraneous information. Every word is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and no output schema, the description is mostly complete. Missing details like error states or exact format of state, but not critical for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description mentions 'on a node' but does not explain the 'node' parameter format or any constraints. Fails to compensate adequately for the missing schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'List', resource 'systemd services', and scope 'all on a node' with their state. Distinguishes from sibling 'list_*' tools by specifying systemd services.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing services with states, but provides no explicit when-to-use/when-not-to-use guidance or alternatives such as node_service_* tools for individual service actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_poolsList resource poolsARead-onlyIdempotent
List all resource pools cluster-wide with member counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide safety (readOnly, idempotent, non-destructive). The description adds the scope ('cluster-wide') and output hint ('member counts'), but does not disclose pagination, performance, or any potential edge cases. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 6 words, front-loads the verb and resource. Every word is meaningful and no redundancy. Ideal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, so the description must compensate. It mentions 'member counts' but does not specify all returned fields (e.g., pool ID, name, type). For a simple list tool, this might suffice, but it lacks completeness regarding the response format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so no parameter documentation is needed. The description does not repeat schema details, and the schema coverage is 100% (trivially). The baseline for zero-param tools is 4, and the description adds no surplus information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list', the resource 'resource pools', scope 'cluster-wide', and what is included ('with member counts'). It clearly distinguishes this list tool from other sibling list tools by specifying the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like get_pool (single pool) or other list tools. The usage is implied from the description but lacks explicit context such as 'use this to enumerate all pools' or 'not for retrieving a single pool'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_replication_jobsList replication jobsARead-onlyIdempotent
List all ZFS replication jobs cluster-wide.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, and idempotentHint. The description adds the 'cluster-wide' scope context, but does not detail output format or pagination behavior, though the safety profile is well-covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that conveys the essential information without redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter list tool with annotations, the description is mostly complete. However, without an output schema, it could benefit from mentioning what is returned (e.g., list of job IDs or full configurations), leaving slight ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description does not need to explain parameter semantics. Baseline score of 4 is appropriate as it adds no extra param info beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List'), the resource ('ZFS replication jobs'), and the scope ('cluster-wide'), distinguishing it from sibling tools like 'get_replication_job' which retrieves a single job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing all replication jobs, but provides no explicit guidance on when to use this tool versus alternatives (e.g., get_replication_job for a specific job) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sdn_controllersList SDN controllersARead-onlyIdempotent
List SDN controllers (e.g. EVPN, ISIS, bgp).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and the description adds no behavioral details such as pagination, ordering, or limits. The examples add some context but not behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with verb and noun, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters, full annotation coverage, and no output schema needed, the description is complete for a list tool. The examples provide useful context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100%. The description adds value by listing example controller types, which helps the agent understand what SDN controllers are.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action 'list' and resource 'SDN controllers', with examples (EVPN, ISIS, bgp) that distinguish it from creating, deleting, updating, or getting a single controller.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage when needing to view existing controllers, but does not provide explicit guidance on when to use versus alternatives (e.g., get_sdn_controller for a specific one) or mention any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sdn_subnetsList SDN subnetsBRead-onlyIdempotent
List all subnets within an SDN vnet.
| Name | Required | Description | Default |
|---|---|---|---|
| vnet | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds minimal behavioral context beyond what annotations already provide. Annotations indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description's claim that it lists subnets is consistent and adds no extra behavioral detail (e.g., pagination, permissions).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the purpose. It could be slightly improved by adding more value without becoming verbose, but it is not overly concise to the point of being unhelpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (1 parameter, no output schema), the description is mostly adequate. However, it lacks a description for the 'vnet' parameter and any mention of return structure, which would make it more complete. Annotations cover safety traits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the parameter has no description in the schema. The description only mentions 'vnet' implicitly and does not add details about expected format (e.g., ID or name) or constraints, leaving the parameter semantics unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list) and the resource (subnets within an SDN vnet). It distinguishes from siblings like 'get_sdn_subnet' and 'create_sdn_subnet' by indicating it lists all subnets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (to view all subnets in a vnet) but does not explicitly guide when not to use it or mention alternatives like 'get_sdn_subnet' for a specific subnet. Given the large number of sibling list tools, more explicit usage guidance would be beneficial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sdn_vnetsList SDN vnetsBRead-onlyIdempotent
List SDN virtual networks.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds no additional behavioral context beyond what annotations provide. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (4 words) and front-loaded. No wasted words, but it could benefit from slightly more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with no parameters and no output schema. The description provides the bare minimum, but lacks information about the return format, scope (e.g., all vnets or filtered), or relationship to other SDN tools. Annotations cover safety, but overall completeness is adequate but not rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and 100% coverage, so the schema already fully documents parameters. The description 'List SDN virtual networks' adds no further meaning about parameters or expected inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List SDN virtual networks' clearly states the action (list) and resource (SDN virtual networks). It matches the title and is specific enough to distinguish from other list tools, though it does not explicitly differentiate from similar siblings like list_sdn_subnets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., get_sdn_vnet for a single network). The description is purely declarative with no context about prerequisites or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sdn_zonesList SDN zonesARead-onlyIdempotent
List SDN zones (vxlan, evpn, simple, qinq, vlan).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only (readOnlyHint=true), idempotent (idempotentHint=true), and non-destructive (destructiveHint=false). The description adds the list of zone types, providing useful context about what will be listed. However, it does not disclose any other behavioral traits such as pagination, ordering, or error handling. Given the annotations, the description adds some value but not extensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with a parenthetical list. It is extremely concise with no wasted words. Every part (verb, noun, type list) serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and clear annotations, the description is largely complete. It tells what is listed and hints at the types. There is no output schema, but the description provides enough context for an agent to understand the result. Minor gap: no details on output fields beyond types, but acceptable given simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema fully describes the interface. The description adds meaning beyond the schema by listing the zone types that can appear, giving users a hint about the output content. Baseline for 0 parameters is 4, and this description meets that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List SDN zones' which is a specific verb and resource. It adds the list of zone types (vxlan, evpn, simple, qinq, vlan) which further clarifies the scope. This distinguishes the tool from sibling tools like create_sdn_zone or get_sdn_zone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. Among siblings, there are related list tools (list_sdn_subnets, list_sdn_vnets, etc.) but no explicit context on when to choose this one. No prerequisites or contraindications are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_snapshotsList snapshotsBRead-onlyIdempotent
List all snapshots for a QEMU VM or LXC container.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Host node name | |
| vmid | Yes | VM or container ID | |
| vm_type | No | 'qemu' for VMs, 'lxc' for containers | qemu |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds only that it lists 'all' snapshots for the specified VM/container type, providing no new behavioral context (e.g., ordering, pagination, or side effects).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core purpose. Every word is necessary; no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool lacks an output schema, and the description does not hint at the return format (e.g., snapshot names, timestamps). While annotations cover safety, the description is minimally adequate for a simple list operation but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear parameter descriptions. The description adds no additional meaning beyond what the schema already provides, so it meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List', the resource 'all snapshots', and the scope 'for a QEMU VM or LXC container'. It effectively distinguishes the tool from snapshot creation/deletion/rollback siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., list_backups, create_snapshot). No mention of typical usage scenarios or prerequisites beyond the required parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_storagesList storage poolsARead-onlyIdempotent
Alias for get_storage — list all storage pools.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, destructiveHint. Description adds no new behavioral details beyond the alias and listing all pools. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is clear and waste-free. Essential information only.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and no output schema, the description is complete. It states the action and scope adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; schema coverage is 100%. Description adds value by specifying 'all storage pools', which is not evident from the empty schema. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists all storage pools and identifies itself as an alias for get_storage, distinguishing it from sibling tools like get_storage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly notes it is an alias for get_storage, implying that get_storage retrieves a specific pool, providing context for when to use this tool. However, no explicit when-not-to-use or alternatives beyond that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tasksList recent cluster tasksARead-onlyIdempotent
List recent Proxmox tasks cluster-wide (UPIDs). Useful for finding background work and diagnosing failures.
| Name | Required | Description | Default |
|---|---|---|---|
| vmid | No | Filter by VM or container ID | |
| limit | No | Maximum number of tasks to return (default 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive. Description adds that tasks are 'recent' and 'cluster-wide (UPIDs)', which is useful beyond annotations. Could be more specific about 'recent' time window.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. Purpose, resource, and use case are front-loaded. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description mentions returns 'UPIDs'. Tool is simple with two optional params. Adequate for an agent to decide to use it, though could clarify if it returns more than UPIDs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. Description does not add additional meaning beyond what's in the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Verb 'list' plus resource 'recent tasks cluster-wide (UPIDs)' and explicit use case 'finding background work and diagnosing failures'. Clearly distinguishes from sibling tools that target specific VMs/containers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States it's useful for finding background work and diagnosing failures, providing clear context. Lacks explicit when-not-to-use or alternatives, but the context is sufficient for basic guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_templatesList OS templatesARead-onlyIdempotent
List LXC OS templates (vztmpl) available on the cluster.
| Name | Required | Description | Default |
|---|---|---|---|
| node | No | ||
| storage | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and idempotentHint=true, covering safety and idempotency. The description adds the scope ('on the cluster') but does not disclose additional behavioral traits such as authentication requirements or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no redundant information. It is front-loaded with the key action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with two optional parameters, the description adequately conveys purpose but lacks return value information and parameter explanations. The annotations cover safety, so the description could be slightly more complete but is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema coverage is 0% (no parameter descriptions in schema). The description does not explain the meaning of the optional 'node' and 'storage' parameters, leaving the agent without guidance on how to filter results.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List'), the specific resource ('LXC OS templates (vztmpl)'), and scope ('on the cluster'). It distinguishes this from sibling tools like list_isos and list_backups by specifying the template type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving available templates, but does not explicitly state when to use this tool over siblings like list_isos or list_storages. No guidance on prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
migrate_containerMigrate container between nodesB
Migrate an LXC container to a different node (online/offline). With online=true the container keeps running.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Source node | |
| vmid | Yes | ||
| online | No | ||
| restart | No | Restart after offline migration | |
| timeout | No | ||
| target_node | No | ||
| with_local_disks | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate the tool is not read-only and not destructive. The description adds that the container keeps running with online=true, which provides behavioral context. However, it does not disclose what happens to the source container after migration (e.g., deletion) or any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences that immediately state the core purpose. However, it could be better structured to include parameter guidance without becoming overly long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters, no output schema, and moderate annotations, the description is incomplete. It does not clarify required parameters like target_node, nor does it explain return values or success criteria. The description needs to provide more context for complex migration operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 7 parameters with only 29% description coverage. The description fails to explain key parameters like target_node, timeout, or with_local_disks. The only parameter mentioned is online, but without further detail. This leaves the agent without essential context for proper invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Migrate an LXC container'), the resource ('container'), and distinguishes between online/offline modes. This differentiates it from siblings like migrate_vm (for VMs) and migrate_ha_resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for migrating containers but does not provide explicit guidance on when to use this tool versus alternatives like migrate_vm or migrate_ha_resource. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
migrate_ha_resourceMigrate HA resourceC
Trigger a live HA-managed migration of a resource to another node.
| Name | Required | Description | Default |
|---|---|---|---|
| sid | Yes | ||
| force | No | ||
| target | Yes | Target node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false (mutation), openWorldHint=true, idempotentHint=false, and destructiveHint=false. The description adds only 'live HA-managed migration', implying non-disruptiveness but does not disclose potential side effects, required permissions, or what happens to the resource on the source node. It adds minimal value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded and concise. However, it is overly minimal; a sentence of this length could be expanded with additional context without becoming verbose. It earns its place but fails to deliver sufficient information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of HA migration, the absence of an output schema, and the rich set of sibling tools, the description is incomplete. It does not explain success criteria, synchronous/asynchronous behavior, or impact on the HA group. The tool appears in a large list of sibling tools, and better context for selection is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has three parameters (sid, target, force) with only 33% description coverage (only 'target' has a description: 'Target node'). The tool description does not explain what 'sid' represents (likely the resource ID) or the effect of the 'force' boolean. Without this, the agent cannot infer parameter semantics from the description alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('trigger a live HA-managed migration'), the resource type ('a resource'), and the destination ('another node'). It uses a specific verb and resource combination. However, it does not explicitly differentiate from sibling migration tools like migrate_container or migrate_vm, relying on the 'HA-managed' qualifier to imply context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., migrate_container, migrate_vm). There is no mention of prerequisites, such as the resource being part of an HA group, or conditions under which migration should be triggered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
migrate_vmMigrate VM between nodesA
Migrate a VM to a different node (live or offline). With online=true the VM keeps running during migration.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Source node | |
| vmid | Yes | ||
| force | No | Force migration even if local disks present | |
| online | No | Live-migrate (online=true) | |
| target_node | No | Target node (omit for online-migration-only) | |
| with_local_disks | No | Migrate local disks (slower) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds behavioral nuance about live vs offline migration beyond annotations (which show non-destructive mutation). However, lacks details on prerequisites (e.g., shared storage) or VM state after migration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, directly stating purpose and key behavior. No unnecessary words, front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a migration tool with 6 parameters and no output schema, the description covers the essential purpose and a key behavioral switch (online). Missing prerequisites and implications of other parameters make it minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 83% parameter description coverage; description only calls out 'online' explicitly. Does not add meaning beyond what the schema provides for other parameters like force or target_node.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Migrate a VM to a different node (live or offline)' – a specific verb and resource. Among sibling tools like migrate_container and migrate_ha_resource, this uniquely targets VMs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives basic context for online migration ('With online=true the VM keeps running') but does not contrast with sibling migration tools (e.g., migrate_container, node_migrate_all) or provide when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_container_diskMove container diskC
Move a container volume to a different storage pool.
| Name | Required | Description | Default |
|---|---|---|---|
| disk | Yes | Volume identifier (e.g. rootfs, mp0) | |
| node | Yes | ||
| vmid | Yes | ||
| format | No | ||
| storage | Yes | ||
| delete_source | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is minimal and does not disclose behavioral traits beyond the annotation hints. It does not mention that the source might be deleted (controlled by 'delete_source' parameter), potential side effects, or whether the operation is reversible. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, but it lacks sufficient detail to be maximally helpful. It is front-loaded but too minimal for the complexity of the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high parameter count (6), low schema coverage (17%), and no output schema, the description is incomplete. There is no information on return values, side effects, or prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 17%, and the description does not add any parameter semantics. It does not explain what 'node', 'vmid', 'storage', 'format', or 'delete_source' mean. The parameter 'disk' is partly described in the schema but not augmented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Move') and the resource ('container volume') with a specific target ('different storage pool'). It distinguishes from siblings like 'migrate_container' (which moves to a different node) and 'move_vm_disk' (which is for VMs).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'move_container_volume' or 'migrate_container'. There are no contextual hints about prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_container_volumeMove container volumeA
Move an LXC volume (rootfs or mountpoint) to a different storage. Useful for migrating off slow disks.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| format | No | Target disk format | |
| volume | Yes | Volume identifier (e.g. rootfs, mp0) | |
| storage | Yes | Target storage pool | |
| delete_source | No | Remove the source volume after copy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutable, non-destructive, non-idempotent, openWorldHint. The description adds minimal behavioral context beyond annotations; it doesn't explain the copy-and-delete nature, prerequisites (e.g., container status), or that delete_source controls destruction. Annotations already cover safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. Front-loaded with action and scope. Every sentence serves a purpose: one states what it does, the second provides a use case.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimally adequate but lacks details on behavior (e.g., whether container must be stopped, implications of delete_source, or prerequisites). No output schema, so return value is unexplained. Given complexity (6 params, 4 required), more context would help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% (4 of 6 params described). The description adds context for the 'volume' parameter with examples (rootfs, mp0) but does not significantly enhance meaning for other parameters beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the verb 'Move' and the resource 'LXC volume (rootfs or mountpoint)' to a different storage. It distinguishes from siblings like migrate_container (moves entire container) and move_vm_disk (moves VM disks) by specifying it works on container volumes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage context: 'Useful for migrating off slow disks.' It implies when to use (improve storage performance). However, it does not explicitly state when not to use or list alternatives, though the sibling list contains relevant alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_vm_diskMove VM diskA
Move a VM's disk to a different storage pool. Useful for migrating off slow disks or balancing storage.
| Name | Required | Description | Default |
|---|---|---|---|
| disk | Yes | Disk identifier (e.g. scsi0, virtio0) | |
| node | Yes | ||
| vmid | Yes | ||
| format | No | ||
| storage | Yes | Target storage | |
| delete_source | No | Remove the source disk after copy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false (modifies) and destructiveHint=false, but the description does not clarify behavior beyond 'move'. It lacks details on prerequisites (e.g., VM must be stopped), whether source disk is deleted, or error conditions. No contradiction with annotations but insufficient context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences: first states action, second gives use case. No fluff, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Provides basic purpose and use case but lacks details on prerequisites, default behavior of delete_source, error states, or output. Adequate for a simple tool but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (3 of 6 params described: disk, storage, delete_source). The description adds no parameter details. Node, vmid, and format are undocumented in both schema and description, missing critical context for those params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Title 'Move VM disk' and description clearly state the action: moving a VM's disk to a different storage pool. It distinguishes from siblings like migrate_vm (whole VM) or move_container_disk (container).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description mentions usefulness for 'migrating off slow disks or balancing storage', providing clear context for when to use. It does not explicitly state when not to use or list alternatives, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_apt_repos_changeChange apt repositoriesBDestructiveIdempotent
Add, modify, or remove apt repository entries on a node. HIGH RISK — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| path | No | ||
| index | No | ||
| digest | No | ||
| handle | No | ||
| comment | No | ||
| confirm | No | Set to true once the user has approved this action | |
| content | No | ||
| enabled | No | ||
| options | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds 'HIGH RISK — ask the user to confirm,' which reinforces the non-read-only nature but does not disclose specific behavioral traits beyond what annotations provide. No contradiction found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: one sentence stating the purpose and a second sentence for the risk warning. It is front-loaded with the action verb 'Add'. No unnecessary words, but could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 10 parameters, destructive effects, and no output schema, the description is minimal. It does not cover parameter roles, return values, or prerequisites. The sibling list is large but no comparison provided. The description is insufficient for safe and accurate invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 10% (just the confirm parameter). The description does not explain the meaning or usage of any of the 10 parameters, such as 'content', 'path', or 'digest'. With low coverage, the description must compensate but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Add, modify, or remove apt repository entries on a node.' This is a specific verb+resource combination that distinguishes it from sibling tools like node_apt_repos_list (list only) and node_apt_update (update package cache).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a clear warning about high risk and the need for user confirmation, but it does not explicitly state when to use this tool versus alternatives (e.g., listing repos) or provide conditions for use. The guideline is implied but not expanded.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_apt_repos_listList apt repositoriesBRead-onlyIdempotent
Return the configured apt repositories on a node.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, indicating no side effects. The description adds minimal context ('configured') but does not disclose return format or any other behavioral details beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 7 words, which is concise and front-loaded. However, it could be slightly more structured by including return type information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should indicate what is returned (e.g., a list of repository strings). It only says 'configured apt repositories', which is vague. The tool is one of many list tools, and the description does not fully define its output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the 'node' parameter has no schema description. The tool description does not clarify what 'node' refers to, failing to compensate for the low coverage. It only mentions 'on a node' without explaining the parameter's meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Return' and resource 'configured apt repositories' with scope 'on a node', clearly distinguishing it from sibling tools like 'node_apt_repos_change' (modify) and 'node_apt_update' (update).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or context. It lacks explicit when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_apt_updateUpdate apt package listsBIdempotent
Trigger apt update on the node to refresh package indexes.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| notify | No | Send notification on completion |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutation (readOnlyHint=false), idempotency (idempotentHint=true), and non-destructiveness (destructiveHint=false). The description adds 'refresh package indexes' but does not elaborate on side effects like network dependency or potential time consumption. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 11 words with no redundancy or fluff. It front-loads the action and outcome efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and annotations, the description is minimal but adequate. It covers the core function but misses context like when to run this (e.g., before package installations) or behavioral notes (e.g., network dependency). Sibling tools exist that do similar apt operations, so additional context would help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (notify parameter described in schema). The description adds no parameter information. The 'node' parameter is obvious from context, but the description should at least hint at its purpose or usage format. Fails to compensate for the undocumented parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Trigger `apt update`') and the outcome ('refresh package indexes'), using a specific verb and resource. It distinguishes from sibling tools like node_apt_repos_list and node_apt_repos_change by naming the exact command executed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites (e.g., root access, network connectivity) or typical use cases (e.g., before installing packages).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_apt_versionsList upgradable packagesBRead-onlyIdempotent
Return upgradable package versions on a node.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds minimal behavioral info; could mention output format or security requirements but is consistent with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. Could be slightly more structured but appropriate for a simple read-only tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, yet description does not indicate what the return value looks like (list items, version details). Lacks completeness for an agent to fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 1 parameter 'node' with no description, and schema coverage is 0%. The description does not clarify what 'node' refers to (hostname, IP, ID?), leaving the agent without crucial semantic info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ('Return') and resource ('upgradable package versions') with scope ('on a node'). Distinct from sibling tools like node_apt_update (mutation) and node_apt_repos_list (lists repos).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like node_apt_update or node_apt_repos_list. No indication of prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_migrate_allMigrate all VMs/CTs off nodeC
Bulk-migrate all VMs/containers off this node to others (live).
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| target | No | Specific target node (else auto-distribute) | |
| max_workers | No | ||
| with_local_disks | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds only 'live' migration, which is minimal behavioral context. It does not address what happens if some migrations fail, whether migration is sequential or parallel, or any requirements like target node availability. Given no annotations cover these details, the description is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a single sentence that starts with the verb 'Bulk-migrate'. However, it sacrifices necessary detail for brevity, making it less helpful than it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex bulk migration tool with 4 parameters and no output schema, the description is inadequate. It does not cover behavior, parameter meanings, error conditions, or required preconditions, leaving the agent with insufficient information to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 25% schema coverage, the description should compensate by explaining parameters, but it does not mention any parameters. It vaguely implies the node parameter as source and 'to others' hints at distribution but fails to detail target, max_workers, or with_local_disks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (bulk-migrate), resource (all VMs/containers off this node), and method (live). It effectively distinguishes from sibling tools like migrate_vm or migrate_container which handle single migrations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like migrate_vm or migrate_container. It does not mention prerequisites, potential risks, or scenarios where this tool should be avoided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_service_disablenode service disableBIdempotent
Disable a systemd service at boot.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| service | Yes | Service name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds 'at boot' which hints at non-destructive behavior, complementing annotations (destructiveHint=false). However, it does not clarify whether the service is stopped immediately or only prevents auto-start. Annotations already provide idempotentHint=true and readOnlyHint=false, so description adds moderate value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no superfluous words. It is front-loaded with the key action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema) and rich annotations, the description provides the core purpose. However, it omits details about whether the service stops immediately and the effect on the current running state, which is relevant for a disable operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no information about the parameters (node, service). Schema coverage is 50% (only service has a description), and the tool does not compensate, leaving the 'node' parameter unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'disable' and the resource 'systemd service at boot', which is a specific action on a specific resource. It effectively distinguishes from sibling tools like enable, start, stop, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like node_service_stop or node_service_disable is not differentiated. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_service_enablenode service enableAIdempotent
Enable a systemd service at boot.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| service | Yes | Service name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and destructiveHint=false. The description adds that it enables at boot, but does not clarify that it does not start the service immediately or mention any permissions required. Minimal added value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence. However, it is almost too brief; adding a bit more context (e.g., effect on current state) could improve without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and present annotations, the description provides the core purpose but lacks clarification on the distinction between enabling at boot and immediate start, which is important given sibling tools. No output schema, but return values are not needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (service has description, node does not). The description adds no parameter information. It does not compensate for the schema's incomplete parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool enables a systemd service at boot. It uses a specific verb ('Enable') and resource ('a systemd service at boot'), distinguishing it from sibling tools like node_service_start or node_service_disable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for setting boot-time enabling, but does not explicitly guide when to use this tool versus alternatives like node_service_start (for immediate start) or node_service_disable (for disabling boot start). No when-not-to-use or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_service_reloadnode service reloadCIdempotent
Reload a systemd service.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| service | Yes | Service name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare idempotentHint=true and destructiveHint=false, but the description adds no behavioral details beyond the basic action. It does not disclose what happens to running processes, whether the service configuration is updated without restart, or any prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no extraneous words. It efficiently communicates the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with no output schema and low description coverage, the description is incomplete. It omits prerequisites (e.g., root privileges), side effects, return status, and the exact effect on the service.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only 'service' has a description). The tool description does not add any additional meaning to the parameters, leaving 'node' entirely undocumented. It fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'reload' and the resource 'systemd service', differentiating it from sibling tools like node_service_start, node_service_stop, node_service_restart. However, it could be more specific about what reloading entails (e.g., sending SIGHUP).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as node_service_restart or node_service_start. The description does not mention appropriate contexts or when not to use reload.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_service_restartnode service restartBIdempotent
Restart a systemd service.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| service | Yes | Service name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and destructiveHint=false. The description adds no behavioral context beyond the minimal action, such as that restart triggers stop-then-start or may have side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is very concise. However, it could include more context without being verbose. The structure is front-loaded but too minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and no output schema, the description is adequate but lacks detail about prerequisites or potential effects. It is minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema provides description only for 'service' param as 'Service name'; 'node' lacks description. Tool description does not explain what 'node' refers to or any additional parameter constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'restart' and resource 'systemd service'. It distinguishes from sibling tools like node_service_start, node_service_stop, etc. which perform different actions on the same resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as node_service_reload or node_service_restart. No mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_service_startnode service startBIdempotent
Start a systemd service.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| service | Yes | Service name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare idempotentHint: true, so the agent knows multiple calls are safe. The description adds no additional behavioral context (e.g., what happens if the service is already running, dependency checks, or side effects). With annotations present, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no unnecessary words. It is concise but could benefit from slightly more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple start operation with 2 required string parameters and no output schema, the description is minimally adequate. It lacks information on return values, error handling, preconditions (e.g., service existence), and idempotency confirmation, but these are partially covered by annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (only 'service' has a description: 'Service name'). The tool description does not elaborate on the 'node' parameter's format (e.g., hostname vs IP) or any constraints. This leaves ambiguity for an agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Start' and identifies the resource as 'a systemd service', clearly differentiating from sibling tools like node_service_stop, node_service_restart, and node_service_reload.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., node_service_enable, node_service_restart). The agent is left to infer that 'start' is for initiating a stopped service, but no contextual hints are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_service_stopnode service stopBIdempotent
Stop a systemd service.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| service | Yes | Service name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnlyHint=false, destructiveHint=false, and idempotentHint=true. The description adds no behavioral context beyond that. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no fluff. It is front-loaded and efficient, though slightly too brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 2 required parameters, the description lacks details like what 'stop' entails (e.g., command used, effect on service state, potential side effects). It does not differentiate from many sibling tools beyond the verb.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50% (service parameter described). The tool description does not add meaning for the 'node' parameter or clarify how parameters relate to stopping a service. It fails to compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Stop a systemd service,' which is a specific verb+resource combination. It distinguishes this tool from siblings like node_service_start, node_service_restart, and node_service_disable by implying a stop action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., node_service_disable, node_service_restart). There is no mention of prerequisites, typical scenarios, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_start_allStart all VMs/CTs on nodeC
Bulk-start all VMs and containers on a node.
| Name | Required | Description | Default |
|---|---|---|---|
| vms | No | Comma-separated list of VMIDs to start | |
| node | Yes | ||
| force | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-readonly and non-destructive, but description adds no behavioral details (e.g., behavior if VMs are already running, prerequisites, error handling). Without annotations, the description carries full burden, but it fails to disclose these traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise but lacks necessary detail. Not overly verbose, but could be more informative without loss of brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters and no output schema, the description is insufficient. It omits explanation of parameter behavior (e.g., vms filtering, force usage) and return value. Relies heavily on schema which itself is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (33%): only 'vms' has a description. The tool description says 'all', but the 'vms' parameter allows filtering, creating ambiguity. No clarification of 'force' or 'node' semantics beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Bulk-start all VMs and containers on a node', specifying the verb (start), resource (all VMs/CTs), and scope (node). It distinguishes from siblings like start_vm, start_container, and node_stop_all.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as start_vm, start_container, or node_migrate_all. The description implies a bulk operation but lacks explicit context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_stop_allStop all VMs/CTs on nodeC
Bulk-stop all running VMs and containers on a node.
| Name | Required | Description | Default |
|---|---|---|---|
| vms | No | ||
| node | Yes | ||
| force | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate it is a write operation but not destructive. The description adds minimal behavioral context beyond 'bulk-stop', failing to mention consequences like what happens if some VMs are already stopped or if confirmation is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, but it sacrifices necessary information. It is front-loaded with the main action, which is good.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three parameters, no output schema, and many sibling tools, the description is too brief. It fails to provide enough context for an agent to correctly use the tool, especially regarding parameter semantics and expected behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has three parameters (node, vms, force) but zero description coverage. The description does not explain any parameter, so an agent cannot understand the role of vms or force without additional knowledge.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool bulk-stops all running VMs and containers on a node, with a specific verb and resource that distinguishes it from sibling tools like stop_vm or stop_container.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. For example, it does not mention that it performs a bulk operation affecting all VMs/CTs on a node, nor does it compare with other stop-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_wake_on_lanSend Wake-on-LANC
Send a Wake-on-LAN magic packet to another host (must be configured).
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate it is a write operation (readOnlyHint=false) and not idempotent, but the description adds little beyond noting configuration is required. It does not disclose side effects, error conditions, or authorization needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise. However, it could be restructured to include parameter explanation without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is insufficient. It lacks parameter documentation and explanation of preconditions (e.g., host must support WOL, network configuration), limiting an agent's ability to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'node' is not explained in the description. With 0% schema description coverage, the description should clarify its meaning (e.g., IP or hostname of the target), but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Send') and the resource ('Wake-on-LAN magic packet'), and specifies it targets 'another host'. This verb+resource combination is distinct among sibling tools, though the phrase 'must be configured' is vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description does not mention prerequisites, conditions, or contrast with other network-related tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poll_jobPoll job status from ProxmoxARead-onlyIdempotent
Force-refresh a tracked job by polling its underlying Proxmox task. Returns the latest state, exit status, progress, and recent log tail.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds context about returning specific fields (state, exit status, progress, log tail) but does not elaborate on behavioral nuances beyond the annotations. The term 'force-refresh' could be misconstrued as mutating, but overall consistency is maintained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, tightly written with no redundancy. The action and return are front-loaded, making it easily scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (1 parameter, no output schema, clear annotations), the description is sufficiently complete. It explains what the tool does and what it returns. Minor gaps: it does not clarify that the job must already be tracked, but this is implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter job_id has a schema description (format uuid) covering 100% of parameters. The tool description adds no additional semantics beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('force-refresh a tracked job by polling'), the resource ('underlying Proxmox task'), and the return value ('latest state, exit status, progress, and recent log tail'). This distinguishes it from sibling tools like get_job or list_jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for refreshing job status but does not explicitly state when to use it versus alternatives like get_job or list_tasks. No exclusions or conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prune_backupsPrune backups by retentionADestructiveIdempotent
Apply a prune schedule (e.g. 'keep-last=7,keep-daily=14,keep-weekly=4') to a storage pool (Proxmox 8+).
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by content type (e.g. 'qemu', 'lxc') | |
| storage | Yes | Target storage pool | |
| prune_backups | Yes | Prune options (e.g. 'keep-last=7,keep-daily=14,keep-weekly=4') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the description is not required to repeat those. However, it adds little beyond the basic action: it mentions the prune schedule format and version requirement but does not disclose that the tool permanently deletes backups, what the response looks like, or any side effects. Given the annotations carry the safety profile, the description is adequate but not richly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that clearly communicates the core action with an example. Every word is purposeful; no redundancy or fluff. It is optimally concise for an AI agent to quickly grasp the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having annotations, the description lacks important context: it does not mention that the tool deletes old backups permanently (only inferred from destructiveHint), nor does it explain prerequisites (e.g., pool must exist), side effects, or return value (no output schema exists). For a destructive tool, more guidance on expected outcomes and potential risks is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters. The description's example of the prune_backups parameter matches the schema's example, adding no new information. It does not explain the optional 'type' parameter or clarify that 'storage' must reference an existing pool. Since the schema already documents parameters, the description provides minimal added semantic value, scoring at the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Apply a prune schedule ... to a storage pool'. It specifies the verb (apply), resource (storage pool), and provides an example of the prune options. It distinguishes from sibling tools like delete_backup (individual deletion) and run_backup_job (create backups) by focusing on retention-based pruning. The version requirement (Proxmox 8+) adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a retention policy needs to be applied, but it does not explicitly state when to use this tool versus alternatives like delete_backup or create_backup_job. No exclusion criteria or context for when not to use it are provided. With many sibling backup tools, explicit guidance would improve the score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reboot_vmReboot VM (graceful)B
ACPI reboot. Guest OS must respond.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| timeout | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide minimal behavioral info (non-readonly, non-destructive, etc.). The description adds value by specifying the graceful ACPI reboot and the dependency on guest OS response, which is critical for agent decision-making.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no redundancy. The key action and condition are front-loaded. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and moderate complexity (3 params), the description lacks information on return values, error scenarios, or what happens if the guest does not respond. It is insufficient for a complete understanding of tool behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 3 parameters (node, vmid, timeout) with 0% schema description coverage. The description does not explain any parameter meaning, format, or constraints, leaving the agent without guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (ACPI reboot) and the resource (VM), with a specific condition (guest must respond). It distinguishes from siblings like reset_vm or shutdown_vm by indicating a graceful restart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like reset_vm or shutdown_vm. The context 'Guest OS must respond' implies it's not for unresponsive VMs, but no direct comparison or exclusion is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regenerate_vm_configRegenerate VM identityA
Regenerate the VM's MAC addresses and (optionally) SMBIOS UUID. Useful after cloning.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| force | No | Regenerate even if VM has a custom MAC |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context by specifying what gets regenerated (MAC addresses, UUID), but does not disclose potential side effects like network disruption or authorization requirements. Annotations already indicate non-read-only and non-destructive, so the description adds moderate value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and optional details. No unnecessary words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose and usage context but omits prerequisites, side effects, or return behavior. For a simple tool with no output schema, it is adequate but could include more safety-related context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 33% schema coverage, the description does not compensate for the lack of parameter descriptions for node and vmid. It indirectly explains the force parameter through the tool description, but no detailed semantics are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Regenerate the VM's MAC addresses and (optionally) SMBIOS UUID', specifying the verb, resource, and exact attributes. It distinguishes from sibling tools like update_vm_config and clone_vm by focusing on regeneration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions 'Useful after cloning', which implies a usage scenario but does not explicitly state when to use this tool vs alternatives or exclude cases. No direct comparison to similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reload_node_networkReload node networkB
Apply pending network changes (reloads /etc/network/interfaces). WARNING: may disconnect SSH!
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false (write operation) and destructiveHint=false. The description adds value by specifying the exact mechanism ('reloads /etc/network/interfaces') and warning about potential SSH disconnection, which is a critical behavioral trait not captured in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: one precise statement of action and one brief warning. No redundant words. Front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single parameter, no output schema), the description covers the essential behavior and a key side effect. However, it lacks explanation of the parameter and does not mention expected outcomes or error conditions, making it merely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description should explain the 'node' parameter but does not. It only mentions 'pending network changes' without linking to the required node identifier. This omission forces the AI agent to infer parameter meaning from context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action: 'Apply pending network changes (reloads /etc/network/interfaces)'. This distinguishes it from related tools like update_node_network (which modifies config) and list_node_network (which reads). The warning about SSH disconnection further clarifies the tool's impact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives is provided. The description does not mention prerequisites such as having pending network changes via update_node_network, nor does it indicate when not to use it (e.g., during active sessions). The warning about SSH disconnection only implies caution, not usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_ha_resourceRemove HA resourceADestructive
Stop HA management of a VM or container. DESTRUCTIVE — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| sid | Yes | ||
| confirm | No | Set to true once the user has approved this destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint: true, but description adds the crucial instruction to ask user confirmation, adding value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words, front-loading the purpose and critical warning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and lack of output schema, the description adequately covers the action but does not describe return values or effects after removal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%; the description does not explain the 'sid' parameter or provide additional meaning beyond the schema's confirmation hint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Stop' and resource 'HA management', clearly distinguishing from sibling tools like add_ha_resource or migrate_ha_resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the tool is destructive and instructs the user to confirm before invoking, providing clear usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reset_vmReset VM (hard)C
Hard reset — equivalent to pressing the reset button.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals the tool performs a hard reset but omits behavioral details such as risk of data loss, non-graceful shutdown, or state dependencies. Annotations indicate it is not read-only and not idempotent, but the description adds no further context beyond a basic analogy.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that is highly concise. However, the extreme brevity sacrifices important details that would fit without becoming verbose, so it loses a point for under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 required params, no output schema) and the large set of sibling tools, the description is insufficient. It lacks context about VM lifecycle, when a hard reset is appropriate versus other actions, and potential consequences, leaving significant gaps for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not mention the parameters (node, vmid) at all. With 0% schema description coverage, the agent receives no assistance in understanding what these parameters represent or how to set them correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Hard reset — equivalent to pressing the reset button' clearly states the tool's purpose and the nature of the action. It distinguishes itself from sibling tools like reboot_vm (soft reboot) by specifying that it's a hard reset, providing immediate understanding of its function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as reboot_vm or shutdown_vm. The description does not mention prerequisites, expected VM states, or warnings about data loss, leaving the agent to infer usage context without support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resize_container_diskResize container diskA
Resize an LXC container volume (e.g. rootfs, mp0). Use '+N' for relative growth, or absolute size like '20G'.
| Name | Required | Description | Default |
|---|---|---|---|
| disk | Yes | Disk/volume identifier (default 'rootfs') | |
| node | Yes | ||
| size | Yes | New size (e.g. '20G', '+10G') | |
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the size syntax and volume types, adding value beyond annotations. However, it does not mention whether the container must be stopped, if resizing is live, or any prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two succinct sentences: first defines purpose, second provides usage examples. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic operation and size syntax, but lacks information on return values, side effects, or operational constraints. Given no output schema, a richer description would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% with 'disk' and 'size' having descriptions; the description adds format details ('+N', '20G') and examples ('rootfs', 'mp0') for 'disk', aiding interpretation. Node and vmid remain undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and description clearly state the tool resizes an LXC container volume, with examples of volume identifiers (rootfs, mp0) and size formats. This distinguishes it from the sibling 'resize_vm_disk' for VMs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for LXC containers but does not explicitly compare with alternatives like 'resize_vm_disk' or specify when not to use it. The context is clear but lacks explicit exclusions or conditionals.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resize_vm_diskResize VM diskB
Resize a VM disk (e.g. scsi0, virtio0). Use a '+N' suffix on size to grow, or absolute size like '50G'.
| Name | Required | Description | Default |
|---|---|---|---|
| disk | Yes | Disk identifier (e.g. scsi0, virtio0) | |
| node | Yes | ||
| size | Yes | New size (e.g. '50G', '+20G') | |
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint=false, destructiveHint=false), the description only adds size format info. Does not disclose potential data loss on shrink, asynchronous behavior, or required VM state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. Front-loaded with action and immediately useful examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks details on return value, async nature, error cases, or prerequisites. For a disk modification tool, this is insufficient context given no output schema and 4 required params.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds semantic value for disk and size parameters (examples and usage pattern) beyond schema descriptions. However, no info on node or vmid. Schema coverage is 50%, description partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Resize a VM disk' with specific examples (scsi0, virtio0) and size formats. Distinguishes from sibling container disk tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use vs alternatives like resize_container_disk or move_vm_disk. No prerequisites mentioned (e.g., VM state, permissions).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restart_containerRestart containerC
Reboot an LXC container.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| timeout | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate the tool is not read-only and not idempotent, which is consistent with 'reboot'. However, the description adds no further behavioral details (e.g., impact on running processes, data integrity, or timeout effects). No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence of 4 words), but at the cost of being uninformative. It is not structured to front-load key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, and sibling tools with similar actions, the description is severely incomplete. It does not explain the restart behavior, side effects, or required parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 3 parameters with 0% description coverage, and the description does not mention any parameters. It fails to explain the purpose of 'node', 'vmid', or 'timeout'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'Reboot' and resource 'LXC container', which is clear but adds little beyond the title 'Restart container'. It does not differentiate from siblings like 'start_container' or 'stop_container', but the name itself provides some distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., 'stop_container' then 'start_container', or 'shutdown_container'). No prerequisites or conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_backupRestore backupADestructive
Restore a vzdump archive as a new VM/container. DESTRUCTIVE — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Target node for the restored VM/container | |
| vmid | Yes | New VM/container ID for the restored machine | |
| unique | No | Generate unique MAC addresses | |
| archive | Yes | Backup volume ID (e.g. 'backup:backup/vzdump-qemu-100-...') | |
| confirm | No | Set to true once the user has approved this destructive action | |
| storage | No | Target storage for disks |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by explicitly labeling the tool as 'DESTRUCTIVE' and instructing to confirm with the user. It also clarifies that a new VM/container is created, implying no overwrite. This contextualizes the destructiveHint annotation effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences. The first sentence establishes purpose, and the second provides a critical behavioral note. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (restore backup to new machine), the description covers the core action and danger. It could mention that the backup must exist and be accessible, but that is implied. Overall, it provides sufficient context for an AI agent to understand the tool's function and risks.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema documentation covers 100% of parameters, so baseline is 3. The description does not add any parameter-specific details beyond what the schema already provides. The destructive warning indirectly relates to the confirm parameter but does not explain its usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Restore'), the source ('vzdump archive'), and the result ('as a new VM/container'). It effectively distinguishes from sibling tools like clone or create by specifying this is for restoring from a backup archive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly warns that the action is destructive and instructs to ask user for confirmation before invoking. However, it does not provide guidance on when to use this tool versus alternatives (e.g., clone, restore from snapshot) or mention prerequisites like the backup must exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
retry_jobRetry a failed/cancelled jobA
Re-invoke the originating tool for a failed/cancelled job, using the stored retry recipe. Returns the new job_id.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations: it reveals the tool re-invokes the originating tool using a stored retry recipe and returns a new job_id. With annotations already indicating a non-read, non-destructive mutation, the description complements them well without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two sentences) and front-loaded with the key action. Every sentence adds value with no extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is adequate but lacks details about prerequisites (e.g., job must exist and be retryable) or the nature of the 'stored retry recipe'. Could be slightly more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single parameter (job_id) fully, and the description does not add additional semantic meaning to it. Baseline of 3 is appropriate for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Re-invoke the originating tool for a failed/cancelled job', using a specific verb and resource. It distinguishes from sibling tools like cancel_job or get_job by focusing on retrying failed/cancelled jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage only for failed/cancelled jobs, providing context for when to use the tool. However, it does not explicitly mention when not to use it or suggest alternatives, leaving some room for ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rollback_snapshotRollback to snapshotADestructive
Revert a VM or container to a previous snapshot state. VM/container will be stopped first. DESTRUCTIVE — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| confirm | No | Set to true once the user has approved this destructive action | |
| vm_type | No | qemu | |
| snapname | Yes | Snapshot name to roll back to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveness, and the description adds that the VM/container will be stopped first and explicitly warns 'DESTRUCTIVE — ask the user to confirm', which adds behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundancy; the action is front-loaded, and critical behavioral notes follow efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers the core action and key side effects (stop, destruction), it lacks details on error cases, vm_type differences, and confirmation parameter semantics, making it adequate but not comprehensive for a 5-parameter destructive tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 40% schema description coverage, the description fails to compensate by explaining parameters like node, vmid, or confirm, leaving required parameters undocumented beyond their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Revert' and the resource 'a VM or container to a previous snapshot state', making the tool's purpose distinct from sibling tools like create_snapshot or delete_snapshot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides useful context (stops the VM first, is destructive, requires user confirmation) but lacks guidance on when to use vs alternatives like restore_backup, or prerequisites like snapshot existence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_backup_jobRun backup schedule nowA
Trigger a scheduled backup job to run immediately (bypasses the schedule).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds minimal behavioral context beyond the title, only noting that it bypasses the schedule. No further details on side effects or prerequisites are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, efficient sentence of 11 words that communicates the core function without redundancy. It is front-loaded and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one required parameter and no output schema, the description provides the essential purpose but lacks context on how to obtain the job ID, what happens if the job is already running, or potential error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description should explain the 'id' parameter, but it does not mention it at all. The user must rely solely on the schema, which only specifies type and minLength.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Trigger') and the resource ('scheduled backup job') with the additional qualifier 'bypasses the schedule', distinguishing it from sibling tools like create_backup_job and list_backup_jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (trigger immediate run), but lacks explicit guidance on when not to use or alternative tools. For example, it does not mention that create_backup might be used for one-time backups instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_node_dnsUpdate node DNSBIdempotent
Update the node's DNS configuration (search domain, nameservers).
| Name | Required | Description | Default |
|---|---|---|---|
| dns1 | No | ||
| dns2 | No | ||
| dns3 | No | ||
| node | Yes | ||
| search | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotent, non-destructive mutation. Description adds specific fields affected (search domain, nameservers) but doesn't disclose behavior like field overwriting or defaults.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 9 words, no extraneous information. Efficiently conveys core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with no output schema, the description is too brief. It covers the general action but leaves parameter details ambiguous, hindering correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description provides some clarification ('search domain, nameservers' maps to search and dns1-3). However, it does not detail the required node parameter or format constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Update') and resource ('node's DNS configuration'), listing the fields affected (search domain, nameservers). Clearly distinguishes from siblings like get_node_dns or set_node_hosts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., get_node_dns to read, or other set_node_* tools). Lacks context about prerequisites or suitability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_node_hostsWrite node /etc/hostsB
Write /etc/hosts entries on a node.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Full /etc/hosts contents | |
| node | Yes | ||
| digest | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'Write' which implies overwriting, but it does not clarify whether the entire file is replaced, if existing entries are preserved, or if the operation is idempotent. Annotations do not provide additional safety hints. More detail on permissions and side effects is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence. It is efficient and front-loaded, but could benefit from additional structure without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks essential context for a system file modification tool, such as impact on existing entries, required permissions, or response behavior. Given the low schema coverage and no output schema, the description is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only the 'data' parameter's purpose is implied by the description as 'Full /etc/hosts contents'. The 'node' and 'digest' parameters are not described in the schema or the description. With only 33% schema coverage, the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Write') and the resource ('/etc/hosts entries on a node'). It distinguishes from sibling tools like get_node_hosts, set_node_dns, etc., effectively communicating the tool's specific purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. The description implies usage for writing hosts file entries but does not contrast with similar tools like set_node_dns or set_node_time. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_node_subscriptionSet subscription keyADestructiveIdempotent
Set the Proxmox subscription key on a node. HIGH RISK — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Subscription key | |
| node | Yes | ||
| confirm | No | Set to true once the user has approved this action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive and write behavior. The description adds the explicit instruction to confirm with the user, which is valuable behavioral context. However, it does not elaborate on idempotency or other side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence plus a short warning. Every word adds value, and the risk warning is front-loaded for immediate attention.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a high-risk, destructive operation, the description is too sparse. It does not explain the effect of setting the subscription key, the format of the key, or the necessity of the confirm parameter. Annotations and schema partially fill the gap, but the description should provide more context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no information about the parameters (node, key, confirm). With schema description coverage at 67%, the description should compensate but fails to do so, leaving the agent uninformed about required inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Set'), the resource ('Proxmox subscription key'), and the target ('on a node'). It distinguishes this tool from siblings like 'delete_node_subscription' and 'update_node_subscription'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a risk warning ('HIGH RISK — ask the user to confirm'), but does not specify when to use this tool versus alternatives, such as when a subscription key already exists or when to use update_node_subscription instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_node_timeSet node timeC
Set the node's system time (ISO 8601 UTC timestamp).
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| time | Yes | ISO 8601 UTC timestamp |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint=false), but the description adds no behavioral context beyond that. It does not disclose potential side effects (e.g., impact on running jobs, logs) or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence with no redundancy. It is front-loaded with the action, but could benefit from a brief note on parameter format or usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a system-level write operation, the description lacks important context such as whether the change is immediate, persistent, or reversible. No reference to sibling 'get_node_time' for verification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the 'time' parameter as 'ISO 8601 UTC timestamp', so the description adds no new information. The 'node' parameter has no description in the schema or description, leaving its meaning implicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set'), the resource ('node's system time'), and the expected format ('ISO 8601 UTC timestamp'), which distinguishes it from sibling tools like 'get_node_time' and 'set_node_timezone'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs alternatives, nor does it mention prerequisites or contexts. An agent would have to 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.
set_node_timezoneSet node timezoneC
Set the node's timezone (e.g. 'Europe/Helsinki', 'UTC').
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| timezone | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutation (readOnlyHint=false) and not destructive (destructiveHint=false). The description merely confirms the mutation but adds no additional behavioral context such as permission requirements, side effects (e.g., service restart), or the scope of the change (e.g., immediate effect).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, 15 words, effectively front-loading the action. It is concise without unnecessary fluff, though it could be slightly expanded without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 2 required parameters, no output schema, and minimal description, the tool lacks completeness. It does not explain what the return value indicates (e.g., success/failure), any validation of timezone strings, or the effect on the node's time. The annotations provide some context but the description fails to fill the gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and there are no enums. The description adds timezone examples but does not explain the 'node' parameter (e.g., how to specify it: ID, name, path). The parameter semantics are incomplete, relying on the schema type but lacking human-readable guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Set' and the resource 'node's timezone', with concrete examples like 'Europe/Helsinki' and 'UTC'. It distinguishes itself from sibling tools such as 'set_node_time' which sets the time rather than the timezone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. For example, it does not mention that setting the timezone may affect system services or that it should be used in conjunction with setting the time.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_vm_cloudinitUpdate cloud-init driveB
Set cloud-init parameters (user, password, SSH keys, IP config, DNS, search domain) and regenerate the cloud-init ISO.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| ciuser | No | Cloud-init user | |
| sshkeys | No | URL-encoded SSH public keys | |
| ipconfig0 | No | e.g. 'ip=dhcp' or 'ip=10.0.0.10/24,gw=10.0.0.1' | |
| cipassword | No | Cloud-init password (redacted in logs) | |
| nameserver | No | DNS servers | |
| regenerate | No | Regenerate cloud-init ISO after update | |
| searchdomain | No | DNS search domain |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide safety profile (readOnlyHint=false, destructiveHint=false) but description adds only that it regenerates the ISO. It does not clarify whether existing settings are overwritten or merged, whether the VM needs to be stopped, or when changes take effect. Additional context beyond annotations would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with clear verb and direct listing of parameters. Efficient and front-loaded, no filler. Slightly could structure information (e.g., separate required vs optional) but overall concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters and no output schema, the description provides a high-level summary but lacks completeness. It doesn't explain the effect on the VM (e.g., immediate reboot required), return value (success message?), or edge cases. Sibling tools exist but no positioning context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 78%, and the description simply lists parameter categories (user, password, etc.) without adding new semantics. For node and vmid, the description omits details that the schema lacks (no description for these required parameters). The description does not enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it sets cloud-init parameters and regenerates the cloud-init ISO. The specific listing of parameters and the action 'regenerate the cloud-init ISO' distinguishes it from other VM tools, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like update_vm_config. Does not mention prerequisites (e.g., VM must have cloud-init enabled) or exclusions. The agent must infer usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shutdown_containerShutdown container (graceful)B
Graceful shutdown via pct shutdown. Equivalent to ACPI shutdown.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| timeout | No | ||
| forceStop | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a non-destructive mutation. The description adds 'graceful' and 'ACPI' context but does not disclose behavior regarding timeout, forceStop, or process handling. With annotations present, the description adds moderate value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that efficiently convey the core purpose and technical equivalence. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the purpose is clear, the description lacks parameter context and usage scenarios. Given 4 parameters and 0% schema description, the agent is left uninformed about key options like timeout and forceStop.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no information about any of the 4 parameters (node, vmid, timeout, forceStop). With 0% schema coverage, this is a critical gap; the agent must rely solely on parameter names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs a graceful shutdown via pct shutdown, equivalent to ACPI shutdown. This specifies the verb (shutdown), resource (container), and distinguishes from forceful stop (stop_container) and VM shutdown (shutdown_vm).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for graceful container shutdown but lacks explicit guidance on when to use vs alternatives like stop_container or shutdown_vm. No prerequisites or exclusion criteria are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shutdown_vmShutdown VM (graceful)B
ACPI shutdown. The guest OS must respond (install qemu-guest-agent for reliability).
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| timeout | No | Max wait seconds (default 60) | |
| forceStop | No | Force stop after timeout |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations show destructiveHint=false and openWorldHint=true. Description adds that the guest OS must respond and recommends qemu-guest-agent, providing context beyond annotations. However, it does not detail consequences of failure or timeout behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action 'ACPI shutdown'. No unnecessary words, and each sentence adds value directly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters, 2 required, and no output schema, the description is too minimal. It lacks explanation of the graceful nature, behavior when guest does not respond, and does not reference sibling tools for forceful alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (timeout and forceStop have descriptions; node and vmid do not). The description does not add any parameter details beyond the schema, providing no additional semantic help for the undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'ACPI shutdown' and the title indicates graceful shutdown, specifying the action and target (VM). However, it does not explicitly differentiate from sibling tools like stop_vm or reboot_vm.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the need for guest OS cooperation but does not explicitly state when to use this tool versus alternatives like stop_vm for forceful shutdown. No direct guidance on prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_containerStart containerB
Start an LXC container.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that the tool is not read-only (readOnlyHint=false), not idempotent, and not destructive. The description adds no behavioral context beyond the action 'start', such as whether starting a running container is a no-op or error, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence without fluff. It is efficient but could be improved with a brief structure (e.g., prerequisites, behavior) without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two required parameters and no output schema, the description is minimal but barely adequate. It lacks context about state requirements, return values, or error conditions, which are partially compensated by the annotations but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description contains no parameter information, and schema description coverage is 0%. While parameter names ('node', 'vmid') are somewhat self-explanatory, the description does not confirm their meaning or format, leaving ambiguity for an AI agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Start an LXC container' uses a specific verb ('Start') and resource ('LXC container'), clearly distinguishing from sibling tools like 'stop_container', 'restart_container', and 'start_vm'. It directly states what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., restart, shutdown). The description does not indicate prerequisites such as the container needing to be in a stopped state, nor does it mention any exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_vmStart VMC
Power on a QEMU VM.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-read-only (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds no further behavioral context such as what happens if the VM is already running, whether it is asynchronous, or any required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at 4 words with no wasted phrasing. It efficiently communicates the core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple action and two obvious parameters, the description is incomplete. It lacks information on return values (e.g., task ID), error states, idempotency effects, and any interaction with the 'openWorldHint' annotation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate by explaining the two parameters (node and vmid), but it fails to do so. No meaning is added beyond the schema's names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Power on a QEMU VM' uses a specific verb ('Power on') and resource ('QEMU VM'), clearly distinguishing it from sibling tools like start_container, shutdown_vm, stop_vm, reboot_vm, and reset_vm.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., start_container for containers, reboot_vm for rebooting, or waking a VM via other methods). No exclusion criteria or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_containerStop container (force)B
Hard-stop (immediate power off) the container.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is not read-only (modifies state), not idempotent, and not destructive. The description adds context by specifying 'hard-stop' and 'immediate power off', which clarifies the forceful nature but does not disclose potential side effects (e.g., data loss). Since the annotations already cover basic behavioral traits, the description provides only incremental value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that conveys the core action efficiently. It is front-loaded with the key information. While it is brief, it avoids unnecessary elaboration, earning a high score for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a state-changing operation with no output schema, the description is incomplete. It lacks information about return values, error conditions, prerequisites, or the consequences of a hard stop. For a mutation tool, more completeness is expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has two required parameters ('node' and 'vmid') with basic type/pattern constraints but no descriptions. The tool description does not explain the parameters at all, despite the schema coverage being 0%. This leaves the agent without necessary context for parameter specification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Hard-stop'/'immediate power off') and the resource ('the container'). It effectively distinguishes the tool from siblings like shutdown_container (graceful) and restart_container (stop then start) by emphasizing the forceful nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool is for a hard, immediate stop rather than a graceful shutdown, but it does not explicitly state when to use it versus alternatives (e.g., shutdown_container) or warn against using it in certain scenarios. The guidance is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_vmStop VM (force)B
Hard stop (immediate power off) — equivalent to pulling the plug.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the action (immediate power off) but does not mention potential data loss or consequences beyond what is obvious. Annotations have destructiveHint=false, which aligns with the tool not destroying the VM, but the description could warn about unsaved data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, front-loading the essential information about the tool's action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core action but lacks warnings about non-reversibility or data loss, and does not mention return values. Given the tool's simplicity and lack of output schema, it is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no information about parameters node or vmid, leaving the agent to infer from naming alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it's a hard stop (immediate power off) equivalent to pulling the plug, distinguishing it from graceful shutdown options like shutdown_vm. The verb and resource are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for emergency or unresponsive cases via 'equivalent to pulling the plug', but does not explicitly state when to use versus alternatives like shutdown_vm or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unlink_container_diskDetach container volumeB
Detach an LXC volume (file remains on storage pool).
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| force | No | ||
| volume | Yes | Volume identifier (e.g. rootfs, mp0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-destructive and non-read-only. Description adds that file remains on storage pool, but does not disclose other behaviors like container state requirements or effect of force parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, clear sentence with no superfluous content. Efficiently conveys the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Minimal description lacks context on constraints (e.g., container must be stopped?), node specification, or implications of detaching rootfs. Insufficient for agent to use correctly without additional knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% (only volume has a description). The tool description adds no parameter information, failing to compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (detach), resource (LXC volume), and key nuance (file remains on storage pool). Distinguishes from similar siblings like move or delete operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like move_container_disk or delete_container. Lacks context on prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unlink_vm_diskDetach VM diskA
Detach a disk from a VM (the disk file remains on the storage pool). Use move_vm_disk to migrate; use delete via Proxmox UI to actually remove.
| Name | Required | Description | Default |
|---|---|---|---|
| disk | Yes | Disk identifier (e.g. scsi0) | |
| node | Yes | ||
| vmid | Yes | ||
| force | No | Force-unlink even if disk in use |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-read-only and non-destructive nature. The description adds that the disk file remains, and mentions the force parameter. It does not contradict annotations. More context could be added about permissions, but sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and immediate clarification about disk persistence. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and moderate complexity, the description covers purpose, differentiation, and a key behavioral note. Missing details like success indicators or error conditions, but not essential given context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%. The description repeats the schema's explanation for 'disk' and 'force' but does not add new meaning for 'node' or 'vmid'. Baseline score of 3 is appropriate as it does not significantly enhance beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Detach a disk from a VM (the disk file remains on the storage pool)'. It distinguishes from sibling tools move_vm_disk and delete, providing specific verb+resource with scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use alternatives: 'Use move_vm_disk to migrate; use delete via Proxmox UI to actually remove.' This provides clear context for tool selection, though lacks explicit prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_backup_jobUpdate backup scheduleCIdempotent
Update an existing scheduled backup job.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| all | No | ||
| mode | No | ||
| pool | No | ||
| vmid | No | ||
| notes | No | ||
| delete | No | ||
| ionice | No | ||
| mailto | No | ||
| bwlimit | No | ||
| comment | No | ||
| enabled | No | ||
| exclude | No | ||
| storage | No | ||
| compress | No | ||
| lockwait | No | ||
| maxfiles | No | ||
| next_run | No | ||
| schedule | No | Calendar event: 'Mon..Sun', '00:00', or a calendar event spec | |
| stopwait | No | ||
| prune_backups | No | ||
| mailnotification | No | ||
| notification_mode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true and destructiveHint=false. The description adds no behavioral context beyond 'update', such as what parts of the job are modified, whether changes are incremental, or any required permissions. With annotations present, the description should augment them, but it does not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 7 words, very concise. However, it is too sparse and sacrifices valuable information for brevity. It could include a brief note on common use cases or parameter groups.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (23 parameters, no output schema, numerous siblings), the description is extremely incomplete. It fails to mention that it's for Proxmox VE backup jobs, that it requires an existing job ID, or what ranges of updates are supported. The sibling list includes many update tools, so differentiation is critical but missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 4%, meaning almost no parameter descriptions in the schema. The description 'Update an existing scheduled backup job' provides zero parameter information. It does not explain any of the 23 parameters (e.g., mode, pool, schedule) or their semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update an existing scheduled backup job' clearly states the verb (Update) and resource (existing scheduled backup job). It distinguishes from create/delete siblings, but the title 'Update backup schedule' could mislead by implying only schedule changes, while the schema includes many other parameters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like create_backup_job or update_container_config. No prerequisites or exclusions mentioned. The description provides no context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_container_configUpdate container configAIdempotent
Patch one or more LXC container configuration keys (cores, memory, net0, features, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| config | Yes | Config keys to update, e.g. {"cores":2,"memory":1024} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true and destructiveHint=false. The description adds the 'patch' verb, implying modification without destruction, but does not elaborate on side effects (e.g., unspecified keys preserved or reset). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with examples, no unnecessary words. Front-loads the action and resource, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient for a simple patch operation, but lacks details on return value, error handling, or behavior when config keys conflict. With no output schema and moderate complexity, more context would help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 33% (only config has a description). The description adds an example for config ({'cores':2,'memory':1024}) but provides no help for node or vmid parameters, which are undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'patch', the resource 'LXC container configuration keys', and provides specific examples (cores, memory, net0, features). This distinguishes it from sibling tools like update_container_resources or update_vm_config.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool vs alternatives like update_container_resources. It implies general use for arbitrary config keys but lacks guidance on when not to use it or prerequisites (e.g., container must exist).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_container_resourcesUpdate container CPU/memory/swapA
Convenience wrapper around update_container_config that resizes CPU, memory, swap, and disk in one call.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| swap | No | Swap in MiB | |
| vmid | Yes | ||
| cores | No | ||
| memory | No | Memory in MiB | |
| disk_size_gb | No | New rootfs size in GB |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is not read-only, not idempotent, and not destructive. The description adds that it is a convenience wrapper, but does not disclose behavioral details like whether resizing requires the container to be stopped, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no fluff, front-loading the purpose effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is fairly complete for a simple wrapper tool, explaining its relationship to update_container_config. However, it could add context about error handling or return values, but is sufficient given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (swap and memory have descriptions, disk_size_gb has a description, node and vmid have none). The tool description does not add parameter-level details beyond listing the resources, so it does not compensate for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool resizes CPU, memory, swap, and disk in one call, and identifies it as a convenience wrapper around update_container_config. It distinguishes from the general config tool and specific resizing tools like resize_container_disk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when resizing multiple resources simultaneously, but does not explicitly state when to use update_container_config instead or mention prerequisites. The sibling context (e.g., update_container_config) provides some guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_ha_groupUpdate HA groupADestructiveIdempotent
Update an HA group (nodes, failback, restricted, comment). HIGH RISK — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| group | Yes | ||
| nodes | No | ||
| delete | No | Properties to delete (e.g. ['comment']) | |
| comment | No | ||
| confirm | No | Set to true once the user has approved this action | |
| nofailback | No | ||
| restricted | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations by explicitly stating 'HIGH RISK — ask the user to confirm before invoking.' This reinforces the destructiveHint=true annotation and provides actionable guidance. It does not cover additional behaviors like authorization needs or rate limits, but the warning is significant.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences: the first states the purpose and updatable fields, the second adds the high-risk warning. Every sentence is necessary and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, high risk, no output schema), the description is somewhat incomplete. It does not explain the purpose of the 'confirm' parameter, nor does it describe return values or side effects. While the annotations help, the description could be more comprehensive for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 29% schema description coverage, the description only enumerates four parameters (nodes, failback, restricted, comment) without explaining their meaning or usage. It does not clarify the 'delete', 'confirm', or 'nofailback' parameters. The description adds minimal value beyond the schema for the listed parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and the resource 'HA group', and it specifies the fields that can be updated (nodes, failback, restricted, comment). This effectively distinguishes it from sibling tools like create_ha_group and delete_ha_group.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a high-risk warning and instructs to ask the user for confirmation before invoking. This provides clear guidance on when to use (after user confirmation) but lacks explicit mention of when not to use or alternatives, such as create_ha_group for initial setup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_node_configUpdate node configADestructiveIdempotent
Update node description, ACPI settings, wake-on-lan, etc. HIGH RISK — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| acpi | No | ||
| node | Yes | ||
| confirm | No | Set to true once the user has approved this action | |
| wakeonlan | No | ||
| description | No | ||
| startall_onboot_delay | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, so the description adds value by explicitly labeling it 'HIGH RISK' and requiring user confirmation. This goes beyond the annotations by providing a behavioral instruction. It does not detail what specific destructive actions occur, but the warning is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no extraneous content. The first sentence states the purpose with examples, the second sentence delivers a critical warning. Every word earns its place, and the structure is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters and no output schema, the description is brief. It covers high-level purpose and safety, but lacks detail on return values, parameter effects for unmentioned parameters, and lifecycle implications. The warning is crucial but completeness is only adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description lists three of the six parameters (description, ACPI, wake-on-lan) by example, providing some meaning beyond the schema which has only 17% coverage (confirm parameter has description). The remaining parameters (node, confirm, startall_onboot_delay) are not explained. The description partially compensates for low schema coverage but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it updates node configuration including description, ACPI, and wake-on-lan settings. The verb 'update' and resource 'node config' are specific. However, it does not fully differentiate from other node update tools like update_node_network or update_node_subscription, and the 'etc.' leaves some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a critical usage guideline: 'HIGH RISK — ask the user to confirm before invoking.' This tells the agent to obtain user approval. However, it does not specify when to use this tool versus competing node update tools, nor does it mention prerequisites or context for safe usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_node_networkUpdate network interfaceADestructiveIdempotent
Update an existing network interface. HIGH RISK — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| iface | Yes | ||
| delete | No | ||
| address | No | ||
| confirm | No | Set to true once the user has approved this action | |
| gateway | No | ||
| netmask | No | ||
| comments | No | ||
| autostart | No | ||
| bridge_ports | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and idempotentHint=true. The description adds valuable context by explicitly labeling the operation as 'HIGH RISK' and requiring user confirmation, which goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence stating the action and a second sentence highlighting risk and required confirmation. It is front-loaded with the essential purpose and additional caution, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 10 parameters, low schema coverage, no output schema, and the description only covers the high-risk confirmation aspect, it leaves the agent uninformed about parameter usage and expected behavior. Annotations help but the description is incomplete for effective invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has only 10% parameter description coverage (only 'confirm' has a description). The tool description does not explain any of the other 9 parameters, providing no additional meaning beyond the schema. For low coverage, the description should compensate but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and resource 'existing network interface', directly distinguishing it from siblings like 'create_node_network' and 'delete_node_network'. The addition of 'HIGH RISK' further clarifies the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises to ask for user confirmation due to high risk, which is a clear usage guideline. However, it does not provide guidance on when to choose this tool over alternatives, though the name and context imply updating existing interfaces.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_node_subscriptionUpdate subscriptionCDestructiveIdempotent
Trigger a subscription status refresh on a node.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, but the description says only 'trigger a status refresh' without mentioning potential destructive side effects. It does not explain what 'refresh' entails (e.g., data loss, downtime). The description adds minimal behavioral context beyond what annotations already signal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence) and concise, but it sacrifices necessary detail. It is front-loaded but lacks structure, making it barely adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the parameter count is low and annotations exist, the description still fails to explain the action thoroughly. It does not cover return values, prerequisites, or side effects, leaving significant gaps for a potentially destructive tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'node' has no description in the schema (0% coverage), and the description does not explain what 'node' refers to (e.g., ID or name). The agent must infer from context, which is insufficient for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: trigger a subscription status refresh on a node. It clearly indicates a verb ('trigger') and resource ('subscription status refresh on a node'), distinguishing it from sibling tools like 'set_node_subscription' and 'get_node_subscription' which are about setting or reading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives. The description neither mentions prerequisites, when not to use, nor references siblings like 'set_node_subscription' or 'get_node_subscription'. This leaves the agent unsure about the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_poolUpdate resource poolAIdempotent
Update an existing resource pool (comment, allowed storages, VM/CT membership).
| Name | Required | Description | Default |
|---|---|---|---|
| vms | No | VM/CT IDs to assign | |
| poolid | Yes | ||
| comment | No | ||
| storage | No | Allowed storages (replaces existing list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description adds minimal context beyond listing updatable fields; it does not disclose replacement behavior (e.g., storage replaces existing list) or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the action and lists key fields. It is concise but could be improved by briefly noting that 'allowed storages replaces the existing list' to clarify behavior without adding much length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should indicate what the tool returns (e.g., success status). It also omits side effects: the storage parameter replaces the existing list, and the vms parameter likely replaces membership, but this is not clarified. The description is incomplete for a mutation tool with multiple params.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, and the description partially compensates by listing three of the four parameters (comment, allowed storages, VM/CT membership). However, it omits the required 'poolid' parameter and does not clarify array semantics (e.g., whether vms adds or replaces). The schema itself has some descriptions, so the added value is limited.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update an existing resource pool' and lists the specific fields that can be updated (comment, allowed storages, VM/CT membership). This distinguishes it from sibling tools like create_pool and delete_pool, and from other update tools by specifying the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing to modify a pool's comment, storages, or membership, but does not explicitly state when to use it versus alternatives (e.g., when to use update_pool vs update_vm_config). No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_replication_jobUpdate replication jobCIdempotent
Update an existing replication job (schedule, rate, disable, comment).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| rate | No | ||
| delete | No | ||
| comment | No | ||
| disable | No | ||
| schedule | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutation (readOnlyHint=false), idempotency, and non-destructiveness. Description adds no behavioral traits beyond listing updatable fields, which is consistent but not extra disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with parenthetical list is concise but lacks structure. Could be more informative without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so return value is unspecified. Does not explain 'delete' parameter or provide enough context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%. Description lists only four of six parameters and provides no explanation of their meaning or usage. Missing 'delete' parameter entirely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it updates an existing replication job and lists updatable fields (schedule, rate, disable, comment). However, it does not differentiate from siblings like create or delete replication job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not specify prerequisites or contexts where it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_sdn_controllerUpdate SDN controllerADestructiveIdempotent
Update an existing SDN controller. HIGH RISK — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| asn | No | ||
| ebgp | No | ||
| name | Yes | ||
| peers | No | ||
| delete | No | ||
| confirm | No | Set to true once the user has approved this action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds value beyond annotations by stating 'HIGH RISK' and requiring user confirmation, which complements the destructiveHint: true annotation. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each delivering essential information (purpose and risk). It is concise and front-loaded, though it could benefit from more detail on parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters and no output schema, the description covers the critical risk and confirmation mechanism but lacks details on parameter usage, return values, or prerequisites. Completeness is moderate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 17% (only the confirm parameter has a description). The tool description does not explain any other parameters (asn, ebgp, name, peers, delete), so it fails to compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update an existing SDN controller' clearly states the verb (update) and resource (SDN controller), and implies it modifies an existing entity, distinguishing it from siblings like create_sdn_controller and delete_sdn_controller.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly flags 'HIGH RISK — ask the user to confirm before invoking', providing clear safety guidance. The confirm parameter supports this. However, it does not compare against alternatives like create or delete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_sdn_subnetUpdate SDN subnetCIdempotent
Update an SDN subnet.
| Name | Required | Description | Default |
|---|---|---|---|
| dns | No | ||
| dhcp | No | ||
| snat | No | ||
| vnet | Yes | ||
| delete | No | ||
| subnet | Yes | ||
| gateway | No | ||
| comments | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotency and non-destructiveness, but the description adds no behavioral context beyond stating the update action. It does not clarify whether the update is a full replacement or merge, what happens to unset parameters, or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single-sentence description is too minimal; it essentially restates the title and omits critical information. While concise, it sacrifices utility for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 8 parameters and no output schema, the description is woefully incomplete. It fails to explain return values, parameter constraints, or operational nuances, leaving significant gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no explanation of the 8 parameters, even though schema description coverage is 0%. Parameters like 'delete' (array of strings) and 'snat' (boolean) are ambiguous without further context, forcing the agent to guess their meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (update) and the resource (SDN subnet), distinguishing it from creation, deletion, or listing. However, it lacks detail on what specific properties can be updated, which would elevate clarity further.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool over alternatives like create_sdn_subnet or delete_sdn_subnet. There is no mention of prerequisites (e.g., the subnet must exist) or exclusions, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_sdn_vnetUpdate SDN vnetCIdempotent
Update an SDN vnet (tag, comment, alias).
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | ||
| name | Yes | ||
| alias | No | ||
| delete | No | ||
| comment | No | ||
| vlanaware | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is a non-destructive, idempotent mutation (readOnlyHint=false, destructiveHint=false, idempotentHint=true). The description adds the specific fields that can be updated, but does not disclose important details like whether updates are partial or full, what happens to unspecified fields, or any side effects. This is acceptable given 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence), which is good, but it omits critical information. It is not front-loaded with the most important details (e.g., required parameter). The brevity sacrifices necessary completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 6 parameters, no parameter descriptions, no output schema, and a vague description, the tool is under-documented. Important context is missing: what happens if the vnet doesn't exist, the meaning of the 'delete' parameter, the effect of vlanaware, and the return value. Sibling tools suggest a family of SDN update operations, but this description does not clarify its specific role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions only 3 of 6 parameters (tag, comment, alias) with no explanation of their meaning, leaving delete, vlanaware, and name (required) undocumented. The description provides minimal semantics beyond the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Update an SDN vnet' with a list of fields (tag, comment, alias), which clearly identifies the verb and resource. However, it does not differentiate from sibling tools like update_sdn_subnet or create_sdn_vnet, and the list of fields is incomplete (missing delete, vlanaware, name).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as create_sdn_vnet, delete_sdn_vnet, or other update tools. There are no prerequisites or use cases mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_sdn_zoneUpdate SDN zoneADestructiveIdempotent
Update an SDN zone. HIGH RISK — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| mtu | No | ||
| name | Yes | ||
| bridge | No | ||
| delete | No | ||
| confirm | No | Set to true once the user has approved this action | |
| controller | No | ||
| vxlan_port | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds 'HIGH RISK — ask the user to confirm' beyond annotations that already indicate destructiveHint=true and readOnlyHint=false. This provides actionable behavioral context without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence effectively conveys the core message. No unnecessary text. Follows front-loading principle well.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite good purpose clarity, the description omits crucial context for a tool with 7 parameters, no output schema, and destructive impact. Should at least hint at which fields are commonly updated or the effect of deletion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (14%), with only 'confirm' having a description. The tool description does not explain any parameter meaning or usage, failing to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (Update) and the resource (SDN zone). Distinguishes from sibling tools like create_sdn_zone, delete_sdn_zone, get_sdn_zone. The HIGH RISK warning adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit instruction to ask user before invoking due to high risk, which is a key usage guideline. However, lacks guidance on when to use this tool vs alternatives (e.g., selecting specific parameters).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_storageUpdate storage poolADestructiveIdempotent
Update an existing storage pool. HIGH RISK — may disrupt running VMs. Ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| nodes | No | ||
| enable | No | ||
| shared | No | ||
| confirm | No | Set to true once the user has approved this action | |
| content | No | ||
| storage | Yes | ||
| maxfiles | No | ||
| prune_backups | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and idempotentHint=true; the description adds context by specifying potential disruption of running VMs and the need for confirmation, which goes beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, efficient, and front-loaded with purpose and risk. No superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters and no output schema, the description is too brief. It lacks details on which settings can be updated, how the risk applies to different parameters, and the overall workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 13%, and the description provides no additional information about parameters. This fails to compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it updates an existing storage pool, which distinguishes it from sibling tools like create_storage and delete_storage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly warns about high risk and disruption of running VMs, and instructs to ask for user confirmation, providing clear usage guidance. It does not explicitly list when not to use or alternatives, but the risk warning is strong enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_vm_configUpdate VM configAIdempotent
Patch one or more VM configuration keys (cores, memory, scsi0 size, net0, ostype, etc.). Use current=true to update a running VM where supported. Only a safe allowlist of keys is accepted — keys that can attach host PCI/USB devices, override SMBIOS, or change the QEMU machine type are rejected. HIGH RISK — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| config | Yes | Config keys to update, e.g. {"cores":4,"memory":4096} | |
| confirm | No | Set to true once the user has approved this action | |
| current | No | Apply to running VM where supported |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotent and non-destructive. The description adds valuable context: HIGH RISK requires confirmation, only safe allowlist, and support for running VMs via current=true. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus a warning. Each sentence is purposeful, front-loads the action, and provides critical constraints without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers usage, risk, key restrictions, and the current flag. Lacks output description but patch tools typically return nothing; however, for completeness, mentioning response would improve.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 60% including config, confirm, current. Node and vmid lack descriptions but are standard. The description does not add new information beyond schema for these parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it patches VM configuration keys, lists examples like cores, memory, scsi0 size, net0, ostype, and distinguishes itself from sibling tools like update_container_config by specifically targeting VM config.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (patching config keys) and warns against using for certain key types, but does not explicitly mention that dedicated tools like resize_vm_disk exist for specific changes, leaving room for confusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vm_agent_execExecute command in guest (QEMU agent)A
Run a shell command inside a VM via the QEMU guest agent. Returns a pid; poll exec_status for output.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| command | Yes | Shell command to run inside the guest | |
| input_data | No | Optional stdin |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds value beyond annotations by explaining the asynchronous nature (returns pid, poll for output). Annotations already indicate not read-only, not inherently destructive, and not idempotent. No contradiction. Could mention that command may have side effects based on execution, but overall transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. Front-loaded with the primary purpose, then secondary information (return and next step). Every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Considering the lack of output schema, the description effectively communicates the input parameters and the process flow (run command, get pid, poll for output). It could mention potential errors, timeouts, or resource implications, but for a tool with 4 params and annotations, it is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (only command and input_data have descriptions). The description does not detail node or vmid parameters, relying on their common understanding from sibling tools. It adds marginal value by stating the functionality but doesn't compensate for missing schema descriptions on half the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it runs a shell command inside a VM via QEMU guest agent, identifies the return value (pid) and next step (poll exec_status for output). It distinguishes the tool from other VM agent tools like vm_agent_get_hostname or vm_agent_set_user_password.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that exec_status should be polled to get output, providing a clear usage pattern. It doesn't explicitly state when to use this vs alternatives, but given the sibling list with specific agent tools, the context is sufficient. Could benefit from mentioning when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vm_agent_exec_statusPoll QEMU guest exec statusARead-onlyIdempotent
Return exit status + captured stdout/stderr for a previously launched exec.
| Name | Required | Description | Default |
|---|---|---|---|
| pid | Yes | PID returned by vm_agent_exec | |
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety and idempotency. The description adds that it returns exit status and captured stdout/stderr, but does not disclose any additional behavior beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 11 words, conveying all necessary information without any extraneous content. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, so the description should ideally hint at the return structure. It only mentions 'exit status + captured stdout/stderr,' which is adequate but vague for an AI agent expecting a specific JSON format. More detail on the output shape would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (33%), with only 'pid' having a description ('PID returned by vm_agent_exec'). The description adds meaning by clarifying that the pid comes from vm_agent_exec, but provides no additional context for 'node' or 'vmid'. This partially compensates for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Return' and clearly identifies the resource: 'exit status + captured stdout/stderr for a previously launched exec.' It unambiguously distinguishes from sibling tools like vm_agent_exec, which launches an exec, and vm_agent_info, which returns general QEMU agent info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states it is for a 'previously launched exec,' clearly implying it should be used after a call to vm_agent_exec. While it does not explicitly list when not to use or name alternatives, the context is sufficiently clear for appropriate selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vm_agent_fstrimTrim guest filesystemAIdempotent
Issue fstrim to the guest VM, returning free blocks to the hypervisor (reduces provisioned storage).
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotent and non-destructive; description adds the concrete behavioral effect of reducing provisioned storage, which is beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, front-loaded with action and effect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool, the description covers purpose and effect, but omits prerequisites like guest agent requirement or VM running state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description fails to explain the 'node' and 'vmid' parameters, leaving the agent without guidance on required inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Issue fstrim to the guest VM') and its effect ('returning free blocks to the hypervisor, reduces provisioned storage'), making it distinct from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when storage reduction is desired but does not specify when not to use (e.g., if VM is off or guest agent missing) or provide explicit alternatives among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vm_agent_get_fsinfovm agent get fsinfoARead-onlyIdempotent
Return guest filesystem info (mountpoints, used/free bytes).
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds only the basic purpose, no extra behavioral context like potential latency or agent requirements. Adequate but minimal beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no waste. It efficiently conveys the core action and output. Could potentially include parameter hints, but remains concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description specifies the key return fields (mountpoints, used/free bytes). For a simple info tool, this is largely adequate, though a note on data structure would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not elaborate on parameters (node, vmid). While tool context hints at their meaning, the description fails to add value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Return guest filesystem info' with specific details (mountpoints, used/free bytes). It uses a specific verb and resource, distinguishing it from sibling tools that retrieve other guest info (hostname, network, etc.).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context for retrieving filesystem info, but lacks explicit guidance on when to use vs alternatives. Sibling tools are distinctly named for other aspects, making it clear but not formally stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vm_agent_get_hostnamevm agent get hostnameBRead-onlyIdempotent
Return the guest VM hostname.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the safety profile is clear. The description adds no further behavioral context (e.g., error conditions, return type), but it does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (4 words), which is efficient for a simple tool. However, it could be slightly expanded without losing conciseness to include key context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema and only 2 parameters, the description is too minimal. It omits important context like that the VM must have the QEMU agent running, or that the hostname is returned as a string. This leaves the agent with incomplete information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the parameters 'node' and 'vmid' have no descriptions in the schema. The tool description does not explain these parameters, relying solely on their names. An AI agent may need to infer, which is risky.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Return' and the specific resource 'guest VM hostname'. It distinguishes itself from sibling tools like vm_agent_get_osinfo by specifying exactly what it returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, nor any prerequisites (e.g., VM must be running, QEMU agent must be installed). The description is purely functional with no context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vm_agent_get_network_interfacesvm agent get network interfacesBRead-onlyIdempotent
Return network interfaces from inside the guest (with IPs).
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds that data comes from inside the guest, but does not disclose potential failure modes (e.g., guest agent not running) beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy. Efficient but could be slightly expanded without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with annotations covering safety. No output schema, so description could mention return format (e.g., list of interface objects). It adequately describes the core function but lacks detail on output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description does not explain the two required parameters (node, vmid) or how they relate to the tool's function. Given no param descriptions in schema, the tool description should compensate but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description 'Return network interfaces from inside the guest (with IPs)' uses a specific verb and resource, and distinguishes it among sibling vm_agent tools by specifying the guest agent source and that IPs are included.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like vm_agent_get_fsinfo or other VM introspection tools. The description does not mention exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vm_agent_get_osinfovm agent get osinfoCRead-onlyIdempotent
Return guest OS info (kernel, name, version, pretty name).
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds only that it returns specific fields, without additional behavioral context such as potential errors if the guest agent is unavailable or if the VM is powered off.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core purpose: 'Return guest OS info'. No superfluous words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool and the presence of annotations, the description is minimal. It lacks important context such as the requirement for the QEMU Guest Agent to be active, or that the VM must be running. The output fields are listed, but input semantics and error conditions are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 2 parameters (node, vmid) with 0% description coverage. The description does not explain or add meaning to these parameters, leaving the agent to infer from schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return') and resource ('guest OS info'), listing the exact fields (kernel, name, version, pretty name). This clearly distinguishes it from sibling tools like vm_agent_get_hostname or vm_agent_get_fsinfo, which return different information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as vm_agent_info or other vm_agent_get_* tools. The description does not mention prerequisites (e.g., guest agent must be running in the VM) or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vm_agent_get_timevm agent get timeARead-onlyIdempotent
Return guest clock time and skew vs host.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, and idempotentHint. The description adds that the tool returns both clock time and skew, which is beyond what annotations provide. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no unnecessary words. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with no output schema, the description is partially complete. It states what is returned but omits parameter semantics and does not describe the output format. Could be more helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no parameter descriptions). The description does not explain the role of 'node' and 'vmid' parameters. Without this, an agent may not know how to correctly invoke the tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Return' and clearly identifies the resource: 'guest clock time and skew vs host'. It distinguishes this tool from sibling vm_agent_* tools (e.g., get_hostname, get_fsinfo) by focusing on time and skew.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives like get_node_time or other vm_agent tools. The usage context is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vm_agent_get_usersvm agent get usersBRead-onlyIdempotent
Return logged-in users inside the guest.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint, so the safety profile is covered. The description adds that it returns users inside the guest, but doesn't elaborate on behavior like empty results, pagination, or errors. It meets the minimum but adds little beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence of five words, extremely concise with no unnecessary information. Every word contributes to the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should hint at the return format (e.g., list of usernames, JSON structure). It does not. For a simple tool, the description is too sparse to fully guide an agent, missing prerequisites and output details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. However, it does not explain what 'node' or 'vmid' mean or their expected formats. While parameter names are somewhat intuitive, the description fails to add meaningful semantic context for the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Return logged-in users' and the resource 'inside the guest', distinguishing it from other vm_agent_get_* tools that target different guest information (e.g., hostname, OS info).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool, what prerequisites exist (e.g., QEMU guest agent must be running), or when to consider alternatives. It lacks any usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vm_agent_get_vcpusvm agent get vcpusBRead-onlyIdempotent
Return vCPU topology and current usage from inside the guest.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds the context 'from inside the guest', implying agent usage, but does not disclose potential failure modes or limitations (e.g., agent not responding).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, conveys the core action and result clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should elaborate on the returned data structure (e.g., fields like sockets, cores, threads, usage percentage). It omits details about data format and potential edge cases (e.g., guest agent not available).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, and the description provides no explanation of the 'node' and 'vmid' parameters. The tool name and description do not hint at their meaning, leaving the agent without semantic context beyond the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns vCPU topology and usage from inside the guest, which is specific and distinguishes it from sibling tools like vm_agent_get_osinfo or vm_agent_exec.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., vm_agent_get_fsinfo, vm_agent_get_hostname). The description does not mention prerequisites like the guest agent being installed or running.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vm_agent_infovm agent infoBRead-onlyIdempotent
Return QEMU guest agent metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to repeat that. However, it adds no additional behavioral context beyond stating the return of metadata, which is consistent with a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that wastes no words. It is perfectly front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema and the description only says 'metadata', the return format is unspecified. For a simple read operation, this is acceptable but leaves room for ambiguity about what metadata is included.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no information about the parameters 'node' and 'vmid'. With schema description coverage at 0%, the description should compensate but fails to explain what these parameters represent or how to use them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns QEMU guest agent metadata, with a specific verb and resource. It easily distinguishes from sibling tools like vm_agent_get_hostname or vm_agent_get_osinfo, which return specific pieces of information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when general agent metadata is needed, but it does not explicitly state when to use this tool versus alternatives, nor does it provide any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vm_agent_set_user_passwordSet guest user passwordADestructive
Set a user password inside the guest via QEMU agent. HIGH RISK — ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| confirm | No | Set to true once the user has approved this action | |
| password | Yes | New password (redacted in logs) | |
| username | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds 'HIGH RISK' and the requirement for user confirmation, providing additional behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, with one sentence and a standalone warning. It is efficient but could be slightly expanded for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the destructive nature and no output schema, the description could mention prerequisites (e.g., QEMU agent running) or confirmation parameter. It is adequate but incomplete for full agent guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40% (confirm and password have descriptions). The description does not provide any parameter-specific details for node, vmid, or username, failing to compensate for the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Set a user password inside the guest via QEMU agent.' It uses a specific verb and resource, and distinguishes from sibling vm_agent_* tools that perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a clear risk warning: 'HIGH RISK — ask the user to confirm before invoking.' This guides when to use (only after user approval). It does not explicitly mention alternatives or when not to use, but the context is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vm_featureToggle VM featureCIdempotent
Enable or disable a Proxmox VM feature (snapshot, clone, clone_from_template, migration).
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| force | No | ||
| enable | No | Enable (true) or disable (false) | |
| feature | Yes | Feature name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotent, non-destructive, and write operation. Description adds the list of features but does not disclose effects, preconditions, or side effects beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise but missing the 'suspend' feature from the list, reducing accuracy. Would benefit from explicit mention of all features.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, and the description is too brief. For a tool with 5 parameters and no return type documentation, more context is needed for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 40%, and the overall description adds little meaning beyond the schema's parameter descriptions. No documentation for node, vmid, or force parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Enable or disable' and resource 'Proxmox VM feature' with a list of features. However, it misses the 'suspend' feature present in the schema enum, making it slightly incomplete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like clone_vm, create_snapshot, etc. Lacks context for alternative tools or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vm_firewall_optionsGet VM firewall optionsBRead-onlyIdempotent
Return VM-level firewall options (enable, dhcp, macfilter, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds example options (enable, dhcp, macfilter) but no additional behavioral context like response format or authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that front-loads the purpose. However, it could be slightly expanded to include parameter hints without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with two common parameters, the description covers the basic purpose but lacks parameter semantics and usage guidance. It is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the meaning of the two required parameters (node, vmid). The agent receives no semantic help beyond the schema types and pattern.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns VM-level firewall options, listing examples (enable, dhcp, macfilter). This distinguishes it from siblings like vm_firewall_rules (rules) and container_firewall_options (container version).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as get_vm_config or vm_firewall_rules. The description does not provide conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vm_firewall_rulesGet VM firewall rulesBRead-onlyIdempotent
Return the firewall rules for a VM's network interface.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds that it returns rules, which is consistent but does not provide further behavioral details beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that efficiently communicates the tool's purpose. No wasted words and appropriately front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with two parameters, the description covers the basic purpose and behavior, but lacks parameter semantics and any output structure details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation of the 'node' or 'vmid' parameters, leaving their meaning entirely to the schema's internal properties.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return' and the resource 'firewall rules' for a 'VM's network interface', distinguishing it from sibling tools like 'container_firewall_rules' and 'vm_firewall_options'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No mention of prerequisites or context of invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vm_monitorQEMU monitor commandB
Run an arbitrary QEMU monitor command. Examples: 'info status', 'dump-guest-memory', 'screendump /tmp/screen.ppm'. MEDIUM RISK.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| command | Yes | QEMU monitor command |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds a 'MEDIUM RISK' warning, which provides some behavioral insight beyond annotations. However, it does not detail potential side effects, data integrity risks, or required permissions. Annotations already indicate non-readonly and open-world, so the risk label adds moderate value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the purpose, followed by examples and a risk note. Every sentence serves a purpose with no redundancy. It could be slightly more structured but is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of an arbitrary command execution tool with no output schema, the description is minimal. It covers purpose and risk but lacks information on return values, error handling, or authorization requirements. Adequate but not complete for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only the 'command' parameter is described in the schema. The description gives examples but does not explain 'node' or 'vmid', which remain undocumented. With only 33% schema coverage, the description should add meaning for the missing parameters but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Run an arbitrary QEMU monitor command' with specific verb and resource. It provides examples that illustrate typical commands. However, it does not explicitly differentiate from similar sibling tools like vm_agent_exec or vm_sendkey, which are more focused.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The examples imply it's for arbitrary QEMU monitor commands, but no exclusion of cases where other VM command tools are more appropriate, nor any mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vm_mtunnelOpen VM migration tunnelA
Open a tunnel for VM migration. Returns port/ticket info for the migration proxy.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| port | No | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context by stating it 'opens a tunnel' (side effect) and returns data, supplementing the openWorldHint annotation. However, it does not disclose behavioral traits like permissions needed, tunnel lifetime, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with clear front-loading of the action. Every word is useful and no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three parameters, no output schema, and an openWorldHint annotation, the description is too brief. It omits details about the return format, optional port behavior, and its role as a prerequisite for migration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description should compensate but does not. Parameters (node, port, vmid) are only listed in the schema with basic types; no additional meaning, defaults, or constraints beyond the schema are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Open a tunnel'), the resource ('for VM migration'), and the expected output ('Returns port/ticket info'). This distinguishes it from sibling tools like 'migrate_vm' which likely perform the actual migration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage before VM migration but provides no explicit guidance on when to use this tool versus alternatives (e.g., migrate_vm). No exclusions or context for when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vm_mtunnelwebsocketUpgrade migration tunnel to WebSocketC
Upgrade an existing migration tunnel to a WebSocket.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| port | No | ||
| vmid | Yes | ||
| ticket | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is not read-only (readOnlyHint=false) and not idempotent. The description adds 'upgrade' implying a mutation, but does not explain side effects, failure conditions (e.g., if no existing tunnel), or success criteria. Annotations reduce the burden but the description adds minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but omits essential information like parameter details and usage context. It is not optimally structured for an agent to use effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 4 parameters (2 required) and no output schema, but the description provides no context on preconditions, return values, or the nature of the upgrade. Given the complexity of migration tunnels, the description is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameter descriptions in the schema (0% coverage) and the description does not explain the parameters (node, port, vmid, ticket). The agent cannot infer their purpose or usage from the description alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('upgrade'), the resource ('existing migration tunnel'), and the target ('to a WebSocket'). This is specific and distinguishes it from sibling tools like 'vm_mtunnel' which likely handles other tunnel operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., an existing tunnel), when not to use it, or compare to sibling tools like 'vm_mtunnel'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vm_sendkeySend key to QEMU VMA
Send a key combination to a QEMU VM (useful for unlocking screens, sending Ctrl+Alt+Del, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Key name, e.g. 'ctrl-alt-delete', 'ret', 'a' | |
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is not read-only, not idempotent, and not destructive. The description adds no behavioral details beyond the usage hint, missing opportunities to explain transient effects or side effects like sending keys to a VM console.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with parenthetical examples. It is front-loaded and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool, the description covers the core purpose adequately. However, it lacks details on return values, error conditions, or whether the action is synchronous. Given no output schema and limited parameter documentation, completeness is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 33% schema coverage, the description provides examples for the 'key' parameter ('ctrl-alt-delete', 'ret', 'a'), adding meaning. However, it does not explain 'node' or 'vmid' at all, leaving gaps for those required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('send'), resource ('key combination to a QEMU VM'), and provides concrete examples ('unlocking screens, sending Ctrl+Alt+Del'). This distinguishes it from sibling tools like vm_monitor or vm_agent_exec.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit use cases ('unlocking screens, sending Ctrl+Alt+Del'), but does not mention when not to use it or provide alternatives. The context is clear, but exclusion criteria are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vm_spiceproxyGet VM SPICE proxy ticketB
Generate a SPICE ticket for high-fidelity VM console access.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, but description adds no further behavioral context. It does not disclose side effects like ticket expiration, invalidation of previous tickets, or requirement for VM to be running.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (9 words) and front-loaded with key information. However, it sacrifices content that could improve understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and zero schema coverage, the description is incomplete. It lacks details about return value, prerequisites (existing VM), and how to use the ticket. Sibling differentiation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description should clarify parameter meanings. It does not mention 'node' or 'vmid' at all. While names are somewhat self-explanatory, agents may benefit from guidance on how to obtain these values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Generate a SPICE ticket') and the resource ('for high-fidelity VM console access'). It distinguishes from siblings by specifying VM (not container) and SPICE (not VNC or terminal).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use ('high-fidelity VM console access') but does not explicitly exclude alternatives like vm_vncproxy or container_spiceproxy, nor provide guidance on prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vm_termproxyGet VM terminal proxy ticketC
Generate a serial terminal (termproxy) ticket for the VM.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false (not read-only) and destructiveHint=false (not destructive), but the description adds no additional context about side effects, permissions required, or the lifecycle of the generated ticket. For a ticket-generation tool, information about expiry or revocation would be helpful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loading the key action. However, it is arguably too brief, lacking important details about parameters and usage that could be added without bloating the text. Balance between conciseness and completeness is moderate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should at least mention what the ticket is used for or what format it returns. It also does not cover prerequisites like VM being powered on or agent requirements. For a tool in a complex context (many siblings, no param docs), it is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning neither the schema nor the description provides any meaning for the two parameters 'node' and 'vmid'. While these are common in Proxmox, a new agent would benefit from explanations like 'Proxmox node name' and 'numeric VM ID'. The description omits any parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Generate' and the resource 'serial terminal (termproxy) ticket for the VM', making the action and target unambiguous. However, it does not differentiate from sibling tools like vm_vncproxy or container_termproxy, which also generate tickets for different types of console access.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. Given numerous sibling tools with similar purposes (e.g., vm_spiceproxy, vm_vncproxy, container_termproxy), the description should indicate preferred use cases, such as serial terminal vs graphical console, but it does not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vm_vncproxyGet VM VNC proxy ticketB
Generate a VNC ticket and port to open a remote console to the VM. Returns a one-time ticket for noVNC clients.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | ||
| vmid | Yes | ||
| websocket | No | Generate a WebSocket ticket (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false and destructiveHint=false, but the description adds context: it generates a one-time ticket for noVNC clients. However, it does not disclose expiration, permissions required, or side effects of multiple calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundant information. The first sentence states the core action and result; the second adds a key detail about one-time usage. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the tool returns a ticket and port, but no output schema exists, so more detail on return structure would be beneficial. It covers the basic concept but leaves some ambiguity for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only websocket has a description). The tool description does not describe any parameters, failing to compensate for the missing schema descriptions on node and vmid.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'generate' and the resource 'VNC ticket and port' to open a remote console. It distinguishes from sibling tools by mentioning 'one-time ticket for noVNC clients', but does not explicitly differentiate from other proxy tools like vm_spiceproxy or vm_termproxy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as container_vncproxy or vm_spiceproxy. The description lacks explicit 'when to use' or 'when not to use' information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wipe_node_diskWipe diskADestructive
Wipe a disk by writing zeros to all blocks. DESTRUCTIVE — irrecoverable. Ask the user to confirm before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| disk | Yes | Disk path (e.g. /dev/sdb) | |
| node | Yes | ||
| confirm | No | Set to true once the user has approved this destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description highlights the destructive and irrecoverable nature, which adds context beyond the destructiveHint annotation. It warns about the need for user confirmation, which is not in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (3 sentences) and front-loads the core action and warning. Every sentence serves a purpose with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no output schema, the description covers the essential behavior: what it does, that it's destructive, and the need for confirmation. It does not cover error conditions, but that is acceptable given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 3 parameters with 67% description coverage (disk and confirm described, node not). The description does not add parameter details beyond the schema. The implication of the confirm parameter is clear, but no additional semantic help is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Wipe a disk by writing zeros to all blocks,' which clearly identifies the action, resource, and method. It distinguishes this tool from the many sibling tools that are read-only or non-destructive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'DESTRUCTIVE — irrecoverable. Ask the user to confirm before invoking,' providing clear guidance on when to use (only with user confirmation). It does not mention specific alternatives, but the context makes it obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes, but there are some close pairs like get_container_rrd vs get_container_rrddata and get_vm_rrd vs get_vm_rrddata that could cause confusion. The aliasing of list_storages to get_storage adds minor ambiguity. Overall, the descriptions help disambiguate most tools.
All tool names follow a consistent snake_case verb_noun or noun_verb pattern. The naming is predictable and organized by resource type (e.g., get_vm_*, create_container_*, update_storage_*). There are no deviations from the pattern.
With 195 tools, the server is excessively large. While Proxmox is a complex system, the tool count far exceeds the typical well-scoped range (3-15). It would be overwhelming for agents and would benefit from splitting into smaller, focused servers.
The tool set covers virtually all aspects of Proxmox management: VMs, containers, storage, SDN, HA, backups, snapshots, replication, node management, firewall, and QEMU guest agent. There are no obvious gaps in lifecycle coverage for the domain addressed.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
Manage Rackspace Spot Kubernetes Cloudspaces, node pools, and VMs from your AI assistant.
Connect any AI assistant to Syncro: manage tickets, invoices, customers, assets, and more.
Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.
Related MCP Servers
- AlicenseBqualityAmaintenanceEnables AI assistants and MCP clients to manage Proxmox VE infrastructure, including virtual machines, containers, storage, networking, and high availability through a standardized interface.100169Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Proxmox VE infrastructure, including VMs, containers, storage, and cluster operations via natural language.MIT
- AlicenseCqualityDmaintenanceEnables management of Proxmox VE environments, including VMs, containers, storage, and cluster operations through natural language.76100MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to monitor and manage Proxmox VE infrastructure, including nodes, VMs, containers, storage, backups, and networking, via natural language.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ngocdd/proxmox-mcps'
If you have feedback or need assistance with the MCP directory API, please join our Discord server