Skip to main content
Glama
Bldg-7

Proxmox MCP Server

by Bldg-7

Proxmox MCP Server

Model Context Protocol (MCP) server for Proxmox Virtual Environment

English | 한국어

License: MIT TypeScript Node.js

A comprehensive MCP server providing 92 tools for managing Proxmox Virtual Environment, including QEMU VMs and LXC containers.

Credits & Background

This project is a TypeScript rewrite of mcp-proxmox-server, which itself was a Node.js port of the original Python implementation by canvrno/ProxmoxMCP.

What Changed

Architecture:

  • 3,147-line single-file monolith → modular TypeScript across 110+ source files

  • No type safety → strict TypeScript with noUncheckedIndexedAccess

  • Hand-written JSON Schema → Zod schemas with automatic JSON Schema generation

  • Giant switch statement (55 cases) → tool registry with handler/schema pairs

Quality:

  • 0 tests → 1,134 tests

  • No input validation → Zod runtime validation on every tool call

  • Implicit error handling → structured MCP error responses with context

  • No permission checks → two-tier permission model (basic / elevated)

Developer Experience:

  • npx @bldg-7/proxmox-mcp just works

  • All 92 tool descriptions exposed via MCP ListTools

  • Rate limiter middleware included

  • Pino structured logging instead of console.log

Related MCP server: proxmox-mcp

Features

  • 92 comprehensive tools for Proxmox management

  • Full TypeScript implementation with strict type safety

  • Support for both QEMU VMs and LXC containers

  • Secure authentication (API token)

  • Flexible SSL modes (strict, verify, insecure)

  • Permission-based access control (basic vs elevated operations)

  • Comprehensive error handling with structured responses

  • Built on MCP SDK 1.25.3

Installation

npm install @bldg-7/proxmox-mcp
# or
pnpm add @bldg-7/proxmox-mcp
# or
yarn add @bldg-7/proxmox-mcp

Configuration

Environment Variables

Set the following environment variables before starting the server:

Variable

Required

Description

Default

PROXMOX_HOST

Yes

Proxmox server hostname or IP address

-

PROXMOX_USER

No

Username with realm (e.g., root@pam)

root@pam

PROXMOX_TOKEN_NAME

Yes

API token name

-

PROXMOX_TOKEN_VALUE

Yes

API token value

-

PROXMOX_SSL_MODE

No

SSL verification mode

strict

PROXMOX_SSL_CA_CERT

No

Path to a CA certificate (PEM) trusted in verify mode

-

PROXMOX_ALLOW_ELEVATED

No

Allow elevated operations

false

PROXMOX_PORT

No

Proxmox API port

8006

PROXMOX_ALLOW_UNSAFE_COMMANDS

No

Allow shell special characters in exec commands

false

PROXMOX_SSH_ENABLED

No

Enable SSH-based LXC exec

false

PROXMOX_SSH_HOST

No

SSH host (falls back to PROXMOX_HOST)

-

PROXMOX_SSH_PORT

No

SSH port

22

PROXMOX_SSH_USER

No

SSH username

root

PROXMOX_SSH_KEY_PATH

When SSH enabled

Path to SSH private key

-

PROXMOX_SSH_NODE

When SSH enabled

Proxmox node name reachable via SSH

-

PROXMOX_SSH_HOST_KEY_FINGERPRINT

No

Host key fingerprint for verification

-

PROXMOX_LOG_LEVEL

No

Log verbosity (trace, debug, info, warn, error, fatal)

info

SSL Modes

  • strict: Full SSL certificate verification against the system CA store (recommended for production)

  • verify: Same as strict, but additionally trusts the CA certificate given via PROXMOX_SSL_CA_CERT. For self-signed certificates, point PROXMOX_SSL_CA_CERT at the server certificate (or your internal CA) in PEM format. Without PROXMOX_SSL_CA_CERT, this mode behaves exactly like strict.

  • insecure: No SSL verification (development only, not recommended)

Do not use NODE_TLS_REJECT_UNAUTHORIZED=0 to work around certificate errors — it disables TLS verification for the entire process, and the server logs a warning when it is set. Use PROXMOX_SSL_MODE and PROXMOX_SSL_CA_CERT instead.

Permission Model

The server implements a two-tier permission model:

  • Basic operations: Read-only operations (list, get, status) - always allowed

  • Elevated operations: Create, modify, delete operations - require PROXMOX_ALLOW_ELEVATED=true

This prevents accidental destructive operations and provides an additional safety layer.

Usage

Starting the Server

# With environment variables
export PROXMOX_HOST=pve.example.com
export PROXMOX_TOKEN_NAME=mytoken
export PROXMOX_TOKEN_VALUE=abc123-def456-ghi789
export PROXMOX_SSL_MODE=verify
export PROXMOX_SSL_CA_CERT=/path/to/proxmox-ca.pem  # needed with verify for self-signed certs
export PROXMOX_ALLOW_ELEVATED=true

npx @bldg-7/proxmox-mcp

Using with Claude Desktop

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "proxmox": {
      "command": "npx",
      "args": ["-y", "@bldg-7/proxmox-mcp"],
      "env": {
        "PROXMOX_HOST": "pve.example.com",
        "PROXMOX_TOKEN_NAME": "mytoken",
        "PROXMOX_TOKEN_VALUE": "abc123-def456-ghi789",
        "PROXMOX_SSL_MODE": "verify",
        "PROXMOX_SSL_CA_CERT": "/path/to/proxmox-ca.pem",
        "PROXMOX_ALLOW_ELEVATED": "true"
      }
    }
  }
}

Available Tools

This server provides 92 comprehensive tools for Proxmox management:

Category

Tools

Permission

Node Management

14

Mixed

Guest (VM/LXC)

23

Mixed

Guest Creation

2

Elevated 🔒

QEMU Agent

7

Elevated 🔒

Cluster Operations

5

Mixed

Cluster Firewall

6

Mixed

High Availability

2

Mixed

Storage

3

Mixed

SDN Networking

4

Mixed

Access Control

7

Mixed

Ceph

6

Mixed

Console Access

3

Elevated 🔒

Backup

1

Mixed

VM Disks

1

Elevated 🔒

LXC Mount Points

1

Elevated 🔒

LXC Exec

1

Elevated 🔒

Cloud-Init

1

Mixed

Certificates

1

Mixed

ACME

3

Mixed

Notifications

1

Mixed

Total

92

📖 Full Tools Reference →

Agent Skills

This package includes Agent Skills - AI-optimized documentation that teaches agents how to use Proxmox MCP tools and operational best practices. Skills follow the agentskills.io open standard and work across multiple AI agent platforms.

Available Skills

Skill

Description

Tools/Topics

proxmox-mcp-tools

Complete MCP tool reference for Proxmox VE

92 tools across 14 domains (VMs, LXC, cluster, storage, networking, Ceph, certificates, ACME, notifications)

proxmox-admin

Operational expertise for Proxmox infrastructure

VM lifecycle, storage management, HA configuration, troubleshooting

Installation

For Agent Skills Standard (Claude Code, OpenCode, Cursor, Codex, Gemini CLI, VS Code):

npx skills add Bldg-7/proxmox-mcp

For Claude Code Plugin:

/plugin marketplace add Bldg-7/proxmox-mcp

Supported Agents

  • Claude Code - Anthropic's official CLI

  • OpenCode - Open-source Claude Code alternative

  • Cursor - AI-powered code editor

  • Codex - GitHub Copilot CLI

  • Gemini CLI - Google's AI assistant

  • VS Code - With agent skills extensions

Skills provide progressive disclosure: metadata (~100 tokens) → instructions (<5000 tokens) → detailed references (on demand).

How Skills Work

Once installed, skills are automatically loaded into the agent's context. The agent learns Proxmox tool usage, workflows, and best practices — so you can give natural language instructions and the agent translates them into the right MCP tool calls.

Example — Creating a VM (agent uses proxmox-mcp-tools skill):

You: "Create an Ubuntu VM with 4 cores, 8GB RAM, and 50GB disk on pve1"

Agent knows the workflow from the skill:
  1. proxmox_get_next_vmid        → gets available VM ID (e.g., 105)
  2. proxmox_create_vm            → creates VM 105 with 4 cores, 8GB RAM
  3. proxmox_vm_disk              → attaches 50GB virtio disk (action: 'add')
  4. proxmox_guest_network        → adds network interface on vmbr0 (action: 'add', type: 'vm')
  5. proxmox_guest_start          → powers on the VM (type: 'vm')

Example — Setting up HA (agent uses proxmox-admin skill):

You: "Make VM 100 highly available"

Agent knows the operational playbook:
  1. proxmox_ha_group             → checks existing HA groups (action: 'list')
  2. proxmox_ha_resource          → adds VM 100 to HA with priority (action: 'create')
  3. proxmox_ha_resource          → verifies HA is active (action: 'status')

Example — Troubleshooting (agent uses both skills together):

You: "VM 100 won't start, help me figure out why"

Agent combines tool knowledge + operational expertise:
  1. proxmox_guest_status         → checks current state (type: 'vm')
  2. proxmox_guest_config         → reviews configuration (action: 'get', type: 'vm')
  3. proxmox_node                 → checks node resource availability (action: 'status')
  4. proxmox_node_task            → finds recent failed tasks (action: 'list')
  → Diagnoses: "Node pve1 has insufficient memory. VM requires 8GB but only 2GB free."
  → Suggests: resize VM memory, migrate to another node, or free resources

Skill Contents

proxmox-mcp-tools — Tool Reference:

  • 92 tools organized into 14 domains (VMs, LXC, cluster, storage, networking, Ceph, access control, pools, certificates, ACME, notifications)

  • Parameters, types, and descriptions for every tool

  • Permission levels (basic vs elevated 🔒)

  • Common workflow patterns (create VM, backup/restore, clone, migrate)

proxmox-admin — Operational Expertise:

  • VM & LXC lifecycle playbooks (create → configure → monitor → backup → decommission)

  • Storage management strategies (Ceph, NFS, LVM, ZFS)

  • HA configuration and failover procedures

  • Troubleshooting guides for common API quirks

  • Security best practices (permission model, token management)

  • Performance monitoring and optimization

SubAgents

This package includes SubAgents - specialized AI agents for executing domain-specific Proxmox operations. While Skills provide knowledge ("here are the tools and how to use them"), SubAgents provide action ("I'll do this for you"). SubAgents automatically load the relevant skills and execute operations using MCP tools.

Available SubAgents

SubAgent

Domain

Description

vm-manager

QEMU VMs

VM lifecycle management (create, configure, start/stop, snapshots, backups, cloning, templates)

lxc-manager

LXC Containers

Container lifecycle management (create, configure, mount points, snapshots, backups, cloning)

cluster-admin

Cluster Operations

High availability, VM/LXC migration, replication jobs, cluster firewall, cluster backup jobs

storage-admin

Storage Infrastructure

Storage backends (NFS, iSCSI, Ceph), ISO/template management, backup pruning, disk operations

network-admin

Network Infrastructure

SDN (VNets, zones, controllers, subnets), node network interfaces, DNS configuration

access-admin

Access Control

Users, groups, roles, ACLs, authentication domains (PAM, LDAP, AD)

monitor

Monitoring

Read-only health checks, status monitoring, log analysis, task tracking (delegates actions to other agents)

How SubAgents Work

SubAgents use auto-delegation in Claude Code and compatible platforms:

  1. User makes request: "Create a new Ubuntu VM with 4 cores and 8GB RAM"

  2. Claude analyzes request: Matches request to vm-manager agent based on example blocks

  3. Auto-delegates: Invokes vm-manager agent with full context

  4. Agent executes: vm-manager loads skills, calls MCP tools, completes operation

  5. Returns result: Structured response with operation details

Prerequisites

  • MCP Server: The Proxmox MCP server must be connected and configured

  • Skills: SubAgents automatically load proxmox-mcp-tools and proxmox-admin skills

  • Permissions: Elevated operations require PROXMOX_ALLOW_ELEVATED=true in MCP server config

Installation

SubAgents are included when you install the plugin:

For Claude Code Plugin:

/plugin marketplace add Bldg-7/proxmox-mcp

For Agent Skills Standard (if supported):

npx skills add Bldg-7/proxmox-mcp

Usage Examples

Create a VM (auto-delegates to vm-manager):

User: "Create a new Ubuntu VM with 4 cores, 8GB RAM, and a 50GB disk on node pve1"
→ vm-manager executes: get next VMID → create VM → add disk → add network → start

Enable HA (auto-delegates to cluster-admin):

User: "Enable high availability for VM 100 with priority 100"
→ cluster-admin executes: check HA config → add HA resource → verify

Monitor cluster (auto-delegates to monitor):

User: "Show me the current cluster status and any issues"
→ monitor executes: get cluster status → get HA status → get nodes → report

Agent Domain Boundaries

Each SubAgent has clear responsibilities to avoid overlap:

  • vm-manager: Only QEMU VMs (not LXC). Delegates cluster ops to cluster-admin.

  • lxc-manager: Only LXC containers (not VMs). Delegates cluster ops to cluster-admin.

  • cluster-admin: Cluster-wide operations (HA, firewall aliases/ipsets, cluster config, notifications). Delegates per-VM/LXC ops to respective managers.

  • storage-admin: Storage infrastructure, certificate management, ACME configuration, advanced disk operations. Delegates VM disk operations to vm-manager.

  • network-admin: Network infrastructure only. Delegates per-VM/LXC NICs to respective managers.

  • access-admin: Access control including API token management. No delegation to other agents.

  • monitor: Read-only monitoring including node metrics/RRD data. Delegates ALL actions to appropriate agents.

Error Handling

All tools return structured responses following the MCP protocol:

Success Response

{
  "content": [
    {
      "type": "text",
      "text": "✅ Operation completed successfully\n\n• Details here..."
    }
  ],
  "isError": false
}

Error Response

{
  "content": [
    {
      "type": "text",
      "text": "❌ Error: Operation failed\n\nReason: Detailed error message"
    }
  ],
  "isError": true
}

Permission Denied

{
  "content": [
    {
      "type": "text",
      "text": "🚫 Permission Denied: Operation requires elevated permissions\n\nSet PROXMOX_ALLOW_ELEVATED=true to enable this operation."
    }
  ],
  "isError": true
}

Troubleshooting

Connection Issues

Problem: ECONNREFUSED or connection timeout

Solutions:

  • Verify PROXMOX_HOST is correct and reachable

  • Check PROXMOX_PORT (default: 8006)

  • Ensure firewall allows connections to Proxmox API port

  • Try PROXMOX_SSL_MODE=insecure for testing (not recommended for production)

Authentication Errors

Problem: 401 Unauthorized or authentication failed

Solutions:

  • Verify PROXMOX_USER includes realm if set (e.g., root@pam, not just root)

  • Verify PROXMOX_TOKEN_NAME and PROXMOX_TOKEN_VALUE are valid

  • Ensure API token has sufficient permissions in Proxmox

SSL Certificate Errors

Problem: UNABLE_TO_VERIFY_LEAF_SIGNATURE or SSL errors

Solutions:

  • For self-signed certificates, set PROXMOX_SSL_MODE=verify and PROXMOX_SSL_CA_CERT=/path/to/cert.pem (the server certificate or your internal CA) — verify without PROXMOX_SSL_CA_CERT behaves like strict and still fails

  • Use PROXMOX_SSL_MODE=insecure for development (not recommended for production)

  • Install proper SSL certificates on Proxmox server for production use

  • Do not set NODE_TLS_REJECT_UNAUTHORIZED=0; it disables TLS verification process-wide

Permission Denied Errors

Problem: 🚫 Permission Denied for operations

Solutions:

  • Set PROXMOX_ALLOW_ELEVATED=true to enable elevated operations

  • Review which operations require elevated permissions (marked with 🔒)

  • Ensure this is intentional - elevated operations can modify/delete resources

Development

Building from Source

git clone https://github.com/Bldg-7/proxmox-mcp.git
cd proxmox-mcp
pnpm install
pnpm build

Running Tests

pnpm test              # Run tests once
pnpm test:watch        # Run tests in watch mode
pnpm test:coverage     # Run tests with coverage report

Type Checking

pnpm typecheck         # Type check without emitting files

Linting

pnpm lint              # Run ESLint

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

License

MIT License - see LICENSE file for details.

Acknowledgments


Legend: 🔒 = Requires elevated permissions (PROXMOX_ALLOW_ELEVATED=true)

Available Tools

92 tools
proxmox_aclAccess Control ListsC
DestructiveIdempotent

Manage ACL entries (get, update)

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoFilter by path (e.g., /vms)
rolesNoComma-separated roles
usersNoComma-separated user IDs
actionYes
deleteNoDelete ACL entry
digestNoConfig digest
groupsNoComma-separated group IDs
roleidNoFilter by role ID
useridNoFilter by user ID
groupidNoFilter by group ID
propagateNoPropagate to sub-paths

TDQS

C2.6/5.0
Behavior2/5

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

Annotations indicate destructiveHint=true and idempotentHint=true, but the description doesn't explain what 'update' does beyond the name. It doesn't disclose that update may delete entries (via the 'delete' parameter), that changes may propagate to sub-paths, or that a digest may be required for concurrency control. The description adds minimal 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.

Conciseness4/5

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

The description is a single short sentence that is front-loaded with the verb and resource. It is concise and easy to parse, though it could add a bit more context without becoming verbose.

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

Completeness2/5

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

With 11 parameters, no output schema, and destructive annotations, the description is too thin. It doesn't explain the difference between get and update semantics, how filters work, or what happens on update (e.g., delete flag, propagate). An agent would need to inspect the schema and guess at behavior.

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

Parameters3/5

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

Schema description coverage is 91%, so the schema already documents most parameters. The description adds no extra meaning beyond the action enum. Baseline 3 is appropriate because the schema carries the burden, but the description doesn't clarify how parameters combine (e.g., filters vs. update fields).

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

Purpose3/5

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

The description 'Manage ACL entries (get, update)' states a clear verb and resource, and names the two actions. However, it doesn't distinguish this from other ACL-related sibling tools like proxmox_cluster_firewall or proxmox_role, and the title 'Access Control Lists' is generic. It is clear enough but lacks differentiation.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives. It doesn't mention that 'get' retrieves ACLs and 'update' modifies them, nor does it explain when to use path/roleid/userid filters. No exclusions or alternative tool references are provided.

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

proxmox_acme_accountACME AccountsA
DestructiveIdempotent

Manage ACME accounts. action=list|get: query accounts | action=create|update|delete: manage accounts (requires elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoACME account name
actionYesList all ACME accounts
contactNoContact email address
tos_urlNoURL of CA TermsOfService
directoryNoURL of ACME CA directory endpoint

TDQS

A4/5.0
Behavior4/5

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

Beyond the annotations, the description adds the important auth requirement that create/update/delete operations need elevated access. The destructive and read-only hints are already carried by annotations, so the description's added elevation note is useful supplemental 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.

Conciseness5/5

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

The description is a single compact sentence with no filler. The action routing is front-loaded, and the elevated note is attached directly to the write actions.

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

Completeness3/5

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

The description plus schema is adequate for basic invocation, especially listing accounts. However, it does not clarify which parameters are required or meaningful for each action, such as needing name for get/update/delete or contact for create, and there is no output schema to compensate.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value by mapping the action enum values to query vs. management behavior and by correcting the schema's action description, which says 'List all ACME accounts' even though the enum also includes create/update/delete.

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

Purpose4/5

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

The description names a specific resource, 'ACME accounts', and distinguishes query actions (list/get) from management actions (create/update/delete). It is clear enough to be separated from related ACME tools by resource and action type, though it does not explicitly name sibling alternatives.

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

Usage Guidelines4/5

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

The description gives explicit internal usage guidance: use list/get for queries and create/update/delete for management, with writes requiring elevated privileges. It does not explain when to prefer sibling tools like proxmox_acme_info or proxmox_acme_cert, so it stops short of full alternative routing.

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

proxmox_acme_certACME CertificatesA
Destructive

Manage ACME certificates. action=order|renew|revoke: certificate ops (requires elevated) | action=config: get ACME config

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name
forceNoForce renewal even if certificate is still valid
actionYesOrder new ACME certificate

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=false, so the risk profile is covered structurally. The description adds useful extra context by stating that certificate operations 'requires elevated' permissions and that config is a retrieval action. It does not detail side effects of revoke or force renew, but the annotations plus clear action names carry most of that burden.

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

Conciseness5/5

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

The description is a single compact sentence with the core verb/resource front-loaded and the action categories laid out immediately. No filler or redundant restatement of the schema.

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

Completeness4/5

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

For a 3-parameter, multi-action tool with no output schema, the description covers action selection and the important elevation requirement. It does not explain return shapes or prerequisites such as an existing ACME account, but the full schema coverage and annotations provide enough for an agent to invoke the tool correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds genuine value by clarifying the action enum, and it corrects the misleading schema description 'Order new ACME certificate', which would otherwise under-represent renew/revoke/config. The node and force parameters are already well described in the schema.

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

Purpose4/5

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

The description names the resource ('ACME certificates') and breaks the tool into concrete actions: order, renew, revoke, and config. The action list makes the tool's scope fairly clear, but it does not explicitly contrast itself with sibling tools like proxmox_acme_info or proxmox_acme_account, so it stops short of full sibling differentiation.

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

Usage Guidelines3/5

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

It gives some usage context by separating 'certificate ops (requires elevated)' from 'action=config: get ACME config', and it flags an authorization prerequisite. However, it does not say when to prefer a sibling tool or when not to use this tool; the guidance is implied mostly by the action names.

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

proxmox_acme_infoACME InformationB
Read-only

Query ACME information. action=list_plugins|get_plugin|directories

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoACME plugin ID
actionYesList ACME plugins

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the agent knows this is a safe read operation. The description adds the action enum values, which clarify the scope of queries, but it does not disclose return format, pagination, or any other behavioral traits. With annotations covering the safety profile, a 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.

Conciseness4/5

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

The description is a single sentence that front-loads the verb and resource, then lists the action options. It is efficient and has no wasted words. It could be slightly more structured by separating the action list, but it is appropriately sized.

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

Completeness3/5

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

For a read-only info tool with 100% schema coverage and no output schema, the description is mostly adequate. However, it does not explain when 'id' is required (e.g., for get_plugin) or what 'directories' returns, which could leave an agent uncertain about how to invoke the tool correctly for each action.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters. The description adds the action enum values but does not explain the relationship between 'id' and 'action' (e.g., that id is needed for get_plugin). Baseline 3 is correct when the schema does the heavy lifting.

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

Purpose4/5

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

The description states a clear verb and resource: 'Query ACME information.' It also enumerates the three actions (list_plugins, get_plugin, directories), which distinguishes it from sibling tools like proxmox_acme_cert and proxmox_acme_account. However, it does not explicitly differentiate itself from those siblings by name, so it loses one point.

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

Usage Guidelines3/5

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

The description implies usage by listing the action enum values, which tells an agent what operations are available. It does not explicitly state when to use this tool versus proxmox_acme_cert or proxmox_acme_account, nor does it provide exclusions or alternative routing. The context is clear for the action parameter but not for tool selection among ACME-related siblings.

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

proxmox_agent_execGuest Agent Command ExecutionB
Destructive

Execute commands via QEMU agent. operation=exec: run command | operation=status: check execution status (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
pidNoProcess ID returned by agent exec
argsNoCommand arguments
nodeYesNode name where VM is located
vmidYesVM ID number
commandNoCommand to execute
timeoutNoTimeout in seconds
operationYes
input-dataNoInput data for stdin
capture-outputNoCapture stdout/stderr

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already establish destructive, non-read-only, non-idempotent behavior, so the description adds only the elevated-permissions caveat for status. That is useful, but it does not disclose the two-step exec/status interaction or guest-side prerequisites.

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

Conciseness5/5

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

The description is a compact, front-loaded clause that states the mechanism and then enumerates the operation modes without redundancy. Every clause contributes operational information.

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

Completeness2/5

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

Even with the schema, the description omits the central workflow: exec returns a pid that status then consumes, and it does not say what either operation returns given there is no output schema. Prerequisites such as the QEMU agent being installed/running in the guest are also absent, making correct invocation harder for an agent.

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

Parameters4/5

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

Schema coverage is 89%, but the operation parameter carries no schema description; the tool description supplies meaning for its enum values ('exec: run command', 'status: check execution status') and adds the permission requirement. This goes beyond the bare enum names.

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

Purpose4/5

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

The description clearly identifies the action ('Execute commands via QEMU agent') and breaks out the two operations (exec, status) with distinct behaviors. It distinguishes the tool from LXC execution by specifying QEMU agent, though it does not explicitly name any sibling alternative.

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

Usage Guidelines2/5

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

The description does not explain when to choose this tool over alternatives such as proxmox_lxc_exec or proxmox_agent_file. It gives no workflow guidance (e.g., use exec first, then status with the returned pid), only notes that status requires elevated permissions.

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

proxmox_agent_fileGuest Agent File AccessA
Destructive

Read/write files via QEMU agent. operation=read|write (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesPath to file in guest filesystem
nodeYesNode name where VM is located
vmidYesVM ID number
encodeNoBase64 encode content (default: true)
contentNoContent to write to file
operationYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already mark readOnlyHint=false and destructiveHint=true, and the description adds 'requires elevated permissions' and specifies the QEMU agent mechanism. This is useful but doesn't elaborate on side effects or failure modes; 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.

Conciseness5/5

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

The description is a single sentence with no fluff, front-loading the core action and resource, then adding the operation and permission constraint. Efficient and scannable.

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

Completeness3/5

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

For a 6-param mutation tool, the description is thin; it doesn't mention that the guest agent must be running or that the guest must be online. However, the schema covers parameter details and annotations cover safety, so the description is minimally adequate.

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

Parameters3/5

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

Schema coverage is 83%, so the schema documents most parameters. The description adds a brief note on operation=read|write, which is already in the enum, and mentions permissions but doesn't add meaning beyond the schema's property descriptions.

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

Purpose5/5

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

The description clearly states 'Read/write files via QEMU agent' linking a specific action (read/write) to a resource (guest files) and mechanism (QEMU agent). It distinguishes this from sibling exec and other agent tools by focusing on file access. The operation=read|write detail reinforces the purpose.

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

Usage Guidelines3/5

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

The description implies usage for reading or writing files inside a VM through the QEMU agent, and notes elevated permissions as a prerequisite. However, it doesn't explicitly provide when-to-use vs alternatives or exclusions, such as preferring storage/backup tools for non-running guests.

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

proxmox_agent_freezeGuest Agent Filesystem FreezeC
Destructive

Manage filesystem freeze via QEMU agent. operation=status|freeze|thaw|fstrim (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where VM is located
vmidYesVM ID number
operationYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations mark destructiveHint=true, but the description goes no further. It does not explain the consequences of freezing (e.g., guest may become unresponsive until thaw), the need to thaw after a freeze, or the side effects of fstrim. The phrase 'requires elevated permissions' hints at sensitive operations but does not disclose behavioral traits beyond the annotation.

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

Conciseness4/5

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

The description is a single, compact sentence that leads with the purpose and immediately lists the valid operations. It is efficient and easy to parse, though it could benefit from a brief explanation of each operation or a note on when to use it. No unnecessary words.

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

Completeness2/5

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

With no output schema and four distinct operations each having significant side effects, the description is incomplete. It does not explain what the tool returns (e.g., status results), nor does it warn about the need to thaw a frozen filesystem to avoid data corruption. The 'requires elevated permissions' is the only operational caution. For a tool that can disrupt a guest, this lack of context is inadequate.

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

Parameters3/5

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

Schema descriptions cover node and vmid, giving the operation parameter only an enum without explanation. The description repeats the enum values and adds the generic 'requires elevated permissions' note, which applies to the operation. It does not clarify what each operation does (e.g., what 'fstrim' achieves), but the listing does help map the enum. Given 67% schema coverage, the description adds marginal value.

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

Purpose4/5

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

The description clearly states the tool manages filesystem freeze via the QEMU agent and enumerates the four operations (status, freeze, thaw, fstrim). It distinguishes itself from sibling agent tools like exec, power, and info by focusing on freeze operations. However, the verb 'Manage' is somewhat generic, and a more precise phrasing would list the actions directly.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as when freezing before a snapshot or when trimming after deletion. It only notes 'requires elevated permissions,' which is a prerequisite, not a usage context. Sibling tools like proxmox_agent_exec handle other guest operations, but no comparison or selection criteria are mentioned.

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

proxmox_agent_hwGuest Agent Hardware InfoB
Read-only

Query guest hardware via QEMU agent. operation=memory_blocks|vcpus|memory_block_info|hostname|users (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where VM is located
vmidYesVM ID number
operationYes

TDQS

B3.3/5.0
Behavior3/5

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

The readOnlyHint annotation already establishes that this is a safe read operation, and the description adds a permission caveat. It does not disclose behaviors like what happens if the QEMU agent is unavailable or whether results reflect live host state, but the annotation covers the main 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.

Conciseness5/5

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

The description is a single front-loaded sentence that states the action, resource, supported operations, and a permission caveat with no filler or repetition.

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

Completeness3/5

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

The description is adequate for a simple read-only query tool: it names the purpose, operations, and permission requirement. However, it omits the prerequisite that a QEMU agent must be running, and with no output schema it does not hint at the expected return shape.

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

Parameters3/5

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

Node and vmid already have schema descriptions, while the operation parameter has an enum in the schema. The description mostly repeats the operation enum values and adds the 'requires elevated permissions' note, providing only marginal semantic value beyond the schema.

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

Purpose4/5

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

The description uses a specific verb and resource: 'Query guest hardware via QEMU agent,' and enumerates the supported operations. This clearly distinguishes it from most agent siblings like proxmox_agent_exec or proxmox_agent_file, though it does not explicitly contrast it with proxmox_agent_info or proxmox_guest_status.

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

Usage Guidelines2/5

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

The description gives no guidance on when to choose this tool over alternatives, and it does not state exclusions or prerequisites such as the guest agent needing to be installed and running. The only usage hint is 'requires elevated permissions,' which is a precondition rather than a selection rule.

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

proxmox_agent_infoGuest Agent InfoA
Read-only

Query guest info via QEMU agent. operation=ping|osinfo|fsinfo|network_interfaces|time|timezone (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where VM is located
vmidYesVM ID number
operationYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, which aligns with the description's 'query' nature. The description adds value by mentioning 'requires elevated permissions', which is a behavioral constraint not captured in annotations. However, it doesn't disclose what specific permissions are needed or whether there are rate limits or side effects, though the read-only hint covers most safety concerns.

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

Conciseness5/5

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

The description is a single sentence that packs essential information: the action (query guest info), the method (via QEMU agent), and the operation enum with a permission note. It is front-loaded with the core purpose and no wasted words.

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

Completeness3/5

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

Given the tool's moderate complexity (multiple operation types) and no output schema, the description provides the operation enum and permission requirement. However, it doesn't explain what each operation returns or when to choose one over another. The lack of output schema means the description should clarify expected return formats, which it doesn't. The annotations cover safety, so the main gap is operational detail.

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

Parameters4/5

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

The schema already documents node and vmid adequately (67% coverage). The description adds value by explaining the operation parameter with its enum values and the permission requirement. Since operation is the key parameter for selecting the query type, the description compensates for the schema's brief description by listing options and emphasizing elevated permissions.

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

Purpose4/5

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

The description clearly states the tool queries guest info via the QEMU agent and lists the specific operations it supports (ping, osinfo, fsinfo, etc.). It distinguishes from sibling agent tools (proxmox_agent_exec, proxmox_agent_file) by focusing on info retrieval rather than execution or file operations.

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

Usage Guidelines3/5

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

The description implies usage for querying guest information, and the enum operation parameter provides clear options. However, it does not explicitly state when to use this tool instead of others, such as when to use proxmox_agent_hw or proxmox_guest_config. The mention of 'requires elevated permissions' gives a hint but no explicit alternatives or exclusion criteria.

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

proxmox_agent_powerGuest Agent Power ControlA
Destructive

Guest power control via QEMU agent. operation=shutdown|suspend_disk|suspend_ram|suspend_hybrid (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where VM is located
vmidYesVM ID number
operationYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds useful context beyond annotations: it is agent-mediated and requires elevated permissions. However, it does not disclose side effects such as VM shutdown vs. suspension behavior, whether the operation is graceful, or what happens if the agent is unavailable.

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

Conciseness5/5

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

A single, efficiently worded sentence that front-loads the main purpose and then lists the operation values and permission requirement. There is no redundant filler or repetition of schema details.

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

Completeness3/5

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

For a destructive, state-changing tool with no output schema, the description is somewhat thin. It captures the essential operation set and permission note, but omits important context such as when this tool should be chosen over sibling guest control tools, the need for a running QEMU agent, and expected effects/return behavior.

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

Parameters3/5

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

The schema already documents node and vmid, and the operation enum fully defines allowed values. The description repeats the operation choices but does not add deeper meaning about node/vmid semantics or operation-specific prerequisites. With schema coverage at 67%, the description provides marginal additional value.

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

Purpose5/5

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

The description clearly identifies the resource (guest power control) and the mechanism (via QEMU agent), and enumerates the exact supported operations. This distinguishes it from sibling tools like proxmox_node_power or proxmox_guest_shutdown by specifying agent-based control rather than node-level or direct guest control.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to use this tool versus alternatives such as proxmox_guest_shutdown, proxmox_guest_stop, or proxmox_agent_freeze. It mentions elevated permissions but does not state prerequisites like 'guest agent must be installed and running' or situations where this tool is preferred.

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

proxmox_agent_userGuest Agent User ManagementB
DestructiveIdempotent

Manage guest users via QEMU agent. operation=set_password (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where VM is located
vmidYesVM ID number
cryptedNoWhether password is already crypted (default: false)
passwordYesNew password (5-1024 characters)
usernameYesUsername to set password for
operationYes

TDQS

B3.2/5.0
Behavior3/5

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

The description adds the elevated-permissions requirementaint, which is useful beyond the annotations. However, it does not disclose that the existing password is overwritten, that the QEMU agent must be running, or any side effects beyond what destructiveHint and idempotentHint already imply. 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.

Conciseness4/5

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

The description is short and mostly front-loaded, with no filler. The broad phrase 'Manage guest users' is less precise than the operation-specific detail, but the overall compactness helps an agent parse it quickly.

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

Completeness3/5

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

For a single-operation tool with no output schema, the description is minimally viable but leaves gaps: it does not state that the VM must be running, that the QEMU agent must be installed/active, or what result/confirmation the agent should expect. Annotations cover the destructive and idempotent nature, so the omission is not critical.

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

Parameters3/5

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

Schema description coverage is 83%, so the schema already documents most parameters. The description adds little beyond restating 'operation=set_password,' which is already encoded as an enum. This meets the baseline but does not elevate meaning for parameters like crypted or username.

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

Purpose4/5

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

The description states a clear verb and resource: manage guest users via QEMU agent, and narrows the action to operation=set_password. It is clear enough to distinguish from agent info/exec/file siblings, though it does not explicitly name them or contrast with proxmox_guest_config_update.

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

Usage Guidelines2/5

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

There is no explicit guidance about when to use this tool versus alternatives, and no exclusions are stated. The only contextual hint is 'requires elevated permissions,' which is a prerequisite rather than a use-case selector.

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

proxmox_aptAPT PackagesA
Destructive

Manage APT packages. action=update(elevated)|upgrade(elevated): package ops | action=versions: list versions

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name
actionYes
packageNoFilter by package name

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already flag destructiveHint=true and readOnlyHint=false. The description adds the elevated privilege requirement and notes that versions is a list operation, which is useful. It does not, however, disclose what upgrade changes, whether changes are reversible, or what system-level consequences may occur.

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

Conciseness4/5

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

The description is compact and front-loaded with 'Manage APT packages.' The action mapping is dense but mostly efficient; the phrase 'package ops' is vague filler and the inline pipe-separated format could be clearer, but the overall size is appropriate.

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

Completeness3/5

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

For a simple tool with no output schema, it covers the main actions and required node parameter. However, it does not clarify whether the optional package filter applies to all actions or only some, nor does it describe what result to expect from update/upgrade. Adequate but with clear gaps.

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

Parameters4/5

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

The schema documents node and package, but the action enum has no per-value descriptions. The description supplies semantics for all three enum values and flags elevation, which is meaningful added value beyond the schema.

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

Purpose4/5

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

The description clearly identifies APT package management and enumerates the supported actions (update, upgrade, versions), which tells an agent what the tool can do. It falls short of 5 because 'Manage' is generic and update/upgrade are lumped under the vague phrase 'package ops' without defining their distinct effects.

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

Usage Guidelines3/5

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

The action mapping provides some in-tool guidance, and 'elevated' hints at a privilege requirement. However, it does not state when to prefer this tool over alternatives, when not to use it, or what conditions should trigger update versus upgrade.

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

proxmox_backupGuest BackupsA
Destructive

Manage guest backups (create, list, restore, delete) for VMs and LXC containers (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoBackup modesnapshot
nodeYesNode name where guest is located
typeNoGuest type
vmidNoGuest ID number
actionYes
volumeNoBackup volume ID
archiveNoBackup archive path
storageNoStorage location for backuplocal
compressNoCompression algorithmzstd

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutable nature is known. The description adds 'requires elevated permissions', which is useful operational context. However, it does not disclose side effects like restore overwriting existing guests, or that some actions (list) are read-only while others are destructive. Given the annotation coverage, the description contributes minimal extra behavioral detail.

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

Conciseness5/5

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

A single concise sentence with no filler. The action list and guest type are front-loaded, and the permission note is appended efficiently. Every word earns its place.

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

Completeness3/5

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

With 9 parameters and 4 distinct actions, the description is thin. It does not explain how parameters map to actions (e.g., archive/volume for restore, storage/compress for create). No output schema exists, so the description could clarify typical return values. The high schema coverage mitigates, but the lack of action-specific guidance leaves an agent to infer parameter requirements from the schema alone.

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

Parameters3/5

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

Schema description coverage is 89%, so parameters are already largely documented. The description adds no parameter-level semantics (e.g., which parameters apply to which action). Since the schema carries the semantic weight, a baseline 3 is appropriate; no additional value is provided.

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

Purpose5/5

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

The description clearly states the resource ('guest backups') and enumerates the actions ('create, list, restore, delete'), and specifies the guest types (VMs and LXC containers). This distinguishes it from sibling tools like proxmox_guest_snapshot (snapshots) and proxmox_file_restore (file-level restore), leaving no ambiguity about its scope.

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

Usage Guidelines3/5

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

The description gives context (guests, elevated permissions) but provides no explicit when-to-use or when-not-to-use guidance. It does not mention alternatives or specific conditions that would route an agent to another tool. The 'requires elevated permissions' is a prerequisite but not a usage selector.

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

proxmox_cephCeph StatusA
Read-only

Query Ceph cluster. action=status: get Ceph cluster health, FSID, monitors, OSDs, and placement groups

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name
actionYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, covering the safety profile. The description adds value by enumerating the specific data fields returned (health, FSID, monitors, OSDs, placement groups), which is useful beyond the annotation. No contradiction, and the added detail improves transparency without overreach.

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

Conciseness5/5

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

A single, front-loaded sentence that states the verb, resource, and specific outputs. Zero waste, and the most critical information (action=status) appears early. It is appropriately sized for a simple read-only query.

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

Completeness4/5

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

For a two-parameter read-only status tool with no output schema, the description lists the returned fields, which is the key missing information. It does not mention potential error cases or the node's role, but those are minor given the tool's simplicity. Overall, it is sufficient for an agent to call correctly.

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

Parameters3/5

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

Schema coverage is only 50% (node is described, action is not). The description compensates by explaining action=status and its outputs, but it adds no new meaning for the node parameter beyond the schema's 'Node name'. It partially fills the gap but does not fully clarify the node's role (e.g., whether it is the node to query or just a routing parameter).

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

Purpose5/5

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

The description clearly states the tool queries the Ceph cluster and specifies the action=status, listing the exact outputs (health, FSID, monitors, OSDs, placement groups). It distinguishes itself from sibling tools like proxmox_ceph_osd by focusing on cluster-level status, leaving no ambiguity about its purpose.

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

Usage Guidelines4/5

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

The description makes it obvious that this tool is for overall Ceph cluster status, but it does not explicitly mention alternatives or when not to use it. Given the large set of Ceph-related siblings, explicit routing would be helpful, but the context is clear enough 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.

proxmox_ceph_fsCeph FilesystemsC

Manage Ceph filesystems (list, create)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoCephFS name
nodeYesNode name
poolNoPrimary data pool name
actionYes
data_poolNoData pool name
metadata_poolNoMetadata pool name

TDQS

C2.8/5.0
Behavior2/5

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

Annotations declare readOnlyHint=false, implying mutation, which is consistent with the 'create' action. However, the description adds no behavioral context beyond that: no mention of side effects, permission requirements, reversibility, or what happens to existing resources. For a create operation, this is a significant gap. There is no contradiction with annotations, but the description contributes almost nothing beyond what the action enum already implies.

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

Conciseness3/5

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

The description is a single short sentence, which is concise, but it is under-specified. It front-loads the actions, which is good, but it sacrifices necessary detail for brevity. It is not verbose, but the minimalism leaves out critical context, making it more of a placeholder than a helpful description.

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

Completeness2/5

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

This is a tool with 6 parameters, no output schema, and an action enum that switches between a read operation and a mutating create. The description provides no explanation of which parameters are required for each action, what 'node' refers to, or how to properly configure a create (e.g., needing a metadata pool and data pool). An agent cannot correctly invoke the create action without additional knowledge. The description is inadequate for the tool's complexity.

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

Parameters3/5

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

Schema description coverage is high (83%), so the parameters are well-documented in the schema itself. The description adds no additional semantics or relationships (e.g., that pool is required for create, or how data_pool and metadata_pool differ). Since coverage is high, the baseline is 3, and the description neither helps nor hurts.

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

Purpose4/5

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

The description states the tool manages Ceph filesystems and explicitly lists the supported actions (list, create). This clearly identifies the resource and verb. It distinguishes from sibling Ceph tools like proxmox_ceph_pool or proxmox_ceph_mds by naming 'filesystems' specifically, though the verb 'manage' is somewhat generic. Overall it is clear and specific enough.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as proxmox_ceph_pool or proxmox_ceph_osd. The description does not mention any conditions, prerequisites, or exclusions. An agent has no information about when 'list' or 'create' is appropriate or what distinguishes this from other Ceph tools.

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

proxmox_ceph_mdsCeph MDS DaemonsB
Destructive

Manage Ceph MDS daemons (list, create, delete)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoMDS daemon name
nodeYesNode name
actionYes

TDQS

B3.1/5.0
Behavior2/5

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

The annotations already include destructiveHint=true, and the description adds 'delete' as an action, but that is also visible in the schema enum. The description provides no additional behavioral context such as irreversibility of deletion, required node context, or effects on the Ceph filesystem. It does not contradict 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.

Conciseness4/5

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

The description is a single compact sentence with the resource and operations front-loaded. It contains no filler, though it could marginally be structured to call out per-action requirements.

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

Completeness2/5

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

For a destructive, multi-action tool with no output schema, the description is thin. It leaves the agent to infer that create/delete likely need a daemon name, what a list returns, and what destructive consequences delete carries beyond the annotation flag.

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

Parameters3/5

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

The schema already documents 'name' and 'node' (67% coverage), and the description's parenthetical loosely mirrors the action enum. The description does not clarify when 'name' is required (e.g., for create/delete vs. list) or provide detail beyond the schema, but the schema plus enum are reasonably self-sufficient.

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

Purpose4/5

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

The description names the specific resource (Ceph MDS daemons) and enumerates the supported operations (list, create, delete), so an agent can tell what the tool does. The resource name also distinguishes it from sibling Ceph tools like proxmox_ceph_osd and proxmox_ceph_mon, though the verb 'manage' is somewhat generic.

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

Usage Guidelines3/5

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

Usage is implied through the resource name: use it when managing Ceph MDS daemons. However, it does not explicitly state when to prefer this tool over related Ceph siblings (e.g., proxmox_ceph_fs, proxmox_ceph_pool) or note any prerequisites or ordering constraints for create/delete operations.

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

proxmox_ceph_monCeph MonitorsC
Destructive

Manage Ceph monitors (list, create, delete)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name
monidNoMonitor ID
actionYes

TDQS

C2.7/5.0
Behavior2/5

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

The annotations already flag this as destructive and non-read-only, and the description only restates the action enum from the schema. It adds no extra behavioral context such as side effects, node-scoping implications, prerequisites, or safety caveats about deleting a monitor.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no filler, and the parenthetical action list is compact. It earns a strong score for structure, though the brevity comes at the cost of useful elaboration.

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

Completeness2/5

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

For a destructive tool with three parameters and no output schema, this description is too thin. It omits return-value expectations, prerequisites, and any warning about what creating or deleting a Ceph monitor actually does, leaving the agent under-informed for correct invocation.

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

Parameters2/5

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

Schema coverage is 67%, so the description should compensate for the remaining parameter ambiguity, but it does not. It only repeats the action values already present in the enum and never explains the role of monid, action-dependent requirements, or the meaning of the node parameter.

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

Purpose4/5

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

The description names a clear resource—Ceph monitors—and lists explicit operations (list, create, delete), so an agent can tell what domain the tool covers. However, 'manage' is generic and the description does not explicitly differentiate this tool from related siblings like proxmox_ceph or proxmox_ceph_osd, though the resource name helps.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus the many proxmox_ceph_* siblings, nor any exclusions or alternative recommendations. The only implicit cue is the resource name 'Ceph monitors,' leaving the agent to infer the appropriate context.

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

proxmox_ceph_osdCeph OSDsC
Destructive

Manage Ceph OSDs (list, create, delete)

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoOSD ID
devNoOSD device path (e.g., /dev/sdb)
nodeYesNode name
dbdevNoOptional DB device path
osdidNoOptional OSD ID
actionYes
waldevNoOptional WAL device path
encryptedNoEnable dm-crypt encryption
crush-device-classNoCRUSH device class (e.g., hdd, ssd)

TDQS

C2.9/5.0
Behavior2/5

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

The annotations already flag destructiveHint=true and readOnlyHint=false, and the description merely restates the action enum without adding context about what deletion destroys, whether create overwrites existing device data, or what permissions are needed. It does not contradict the annotations, but it also adds no behavioral transparency beyond them.

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

Conciseness4/5

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

The description is a single front-loaded sentence with the resource named and operations compactly listed. It is efficient with no wasted words, though it is terse enough that it sacrifices useful context.

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

Completeness2/5

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

For a 9-parameter tool with destructive create/delete operations and no output schema, this description is too thin. It does not explain action-specific requirements, e.g., that create needs a device and delete needs an existing OSD ID, nor does it describe side effects. The schema helps with parameter names but cannot convey the operational context.

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

Parameters3/5

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

Schema description coverage is 89%, so parameter meaning is mostly carried by the schema itself (e.g., dev path, optional dbdev/waldev, encryption flag). The description adds no parameter-level detail, but with this high coverage it does not need to; baseline 3 is appropriate.

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

Purpose4/5

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

The description names the specific resource (Ceph OSDs) and enumerates the supported actions (list, create, delete), which clearly distinguishes it from sibling Ceph tools like proxmox_ceph_pool, proxmox_ceph_mon, and proxmox_ceph_fs. It is not a 5 because 'Manage' is generic, but the action list compensates.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or conditions for create versus delete. An agent cannot tell from the description when this tool is the right choice compared to other proxmox_ceph_* siblings.

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

proxmox_ceph_poolCeph PoolsC
DestructiveIdempotent

Manage Ceph pools (list, create, update, delete)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoPool name
nodeYesNode name
sizeNoReplication size
actionYes
pg_numNoPlacement group count
min_sizeNoMinimum replication size
crush_ruleNoCRUSH rule name
pg_autoscale_modeNoPG autoscale mode (e.g., on, off, warn)

TDQS

C2.9/5.0
Behavior2/5

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

The annotations already carry the safety profile (destructiveHint=true, readOnlyHint=false), so the description's burden is to add context such as that deleting a pool destroys stored data, that operations require privileged/root access, or which actions mutate state. It adds none of this; the description only lists operations already present in the action enum. It does not contradict the annotations, but it repeats structured data instead of enriching it.

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

Conciseness4/5

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

The description is a single compact sentence with the resource and operation scope front-loaded. No wasted words. It loses a point only because it is so terse that it borders on merely echoing the schema rather than adding information.

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

Completeness2/5

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

For an 8-parameter, 4-action mutation tool with no output schema, the description should compensate by mapping parameters to actions (e.g., pg_num/size/min_size apply to create/update, name is required for update/delete) and hinting at return values. It does neither. An agent selecting this tool cannot tell which of the 8 parameters are relevant for the action they intend, and there is no indication of what the response contains.

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

Parameters3/5

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

Schema description coverage is 88% (above the 80% threshold), so the schema documents name, node, size, pg_num, min_size, crush_rule, and pg_autoscale_mode well. The description adds no parameter-level meaning beyond this, so the baseline 3 applies. A small gap: the action parameter lacks a schema description but is self-explanatory via the enum, which the description parenthetical reinforces.

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

Purpose4/5

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

The description states a verb+resource ('Manage Ceph pools') and enumerates the four operations (list, create, update, delete), which clearly distinguishes it from siblings like proxmox_ceph_osd, proxmox_ceph_mon, and proxmox_ceph. However, the parenthetical merely repeats what the action enum already declares, and 'Manage' is a generic verb that relies on the operation list for specificity.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives, no prerequisite conditions (e.g., Ceph must be configured on the node, or a pool must already exist before update/delete), and no exclusions or warnings. The description leaves an agent to infer that action='delete' is destructive and that 'list' requires no pool name, which the schema does not make explicit.

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

proxmox_certificateNode SSL CertificatesB
DestructiveIdempotent

Manage node SSL certificates. action=list: view certs | action=upload: upload custom cert (requires elevated) | action=delete: remove custom cert (requires elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNoPEM encoded private key
nodeYesNode name
forceNoOverwrite existing custom certificate
actionYesList node certificates
restartNoRestart pveproxy service
certificatesNoPEM encoded certificate(s)

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already carry readOnlyHint=false, destructiveHint=true, and idempotentHint=true. The description adds the '(requires elevated)' permission note for upload/delete and implies list is read-only via 'view certs', which is useful beyond the annotations. No contradiction with annotations: mutable and destructive operations match 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.

Conciseness4/5

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

Compact single sentence using pipe-separated action enumeration. Purpose is front-loaded ('Manage node SSL certificates') followed immediately by the action breakdown. Every segment earns its place, and the structure is highly scannable for an agent parsing the definition.

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

Completeness2/5

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

Given a 6-parameter, 3-action tool with no output schema, there are notable gaps: no per-action parameter mapping, no explanation of what the 'restart' and 'force' booleans do in context of each action, and the return of 'list' (certs, fingerprints, expiry) is left to inference. The description covers the what but not the how-combined, leaving an agent to guess parameter interactions.

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

Parameters3/5

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

Schema description coverage is 100%, so all six parameters (key, node, force, action, restart, certificates) are already documented. The description's action explanations mirror the enum already in the schema. It does not add field-level guidance such as which parameters each action requires (e.g., upload needs certificates+key, delete likely uses force or restart). Baseline 3 is appropriate since the schema does the heavy lifting.

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

Purpose4/5

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

States the resource ('node SSL certificates') and enumerates three actions with concrete outcomes ('list: view', 'upload: upload custom cert', 'delete: remove custom cert'). The 'node SSL' qualifier distinguishes it from the ACME-cert sibling (proxmox_acme_cert), though it never names that alternative. The verb 'Manage' is soft, but the explicit action breakdown carries the meaning.

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

Usage Guidelines2/5

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

No when/when-not guidance. It describes the three actions internally but offers no reason for choosing this tool over proxmox_acme_cert, proxmox_node_service, or other cert/node siblings. There are no exclusions, alternatives, or conditions that would tell an agent when this tool is the right one.

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

proxmox_cloudinitCloud-Init ConfigurationA
DestructiveIdempotent

Manage cloud-init for a QEMU VM. action=get: list config | action=dump: dump rendered config (dump_type=user|network|meta) | action=regenerate: regenerate drive (requires elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where VM is located
vmidYesVM ID number
actionYesGet cloud-init configuration items
dump_typeNoCloud-init config type to dump

TDQS

A4/5.0
Behavior3/5

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

Annotations already flag destructiveHint=true and idempotentHint=true. The description adds that regenerate 'requires elevated', which is permission context not in annotations. However, it does not explicitly warn that regenerate overwrites or destroys the existing cloud-init drive, which would be valuable given the destructive hint. It adds a bit but not much 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.

Conciseness5/5

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

The description is a single sentence with pipe-separated action definitions. It is front-loaded with the purpose and packs the essential information without fluff. Every word earns its place.

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

Completeness4/5

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

For a multi-action tool with no output schema, the description covers the three actions, their specific parameters, and a permission note. It does not explicitly state that dump_type is only relevant for dump, but the inline text implies it. It is complete enough for an agent to correctly invoke each action.

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

Parameters4/5

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

Schema coverage is 100%, so parameters are documented. The description adds value by explaining the meaning of the action enum and how dump_type maps to dump (user|network|meta). It also clarifies that regenerate is separate and requires elevated, which the schema does not convey. This goes beyond the baseline.

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

Purpose5/5

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

The description states a specific resource ('cloud-init for a QEMU VM') and enumerates three explicit actions (get, dump, regenerate) with their behaviors. This clearly differentiates it from the many sibling tools, which are about nodes, clusters, guests, etc. The verb 'Manage' is generic, but the action breakdown makes the purpose unmistakable.

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

Usage Guidelines3/5

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

The description explains what each action does, which implies when to use the tool (whenever cloud-init for a VM needs handling). However, it does not explicitly contrast it with alternatives or state when not to use it. For instance, it doesn't mention that guest config updates are separate. The guidance is implied rather than explicit.

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

proxmox_clusterCluster InfoA
DestructiveIdempotent

Query Proxmox cluster info. action=status: overall cluster status with nodes and resource usage | action=options: get cluster-wide options | action=update_options: update cluster-wide options (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
optionsNoCluster options to update

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true. The description adds useful context by specifying that update_options requires elevated permissions and by explaining what status and options return. It does not detail the destructive scope of update_options, but it does not contradict 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.

Conciseness5/5

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

The description is a single pipe-separated sentence that front-loads the resource and action semantics. There is no redundant phrasing or unnecessary repetition of schema details.

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

Completeness3/5

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

The description is adequate for the status and options actions, and the permission note is valuable. But because the tool includes a mutating action and has no output schema, the description should say more about the options object's expected keys, response format, and the destructive implications hinted at by destructiveHint=true.

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

Parameters3/5

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

The description adds meaning to the action enum values, which the schema leaves undocumented. However, the options parameter is only described as 'Cluster options to update', matching the schema's own description without listing valid options or clarifying when it is required, so the 50% schema coverage gap is only partially compensated.

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

Purpose4/5

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

States a clear resource (Proxmox cluster) and lists three concrete actions: status, options, and update_options, each with a brief result description. It is clear what the tool does, though it does not explicitly differentiate itself from sibling tools like proxmox_cluster_config or proxmox_cluster_firewall.

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

Usage Guidelines3/5

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

The description gives action-level guidance, such as using status for cluster status and update_options for changing options, plus a note about elevated permissions. However, it does not state when to choose this tool over the many sibling cluster-related tools or provide explicit exclusions.

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

proxmox_cluster_backup_jobCluster Backup JobsC
DestructiveIdempotent

Manage cluster backup jobs. action=list: list jobs | action=get: get job by ID | action=create: create job (elevated) | action=update: update job (elevated) | action=delete: delete job (elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoBackup job ID
allNo
dowNoDay of week selection
modeNo
nodeNo
pigzNo
poolNo
stopNo
vmidNo
zstdNo
quietNo
actionYes
deleteNo
digestNo
ioniceNo
mailtoNo
removeNo
scriptNo
tmpdirNo
bwlimitNo
commentNo
dumpdirNo
enabledNo
excludeNo
storageNoStorage identifier
compressNo
lockwaitNo
maxfilesNo
stopwaitNo
protectedNo
starttimeNoJob start time (HH:MM)
performanceNo
stdexcludesNo
exclude-pathNo
prune-backupsNo
repeat-missedNo
notes-templateNo
mailnotificationNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=true, so the safety profile is mostly covered. The description adds only the vague 'elevated' marker for mutating actions and does not explain what deletion destroys, whether updates are in-place, or what list/get return. This is acceptable but thin, not contradictory.

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

Conciseness4/5

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

The description is compact, front-loaded with the resource name, and each segment of the action list carries information. The repeated '(elevated)' marker is slightly wasteful and could be consolidated, but there is no filler or unnecessary prose.

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

Completeness2/5

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

For a tool with 38 parameters, no output schema, and destructive mutations, the description is far too thin. It provides an action dispatch table but lacks per-action parameter requirements, return-value expectations, and any guidance on side effects, making it insufficient for an agent to safely construct complex create/update/delete calls.

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

Parameters2/5

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

With schema description coverage at only 11%, the description was expected to compensate for the many undocumented parameters, but it only restates the action enum and adds no meaning for the other 37 parameters. It does not say which parameters apply to create, update, get, or delete, nor which are required beyond the schema's minimal 'action' field.

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

Purpose4/5

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

The description names the resource ('cluster backup jobs') and enumerates five concrete actions with verb-object phrasing, so an agent knows what the tool operates on. However, it starts with 'Manage' rather than a specific verb and does not differentiate this tool from close siblings like proxmox_backup or proxmox_cluster_replication_job.

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

Usage Guidelines2/5

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

The action list gives some internal routing (list vs get vs create vs update vs delete) and marks mutations as 'elevated', but it never says when to choose this tool over alternatives or what conditions should select one action over another. No exclusions, prerequisites, or comparison with sibling backup tools are provided.

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

proxmox_cluster_configCluster ConfigurationC
Destructive

Manage cluster config. action=get: get config | action=list_nodes: list config nodes | action=get_node: get node config | action=join: join cluster (elevated) | action=totem: get totem config

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeNoNode name
forceNoForce join even if node exists
actionYes
hostnameNoHostname of cluster node to join
passwordNoCluster password
fingerprintNoSSL certificate fingerprint

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false, and the description adds only 'elevated' for the join action. It does not explain that join modifies cluster state, what side effects may occur, or whether elevated refers to permissions or credentials.

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

Conciseness4/5

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

The pipe-separated action mapping is compact and front-loaded, with minimal filler. Slight repetition of 'config' is harmless, but the format could be more structured to distinguish read-only actions from the join mutation.

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

Completeness2/5

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

With five actions, six parameters, and no output schema, the description leaves critical invocation details unspecified: per-action required parameters, return shapes, and side-effect expectations. An agent cannot reliably construct valid calls for join or get_node without additional external knowledge.

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

Parameters3/5

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

Schema description coverage is high at 83%, so the parameter burden is mostly handled by the schema. The description paraphrases the action enum values but does not clarify which parameters are expected or required for each action, such as hostname/password/fingerprint for join.

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

Purpose4/5

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

The description clearly identifies the tool as managing cluster config and enumerates five distinct actions with their meanings. It is specific enough to separate config operations from broader cluster lifecycle tools, though it does not explicitly contrast it with siblings like proxmox_cluster.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool instead of alternatives such as proxmox_cluster or proxmox_cluster_firewall. It implies usage through the action list but lacks explicit when/when-not direction or preconditions.

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

proxmox_cluster_firewallCluster Firewall SettingsA
DestructiveIdempotent

Query/manage cluster firewall metadata. action=get_options: get firewall options | action=update_options: update firewall options (elevated) | action=list_macros: list firewall macros | action=list_refs: list firewall refs

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by reference type
actionYes
enableNoEnable firewall
policy_inNoInbound policy (ACCEPT, REJECT, DROP)
policy_outNoOutbound policy (ACCEPT, REJECT, DROP)
log_ratelimitNoLog rate limit

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, and the description's 'Query/manage' plus 'update_options' is consistent with those. It adds the useful 'elevated' permission note, but it does not explain the consequences of destructive updates, such as whether enabling the firewall can disrupt connectivity.

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

Conciseness4/5

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

The description is a single front-loaded sentence with a compact action map; there is no filler. The pipe-separated list is information-dense and fast to parse, though it is slightly less readable than separate bullet lines.

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

Completeness3/5

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

For a multi-action tool with no output schema, the description does not specify which parameters apply to each action or what the read actions return. The schema documents parameter meanings but not the action-parameter binding, which an agent needs for correct invocation; the action list covers basic selection but not full usage.

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

Parameters4/5

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

The action parameter has no schema description, and the description supplies meaning for all four action values. Other parameters (type, enable, policy_in, policy_out, log_ratelimit) are already documented in the schema, so the description adds value without repeating those details.

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

Purpose4/5

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

The description states 'Query/manage cluster firewall metadata' and enumerates four concrete actions (get_options, update_options, list_macros, list_refs). The resource is clear, and the action list helps distinguish it from sibling tools for rules, aliases, groups, and ipsets, although those siblings are not explicitly named.

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

Usage Guidelines3/5

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

The action list implies when to use the tool—for firewall options, macros, and refs—and flags update_options as '(elevated)'. However, it does not explicitly state exclusions or name alternative tools such as proxmox_cluster_firewall_rule, leaving routing to inference.

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

proxmox_cluster_firewall_aliasCluster Firewall AliasesA
DestructiveIdempotent

Manage cluster firewall aliases. action=list: list aliases | action=get: get alias by name | action=create: create alias (elevated) | action=update: update alias (elevated) | action=delete: delete alias (elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
cidrNoIP address or CIDR network
nameNoFirewall alias name
actionYes
renameNoNew alias name
commentNoDescription

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true, so the description doesn't need to repeat. It adds that create/update/delete are 'elevated', providing extra context about permission requirements not captured in 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.

Conciseness5/5

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

The description is compact and front-loads the purpose, using a clear pipe-separated action list. Every word earns its place, with no fluff or redundancy.

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

Completeness2/5

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

For a multi-action tool, it lacks explicit mapping of required parameters to each action. It also doesn't mention return values or side effects beyond the actions, though annotations cover destructiveness. This is a notable gap for an agent needing to know exactly what to pass for each action.

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

Parameters3/5

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

The schema already documents most parameters (80% coverage). The description ties actions to parameters implicitly (e.g., 'get alias by name' implies name parameter) but doesn't explicitly state which parameters are required for each action, leaving some ambiguity for an agent assembling calls.

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

Purpose5/5

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

States it manages cluster firewall aliases and enumerates the specific actions (list, get, create, update, delete). The resource and operations are clear, distinguishing it from sibling tools that manage other firewall entities like rules or groups.

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

Usage Guidelines3/5

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

Does not explicitly state when to use this tool vs alternatives, but the name and description imply it's for alias management. No mention of when not to use or which alternative to prefer, leaving some ambiguity for an agent comparing sibling tools.

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

proxmox_cluster_firewall_groupCluster Firewall GroupsC
DestructiveIdempotent

Manage cluster firewall groups. action=list: list groups | action=get: get group by name | action=create: create group (elevated) | action=update: update group (elevated) | action=delete: delete group (elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
groupNoFirewall group name
actionYes
deleteNo
digestNo
renameNo
commentNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false, destructiveHint=true, and idempotentHint=true. The description adds that create, update, and delete require elevated permissions, which is useful beyond the annotations. However, it does not disclose side effects, reversibility, or what happens on conflict, so it only moderately supplements the annotation data.

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

Conciseness4/5

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

The description is compact and front-loads the actions in a pipe-separated format, avoiding unnecessary prose. It is efficient, though the dense single line could be slightly clearer with a more structured presentation. No words are wasted.

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

Completeness2/5

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

With six parameters, no output schema, and many sibling firewall tools, the description is not complete enough for reliable invocation. It fails to explain required parameter relationships (e.g., group needed for get/create/update/delete), optional parameter meanings, return behavior, or side effects. The action list covers part of the needed context but leaves significant gaps.

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

Parameters2/5

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

Schema description coverage is only 17%, so the description must compensate for undocumented parameters. It does clarify the action enum and that 'get' uses a group name, but it leaves delete, digest, rename, and comment unexplained. An agent would not understand the role of digest or rename for update/delete operations.

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

Purpose4/5

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

The description identifies the resource as cluster firewall groups and enumerates concrete actions (list, get, create, update, delete), so an agent can tell what the tool operates on. It is not perfectly specific because 'Manage' is vague, and it does not explicitly differentiate from sibling tools like proxmox_cluster_firewall_rule or proxmox_cluster_firewall_alias, but the resource name and action list are sufficient for basic purpose clarity.

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

Usage Guidelines2/5

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

No guidance is provided about when to choose this tool over its many siblings, such as proxmox_cluster_firewall, proxmox_cluster_firewall_rule, or proxmox_cluster_firewall_ipset. The action list implies usage patterns, but there are no exclusions, preconditions, or alternative tool references.

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

proxmox_cluster_firewall_ipsetCluster Firewall IP SetsA
DestructiveIdempotent

Manage cluster firewall IP sets. action=list: list IP sets | action=create: create IP set (elevated) | action=delete: delete IP set (elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoIP set name
actionYes
commentNoDescription

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds 'elevated' permission context for create/delete, which is useful beyond the annotations. However, it does not describe side effects of delete (e.g., impact on associated rules) or any other behavioral nuances.

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

Conciseness5/5

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

The description is a single sentence followed by a terse action breakdown. It is front-loaded with the purpose and each action is presented clearly without waste.

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

Completeness3/5

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

For a tool with three actions and no output schema, the description covers action semantics but does not clarify that create/delete require the 'name' parameter while list may not. It also doesn't mention whether delete is irreversible or how this tool relates to proxmox_cluster_firewall_ipset_entry, leaving some details to inference.

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

Parameters4/5

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

Schema coverage is 67% and the action parameter only has an enum. The description adds meaningful semantics to each enum value ('list IP sets', 'create IP set (elevated)', 'delete IP set (elevated)'), which helps the agent select the correct action. The name and comment parameters are minimally described, but the schema already provides basic descriptions.

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

Purpose4/5

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

The description states a specific verb and resource ('Manage cluster firewall IP sets') and enumerates three actions, which distinguishes it from siblings for rules, aliases, and groups. However, it does not explicitly clarify that individual entries within an IP set are handled by proxmox_cluster_firewall_ipset_entry, leaving a small ambiguity.

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

Usage Guidelines3/5

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

The description gives clear context of what the tool does and notes that create/delete require elevated permissions. But it does not explicitly direct the agent to alternative tools (e.g., alias, rule, ipset_entry) or state when not to use this tool, so guidance is mostly implied.

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

proxmox_cluster_firewall_ipset_entryCluster Firewall IP Set EntriesB
DestructiveIdempotent

Manage cluster firewall IP set entries. action=list: list entries | action=create: add entry (elevated) | action=update: update entry (elevated) | action=delete: delete entry (elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
cidrNoCIDR network address
nameYesIP set name
actionYes
commentNoDescription
nomatchNoInvert match (exclude this entry)

TDQS

B3.1/5.0
Behavior3/5

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

The description adds one useful behavioral detail—create/update/delete require elevated privileges—beyond the annotations. It does not elaborate on destructive consequences or idempotency, but annotations already declare destructiveHint and idempotentHint, so the added context is sufficient for a neutral score.

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

Conciseness4/5

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

The description is compact and structured as an action dispatch list, making the operation set easy to scan. The generic 'Manage' opener adds little, but the overall length is appropriate and free of unnecessary prose.

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

Completeness2/5

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

The tool dispatches across multiple actions, so an agent needs conditional parameter guidance (e.g., cidr required for create/delete?) to call it correctly. That information is absent, and there is no output schema to clarify return behavior for list versus mutation actions.

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

Parameters3/5

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

Schema description coverage is 80%, and parameter meanings such as cidr, name, comment, and nomatch are already provided in the schema. The description clarifies the action values but does not explain action-specific parameter requirements, such as which fields are needed for create versus update.

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

Purpose4/5

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

The description identifies the resource ('cluster firewall IP set entries') and enumerates the four concrete operations (list/create/update/delete), so an agent knows what the tool does. It does not explicitly distinguish it from the sibling tool managing IP sets themselves, but the 'entries' scope is clear enough.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus proxmox_cluster_firewall_ipset or other firewall-related siblings. The action list is essentially a restatement of the enum, and no conditions, prerequisites, or exclusions are provided.

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

proxmox_cluster_firewall_ruleCluster Firewall RulesB
Destructive

Manage cluster firewall rules. action=list: list rules | action=get: get rule by position | action=create: create rule (elevated) | action=update: update rule (elevated) | action=delete: delete rule (elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
logNo
posNoRule position
destNo
typeNoRule type
dportNo
ifaceNo
macroNo
protoNo
sportNo
actionYes
deleteNo
digestNo
enableNo
movetoNo
sourceNo
commentNo
rule_actionNoRule action (ACCEPT, REJECT, DROP)

TDQS

B3.2/5.0
Behavior3/5

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

The description adds the useful detail that create/update/delete are elevated, which is not present in the annotations. The annotations already convey readOnlyHint=false and destructiveHint=true, so the mutation/destruction risk is covered; the description does not contradict them. It does not disclose additional behavioral details such as position shifting or update prerequisites.

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

Conciseness5/5

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

The description is compact, front-loaded with the resource name, and uses a clear action-keyed format. Every part contributes directly to understanding the tool's operations, with no filler or redundant explanation.

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

Completeness2/5

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

For a 17-parameter action-dispatch tool with no output schema, this description is under-specified. It fails to indicate which parameters apply to each action, which are required for create/update/delete, or what positional and rule-field semantics matter, leaving agents to guess for anything beyond a trivial list or get call.

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

Parameters2/5

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

Schema description coverage is only 18%, so the description must compensate for the many undocumented parameters, but it only clarifies the action parameter and partially explains that 'get' uses a position. The remaining 16 parameters, including dest, source, dport, digest, rule_action, and iface, receive no meaningful semantic guidance.

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

Purpose4/5

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

The description clearly states the resource, cluster firewall rules, and enumerates the five supported operations: list, get, create, update, and delete. It is specific enough to identify the tool's purpose, though it relies on the tool name rather than explicit contrast to distinguish it from sibling firewall tools.

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

Usage Guidelines3/5

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

The description gives per-action guidance and notes that create/update/delete require elevated privileges, which is useful context. However, it does not explain when to choose this tool over related siblings like proxmox_cluster_firewall_group, proxmox_cluster_firewall_alias, or proxmox_guest_firewall_rule, nor does it state any exclusions.

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

proxmox_cluster_replication_jobCluster Replication JobsC
DestructiveIdempotent

Manage cluster replication jobs. action=list: list jobs | action=get: get job by ID | action=create: create job (elevated) | action=update: update job (elevated) | action=delete: delete job (elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoReplication job ID
keepNo
rateNo
typeNoReplication type
forceNo
actionYes
deleteNo
digestNo
sourceNo
targetNoTarget node name
commentNo
disableNo
scheduleNo
remove_jobNo

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false, so the safety profile is clear. The description adds a minor behavioral note by marking create/update/delete as 'elevated', which is useful. However, it doesn't disclose side effects or edge cases (e.g., what happens on delete), so it only marginally exceeds the annotation baseline.

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

Conciseness4/5

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

The description is a single, terse sentence that front-loads the core purpose and then lists actions via pipes. It is efficient with no filler. However, it's dense and could benefit from line breaks or clearer grouping, but overall it's appropriately concise.

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

Completeness2/5

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

Given the tool has 14 parameters, no output schema, and multiple actions, the description is severely under-specified. It doesn't explain which parameters are relevant for each action, what a replication job is, or how the 'elevated' flag affects invocation. An agent would struggle to construct correct calls without additional documentation. The description is far from complete for this complexity level.

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

Parameters1/5

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

Schema description coverage is only 21% (only 3 of 14 parameters have descriptions). The description provides zero parameter information—no mapping of actions to required parameters, no explanations of fields like 'source', 'target', 'schedule', or 'remove_job'. With such low schema coverage, the description should compensate, but it doesn't mention any parameters at all.

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

Purpose4/5

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

The description clearly states the tool manages cluster replication jobs and enumerates five specific actions (list, get, create, update, delete). This is a specific verb-resource combination that distinguishes it from node-level replication tools. However, it doesn't explicitly contrast it with proxmox_node_replication or other cluster job tools, so it's not a full 5.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like proxmox_node_replication. The description only lists actions without any context about prerequisites, when to choose this over sibling tools, or what scenarios warrant each action. The '(elevated)' hints at permissions but not usage context.

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

proxmox_console_spiceSPICE Console TicketA

Get a SPICE proxy ticket for a QEMU VM (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where the guest is located
vmidYesVM or container ID

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already indicate the tool is not read-only (readOnlyHint=false), not idempotent, and not destructive. The description adds the elevated-permission caveat, which is valuable, but it does not disclose other behaviors such as ticket expiry, side effects, or return format. Given the annotation coverage, the additional context is modest but present.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the action and resource. It contains no filler and conveys the essential purpose and permission requirement efficiently.

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

Completeness3/5

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

With no output schema, the description should clarify what the tool returns and how the ticket is to be used. It only states that a ticket is obtained, leaving the agent to infer the response structure and subsequent usage. For a low-complexity tool, this is a moderate gap, but the description is otherwise sufficient for invocation.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters (node and vmid) already documented. The description adds no extra parameter-level detail, so the baseline score of 3 applies.

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

Purpose5/5

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

The description clearly states the action ('Get'), the resource ('SPICE proxy ticket'), and the target ('QEMU VM'), distinguishing it from sibling console tools like proxmox_console_vnc and proxmox_console_term. It also adds a meaningful prerequisite ('requires elevated permissions').

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

Usage Guidelines3/5

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

The description notes the permission requirement, which is useful context, but it does not explicitly specify when to use SPICE over the alternative console tools (VNC or terminal) or provide any exclusions. Since siblings exist, more guidance on selection would be helpful, but the protocol name itself implies its use case.

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

proxmox_console_termTerminal Console TicketB

Get a terminal proxy ticket for a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where the guest is located
typeYesGuest type: vm or lxc
vmidYesVM or container ID

TDQS

B3.3/5.0
Behavior3/5

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

The description adds one useful behavioral detail beyond the annotations: the requirement for elevated permissions. It also implies a read-like retrieval operation through 'Get,' but does not disclose the returned ticket format, how it should be consumed, expiration behavior, or whether issuance has side effects. Since annotations provide no contradicting signals, this is moderate but not rich transparency.

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

Conciseness5/5

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

The description is a single, tightly written sentence that front-loads the core action and resource before the scope and permission note. Every word earns its place, with no filler or redundant restatement of the title.

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

Completeness3/5

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

The schema fully documents the three required parameters and the core purpose is clear. However, there is no output schema, and the description does not explain what the returned terminal proxy ticket looks like or how the agent should use it, which is important for a ticket-issuing tool. The elevated-permission note helps, but the missing return-value guidance leaves a noticeable gap.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters are already documented. The description adds a small semantic mapping by explaining that type=vm refers to a VM and type=lxc to a container, but this largely restates the enum values already present in the schema. No additional parameter semantics such as constraints or relationships are provided.

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

Purpose4/5

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

The description clearly states a specific verb ('Get') and resource ('terminal proxy ticket'), and scopes it to VM or LXC container via the type parameter. However, it does not explicitly distinguish itself from sibling tools like proxmox_console_vnc or proxmox_console_spice, so an agent may need to infer the difference.

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

Usage Guidelines2/5

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

The only usage guidance is the parenthetical 'requires elevated permissions,' which is a prerequisite rather than a directive. There is no mention of when to choose this tool over proxmox_console_vnc, proxmox_console_spice, or proxmox_lxc_exec, nor any exclusions or alternative conditions.

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

proxmox_console_vncVNC Console TicketB

Get a VNC proxy ticket for a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where the guest is located
typeYesGuest type: vm or lxc
vmidYesVM or container ID

TDQS

B3.2/5.0
Behavior2/5

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

Annotations are all false, offering no safety profile. The description describes a 'get' operation but does not disclose whether it is read-only, what side effects it might have, or the nature of the returned ticket. The mention of elevated permissions is a prerequisite, not a behavioral description, and no information is given about how the ticket is used.

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

Conciseness5/5

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

The description is a single concise sentence that front-loads the action, includes the key distinction (vm/lxc), and mentions the permission requirement. There is no redundant information or unnecessary elaboration, making it highly efficient.

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

Completeness2/5

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

The tool is simple with three required parameters, but the description lacks information about the response format (since there is no output schema) and the intended use of the ticket. It does not explain what the agent should do with the ticket or how to connect to the VNC console, and it does not address potential error behavior for a tool requiring elevated permissions.

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

Parameters3/5

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

Schema coverage is 100%, so each parameter (node, vmid, type) is already described in the schema. The description adds no new semantic meaning beyond restating the type enum, which is already in the schema. It does not clarify relationships or format constraints beyond the schema, so a baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states a specific action: 'Get a VNC proxy ticket' and explicitly specifies the resource types (VM or LXC) via the type parameter. It distinguishes itself from sibling tools like proxmox_console_spice by naming VNC specifically, making the purpose unambiguous.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as proxmox_console_spice or proxmox_console_term. It only states the action and a permission requirement, without any 'when not to use' or reference to alternative tools, 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.

proxmox_create_lxcCreate LXC ContainerB

Create a new LXC container (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
net0NoNetwork interface config (e.g., name=eth0,bridge=vmbr0,ip=dhcp)
nodeYesNode name where container will be created
vmidYesContainer ID number (must be unique, or use proxmox_get_next_vmid)
memoryNoRAM in MB
rootfsNoRoot filesystem size in GB8
storageNoStorage locationlocal-lvm
hostnameNoContainer hostname
passwordNoRoot password (minimum 5 characters)
ostemplateYesOS template (e.g., local:vztmpl/debian-12-standard_12.2-1_amd64.tar.gz)

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already mark this as not read-only and not idempotent; the description adds the useful auth requirement of elevated permissions. It does not disclose other behavioral context such as whether creation is asynchronous, what resources are consumed, or what happens on validation failure. 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.

Conciseness4/5

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

The definition is a single front-loaded sentence: action and resource first, permission caveat parenthetically. It is efficient, though it forgoes the opportunity to weave in usage guidance without bloat.

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

Completeness3/5

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

For a 9-parameter create operation with no output schema, this is minimally adequate: the schema covers all parameter semantics, and the description flags the key permission requirement. It is missing high-level behavioral context such as success output or how a node/template is validated, but it is not misleading.

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

Parameters3/5

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

Schema description coverage is 100%, with rich descriptions and examples for all 9 parameters (e.g., net0 format, vmid uniqueness, ostemplate example). The description adds no parameter-level detail, so it stays at the baseline 3.

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

Purpose5/5

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

Description states a clear action ('Create') and specific resource ('LXC container'), and the qualifier 'LXC' distinguishes it from the sibling proxmox_create_vm. The parenthetical adds a relevant permission constraint without obscuring the purpose.

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

Usage Guidelines2/5

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

It provides one prerequisite ('requires elevated permissions') but no guidance on when to choose this tool over alternatives such as proxmox_create_vm or how to determine whether an LXC container vs a VM is appropriate. No exclusions or conditions of use are stated.

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

proxmox_create_vmCreate Virtual MachineB

Create a new QEMU virtual machine (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
isoNoISO image (e.g., "local:iso/alpine-virt-3.19.1-x86_64.iso"), optional
nameNoVM name
net0NoNetwork interface configvirtio,bridge=vmbr0
nodeYesNode name where VM will be created
vmidYesVM ID number (must be unique, or use proxmox_get_next_vmid)
coresNoNumber of CPU cores
memoryNoRAM in MB
ostypeNoOS type (l26=Linux 2.6+, win10, etc)l26
socketsNoNumber of CPU sockets
storageNoStorage location for disklocal-lvm
disk_sizeNoDisk size (e.g., "8G", "10G")8G

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and idempotentHint=false. The description adds the useful auth requirement ('requires elevated permissions') but does not disclose side effects, return value, or behavior when the vmid already exists. 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.

Conciseness5/5

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

A single focused sentence with no filler; the core action and the permission caveat are front-loaded. Every word earns its place.

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

Completeness3/5

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

The schema fully covers parameter semantics, and the description adds the critical elevated-permission prerequisite. However, with no output schema and no mention of postconditions (e.g., whether the VM is started or what response is returned), an agent must infer several operational details.

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

Parameters3/5

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

The input schema documents all 11 parameters with descriptions and defaults, so the baseline is 3. The description adds no parameter-level meaning beyond what the schema already provides.

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

Purpose4/5

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

States a clear action and object: 'Create a new QEMU virtual machine'. This tells an agent the tool creates VMs rather than containers or clones, though it does not explicitly name alternatives like proxmox_create_lxc or proxmox_guest_clone.

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

Usage Guidelines2/5

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

No guidance on when to prefer this tool over siblings. The only usage hint is 'requires elevated permissions', which is a prerequisite rather than a selection rule or exclusion.

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

proxmox_domainAuthentication DomainsB
DestructiveIdempotent

Manage authentication domains (list, get, create, update, delete)

ParametersJSON Schema
NameRequiredDescriptionDefault
portNoPort
typeNoAuthentication domain type
realmNoAuth domain (realm) name
actionYes
capathNoCA certificate path
deleteNoList of settings to delete
digestNoConfig digest
secureNoEnable TLS
base_dnNoBase DN
bind_dnNoBind DN
commentNoDomain comment
defaultNoSet as default realm
server1NoPrimary server
server2NoSecondary server
user_attrNoUser attribute
sslversionNoTLS version
group_filterNoGroup filter
bind_passwordNoBind password

TDQS

B3.2/5.0
Behavior2/5

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

The annotations already declare destructiveHint=true and readOnlyHint=false, so the description does not need to restate safety. However, the description adds no behavioral context beyond the schema's action enum: it omits side effects of delete, prerequisites for create/update, or parameter interdependencies. It neither contradicts nor enriches 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.

Conciseness5/5

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

The description is a single, front-loaded sentence: the verb and resource appear first, followed by a compact parenthetical action list. There is no filler or repetition; every token earns its place.

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

Completeness2/5

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

For an 18-parameter, multi-action tool with no output schema, a one-line description is insufficient. It does not explain which parameters apply to which actions (e.g., create requires realm and type; LDAP needs server1 and base_dn), whether delete requires a digest, or what the tool returns. An agent would struggle to invoke non-trivial actions correctly.

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

Parameters3/5

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

With schema description coverage at 94%, the schema already documents nearly all 18 parameters (e.g., 'Bind DN', 'Config digest', 'Primary server'). The description itself contains no parameter-specific information, so it adds no value over the schema; the baseline 3 applies because the schema does the heavy lifting.

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

Purpose4/5

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

The description names a specific resource, 'authentication domains', and enumerates the exact operations (list, get, create, update, delete), which distinguishes it from sibling tools targeting nodes, users, or storage. However, the verb 'manage' is generic and the description does not clarify what an authentication domain is (e.g., Proxmox realms such as LDAP/AD), so it is clear but not maximally specific.

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

Usage Guidelines3/5

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

The description implies usage when an agent needs to perform CRUD operations on authentication domains, but it offers no explicit when/when-not guidance or alternative tools. It does not mention that user/group management belongs to proxmox_user or proxmox_group, leaving the choice to inference from the resource name.

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

proxmox_file_restoreBackup File RestoreB
Read-only

Restore files from backup. action=list: list files in backup | action=download: download file from backup

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name
pathNoDirectory path inside backup
actionYes
volumeYesBackup volume identifier
storageYesStorage identifier
filepathNoFile path inside backup

TDQS

B3.2/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, and the description aligns with that by specifying list and download actions, which are read-only. The description adds minimal behavioral context beyond the annotation: it clarifies the two operations but does not mention permissions, response formats, or side effects. Since annotations already cover the read-only nature, the description's contribution is modest but not redundant.

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

Conciseness5/5

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

The description is extremely concise: two short lines that state the purpose and enumerate the actions. It is front-loaded with the main intent and contains zero fluff. Every word earns its place, making it highly efficient for an agent to parse.

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

Completeness2/5

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

For a tool with 6 parameters (4 required) and no output schema, the description is too sparse. It does not explain which parameters are needed for each action (e.g., list likely uses 'path' while download uses 'filepath'), nor does it describe the return structure. Without this guidance, an agent may supply incorrect parameters or misread the results. The absence of an output schema increases the description's responsibility, which it fails to meet.

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

Parameters3/5

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

Schema description coverage is 83%, so the schema already documents most parameters. The description adds value only for the 'action' parameter by enumerating its values (list, download), which is helpful. However, it does not clarify how 'path' and 'filepath' relate to the different actions, or explain the purpose of node, storage, and volume beyond their schema descriptions. The baseline for high coverage is 3, and the description adds only marginal clarity.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Restore files from backup' and immediately specifies the two actions (list and download). It is specific about the resource (backup files) and distinguishes the two modes. However, it does not explicitly differentiate from sibling tools like proxmox_backup or proxmox_storage_content, though the actions make it clear it is about file-level operations.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when list vs download should be chosen, or any context about the backup storage. The only hint is the action enumeration, which is already in the schema. There is no explicit 'use this instead of X' guidance, leaving the agent to infer usage.

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

proxmox_get_next_vmidNext Available VMIDA
Read-only

Get the next available VM/Container ID number

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the agent knows this is a safe read operation. The description adds minimal behavioral context beyond that—it doesn't explain how the ID is determined (e.g., whether it scans existing guests, whether it's guaranteed unique, or whether it might return an ID already in use). With annotations covering the safety profile, a 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.

Conciseness5/5

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

A single, clear sentence with no wasted words. The description is front-loaded with the verb and resource, and there's no extraneous information.

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

Completeness3/5

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

For a zero-parameter read-only tool, the description is mostly complete. However, it doesn't mention what the return value looks like (e.g., an integer) or whether the ID is guaranteed to be free at the moment of creation. Since there's no output schema, a brief note on the return format would improve completeness.

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

Parameters4/5

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

The tool has zero parameters, and the schema coverage is 100% (vacuously). The description correctly indicates the tool takes no input and simply returns a value. There's nothing more the description could add about parameters, so the baseline 4 for zero-parameter tools applies.

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

Purpose4/5

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

The description states a specific verb ('Get') and resource ('next available VM/Container ID number'), which clearly identifies the tool's function. It doesn't explicitly differentiate from siblings, but the resource is specific enough that an agent can distinguish it from the many other proxmox tools.

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

Usage Guidelines3/5

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

The description implies usage context: it's a read-only lookup for the next available ID, likely used before creating a VM/container. However, it doesn't explicitly state when to use it versus alternatives like proxmox_guest_list or proxmox_create_vm, nor does it mention that it's a prerequisite for creation workflows.

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

proxmox_groupGroupsB
DestructiveIdempotent

Manage Proxmox groups (list, create, update, delete)

ParametersJSON Schema
NameRequiredDescriptionDefault
usersNoComma-separated user IDs
actionYes
appendNoAppend users instead of replacing
deleteNoList of settings to delete
digestNoConfig digest
commentNoGroup comment
groupidNoGroup identifier

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already convey readOnlyHint=false, destructiveHint=true, and idempotentHint=true. The description adds the explicit action set (create/update/delete), which aligns with the destructive annotation. However, it adds no context about side effects, permissions, or behavior beyond what the annotations and schema already state.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no filler. It efficiently names the resource and the four actions, earning its place. It is slightly terse but appropriately concise for the scope.

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

Completeness2/5

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

For a multi-action CRUD tool with 7 parameters and no output schema, this description is minimal. It lacks context about group semantics, update behavior (e.g., replacing vs. appending users), or effect of the digest parameter. The agent must rely entirely on the schema to understand call semantics, which is a notable gap for confident invocation.

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

Parameters3/5

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

Schema description coverage is 86%, so the schema already documents most parameters (users, append, delete, digest, comment, groupid). The description adds no parameter-level meaning beyond the action list, which is also captured by the action enum. With high schema coverage, a baseline of 3 is appropriate.

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

Purpose4/5

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

The description uses a specific verb 'Manage' with the resource 'Proxmox groups' and enumerates the supported actions: list, create, update, delete. This makes the scope clear and distinguishes it from many sibling tools, though it does not explicitly differentiate itself from proxmox_ha_group or other group-adjacent resources.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or reasons to prefer a sibling tool like proxmox_user or proxmox_role. The agent must infer usage solely from the generic action list.

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

proxmox_guest_cloneClone GuestB

Clone a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for cloned VM (optional)
nodeYesNode name where VM is located
typeYes
vmidYesVM ID to clone from
newidYesNew VM ID
hostnameNoHostname for cloned container (optional)

TDQS

B3.2/5.0
Behavior3/5

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

Annotations are all false and therefore provide no meaningful behavioral safety profile. The description adds one behavioral fact, elevated permissions, and clarifies supported guest types. However, it does not disclose side effects, postconditions, or whether the operation is asynchronous, so it only partially compensates for the absent annotation support.

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

Conciseness4/5

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

The description is a single sentence with no wasted words. The core action and supported resource types are stated efficiently, and the permission requirement is included as a compact parenthetical.

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

Completeness3/5

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

This is a mutating tool with no output schema and no useful annotation hints, so the description carries the burden of explaining consequences. The one-line description covers the basics but omits clone semantics, error conditions, and any return value information; the schema covers parameter details, making the bare minimum for invocation present.

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

Parameters3/5

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

Schema description coverage is 83%, so the schema already documents most parameters (node, vmid, newid, name, hostname). The description only echoes the type parameter's enum values, adding no meaning beyond what the schema provides, so the baseline of 3 applies.

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

Purpose4/5

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

The description uses the specific verb 'Clone' and clearly names the resource ('VM (type=vm) or LXC container (type=lxc)'). It matches the tool name and makes the core operation unambiguous, though it does not explicitly distinguish itself from create-style sibling tools.

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

Usage Guidelines2/5

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

The only usage hint is 'requires elevated permissions,' which is a prerequisite rather than a selection guideline. There is no guidance on when to use clone versus create_vm/create_lxc or other guest operations, leaving the agent to infer the appropriate context.

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

proxmox_guest_configGuest ConfigurationA
Read-only

Get hardware configuration for a VM (type=vm) or LXC container (type=lxc)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where VM is located
typeYes
vmidYesVM ID number

TDQS

A4/5.0
Behavior3/5

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

readOnlyHint=true already establishes that the operation is safe, and the description's 'Get' aligns with that annotation. The description adds useful scope (hardware configuration for vm/lxc) but does not disclose return format, error behavior, or any additional behavioral traits; acceptable given the read-only annotation.

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

Conciseness5/5

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

The description is a single front-loaded sentence with no filler. It states the action, the resource, and the relevant type distinction, earning each word.

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

Completeness4/5

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

For a simple read-only 3-parameter tool, the description plus schema and annotation are sufficient for correct invocation. It does not describe the output structure or explicitly exclude sibling tools, but the low complexity makes those gaps minor.

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

Parameters4/5

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

The schema already documents 'node' and 'vmid' well, and the description compensates for the undocumented 'type' parameter by explaining that vm means VM and lxc means LXC container. This adds meaning beyond the raw enum values without duplicating schema descriptions.

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

Purpose5/5

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

The description states a specific verb ('Get'), a specific resource ('hardware configuration'), and immediately disambiguates the two target types (vm/lxc). This clearly separates it from runtime status tools and the config update sibling.

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

Usage Guidelines3/5

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

The description makes it clear that the tool applies to VM or LXC guests, but it does not explicitly distinguish when to use this over related siblings like proxmox_guest_status, proxmox_guest_pending, or proxmox_guest_config_update. Usage context is implied rather than stated.

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

proxmox_guest_config_updateUpdate Guest ConfigurationA
DestructiveIdempotent

Update VM/LXC config key-value pairs (type=vm|lxc) (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where VM is located
typeYes
vmidYesVM ID number
configNoKey-value pairs of VM configuration to set. Use proxmox_guest_config with type=vm to discover valid keys.
deleteNoComma-separated list of config keys to REMOVE (e.g. "ciuser,cipassword"). Does NOT delete the VM.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, so the description's job is lighter. The description adds the 'requires elevated permissions' context and the delete parameter explicitly clarifies it removes config keys, not the VM. This adds meaningful 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.

Conciseness4/5

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

The description is a single concise sentence that front-loads the action and resource, with the type constraint and permission requirement appended. It earns its place without redundancy, though it could be slightly more structured with explicit when-to-use guidance.

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

Completeness4/5

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

For a mutation tool with no output schema, the description plus annotations cover the key aspects: what it does, that it is destructive, that it is idempotent, and that elevated permissions are needed. The main gap is not explaining the effect of the config object on existing settings (merge vs replace), but the pointer to proxmox_guest_config partially mitigates this.

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

Parameters4/5

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

Schema description coverage is 80%, so the schema already documents most parameters. The description adds value by clarifying the delete parameter's semantics ('Does NOT delete the VM') and by pointing to proxmox_guest_config for valid keys. The config parameter's free-form object nature is partially compensated by that pointer.

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

Purpose4/5

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

The description states a specific verb ('Update') and resource ('VM/LXC config key-value pairs'), and distinguishes the target type (vm|lxc). It is clear enough to separate from sibling tools like proxmox_guest_config (read) and proxmox_guest_delete (delete VM), though it does not explicitly name those alternatives.

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

Usage Guidelines3/5

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

The description implies usage context: it is for updating config key-value pairs on a VM or LXC, and the config parameter description points to proxmox_guest_config for discovering valid keys. However, it does not explicitly state when to use this tool versus alternatives like proxmox_guest_pending or proxmox_guest_config, nor does it mention prerequisites beyond elevated permissions.

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

proxmox_guest_deleteDelete GuestA
DestructiveIdempotent

Delete a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where VM is located
typeYes
vmidYesVM ID number

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=true, so the destructive nature is covered. The description adds useful behavior beyond annotations by stating the elevated permission requirement and clarifying the VM/LXC type distinction. No contradiction with annotations exists.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. It states the action, the target resource, and the permission caveat in a compact and immediately scannable format.

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

Completeness4/5

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

For a simple deletion tool with only three parameters and no output schema, the description plus annotations cover the essential operational context: what is deleted, the required parameters, the elevated permission requirement, and the destructive nature. It could mention consequences like permanent removal of disks, but the destructiveHint annotation mitigates that gap.

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

Parameters3/5

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

Schema coverage is 67%, with 'node' and 'vmid' already described in the schema. The description adds semantic meaning for the 'type' parameter by pairing 'vm' with 'VM' and 'lxc' with 'LXC container', which is helpful but modest. It does not add further parameter details beyond what the schema already provides.

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

Purpose5/5

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

The description uses a specific verb ('Delete') and clearly identifies the resource types ('VM' and 'LXC container'), including how the 'type' parameter maps to each. It is unambiguous and easily distinguished from sibling tools like proxmox_guest_stop or proxmox_guest_shutdown, which imply non-destructive state changes.

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

Usage Guidelines4/5

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

The description clearly implies the tool is for permanent removal of a guest rather than stopping or shutting it down, and it adds a prerequisite ('requires elevated permissions'). It does not explicitly name alternatives or give when-not-to-use guidance, but the deletion intent is contextually clear enough for tool selection.

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

proxmox_guest_disk_moveMove Guest DiskB
Destructive

Move guest storage for VM (type=vm) or LXC container (type=lxc) (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
diskYesDisk name to move (e.g., scsi0, virtio0, sata0, ide0)
nodeYesNode name where VM is located
typeYes
vmidYesVM ID number
deleteNoDelete source disk after move (default: true)
storageYesTarget storage name

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the description does not need to restate those. The description adds one useful behavioral fact: elevated permissions are required. However, it does not disclose that the move may delete the source disk by default or that the operation is a live storage migration, relying on the schema's delete parameter and the destructive annotation to carry that weight.

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

Conciseness4/5

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

The description is a single sentence with no filler and front-loads the primary action. The parenthetical 'type=vm' and 'type=lxc' is somewhat redundant with the schema enum, but it is compact and useful. It earns a high score for brevity without losing core information.

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

Completeness3/5

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

Given the destructive annotation, high schema coverage, and no output schema, the description is minimally viable: it states the action, target resource types, and a permission requirement. Still, it lacks any mention of operational consequences such as source disk deletion by default or expected task behavior, which would help an agent fully anticipate the outcome.

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

Parameters3/5

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

Schema description coverage is 83%, and the schema already documents parameters such as disk examples, node, vmid, storage, and the delete default. The description only restates the type enum values and adds the permission note, providing no new parameter-level meaning. This meets the baseline for high schema coverage but adds little beyond it.

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

Purpose4/5

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

The description states a specific verb and resource: 'Move guest storage for VM (type=vm) or LXC container (type=lxc)'. It clearly identifies the tool's scope and the required type distinction slash target. However, it does not explicitly contrast with sibling disk/storage tools such as resize or migrate, so it falls short of full differentiation.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives like proxmox_guest_migrate or proxmox_guest_disk_resize. 'Requires elevated permissions' is a permission prerequisite, not a usage condition. There is no mention of constraints such as target storage availability or whether the guest should be stopped.

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

proxmox_guest_disk_resizeResize Guest DiskA
Destructive

Resize guest storage for VM (type=vm) or LXC container (type=lxc) (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
diskYesDisk name (e.g., scsi0, virtio0, sata0, ide0)
nodeYesNode name where VM is located
sizeYesNew size with + for relative or absolute (e.g., +10G or 50G)
typeYes
vmidYesVM ID number

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already mark the tool as destructive and non-read-only; the description adds an elevated-permissions note, which is useful. However, it does not disclose other operational behaviors like whether shrinking is supported or if the guest must be stopped.

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

Conciseness5/5

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

A single, front-loaded sentence with no filler. It states the action, scope, and permission requirement efficiently, and every clause adds value.

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

Completeness3/5

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

The tool is simple enough that the schema and annotations cover most invocation needs, but the description omits caveats about disk resize limitations, such as relative vs absolute sizing concerns or whether the change requires a guest restart.

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

Parameters3/5

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

Schema coverage is high (80%) and already documents disk, node, size, and vmid semantics. The description only restates the type enum values already present in the schema, adding minimal new meaning.

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

Purpose4/5

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

The description clearly states a specific action ('Resize guest storage') and the resource scope (VM or LXC container). It is distinct enough from disk-move and other guest operations, though it does not explicitly name sibling tools.

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

Usage Guidelines3/5

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

The description conveys applicable targets (VM/LXC) and a prerequisite (elevated permissions), but it does not explain when to choose this tool over related siblings like proxmox_guest_resize or proxmox_guest_disk_move.

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

proxmox_guest_featureGuest Feature AvailabilityA
Read-only

Check if a feature (snapshot, clone, copy) is available for a VM (type=vm) or LXC container (type=lxc)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where VM is located
typeYes
vmidYesVM ID number
featureYesFeature to check (snapshot, clone, copy)

TDQS

A3.5/5.0
Behavior2/5

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

The readOnlyHint annotation already covers the no-mutation aspect, but the description adds no behavioral detail such as return format, what 'available' means, or whether absence of support results in false versus an error. With no output schema, this gap 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.

Conciseness5/5

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

A single, front-loaded sentence that names the action, the entity types, and the full feature set without waste. It earns its place and is easy to scan.

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

Completeness3/5

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

The description is sufficient for selecting and building the call: it identifies the type and feature parameters and the read-only nature is in annotations. However, with no output schema, the absence of any guidance about the response shape or the meaning of availability leaves the tool not fully self-contained.

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

Parameters3/5

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

Schema description coverage is 75%, and the description mostly restates the schema's feature enum and type enum. It adds a mild semantic link between feature and VM/LXC but does not significantly clarify the parameters beyond the schema.

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

Purpose5/5

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

Clearly states a specific action (check if available) and resource (feature on VM/LXC), with the exact features enumerated. This distinguishes it from the many guest_* sibling tools like guest_status or guest_config, whose purposes are not availability checks.

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

Usage Guidelines3/5

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

The implied use is 'before performing snapshot, clone, or copy,' but the description never explicitly states when to use this tool versus related actions or what to do if the feature is unavailable. No alternatives 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.

proxmox_guest_firewall_ruleGuest Firewall RulesA
Destructive

Manage per-guest firewall rules. action=list|get: query rules | action=create|update|delete: manage rules (elevated). type=vm|lxc. Uses rule_action for firewall action (ACCEPT/REJECT/DROP), rule_type for direction (in/out/group).

ParametersJSON Schema
NameRequiredDescriptionDefault
logNo
posNoRule position
destNo
nodeYesNode name where guest is located
typeYesGuest type (vm or lxc)
vmidYesGuest ID number
dportNo
ifaceNo
macroNo
protoNo
sportNo
actionYes
deleteNo
digestNo
enableNo
movetoNo
sourceNo
commentNo
rule_typeNoRule direction
rule_actionNoRule action (ACCEPT, REJECT, DROP)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, and the description adds that create/update/delete operations are 'elevated' while list/get are queries. This usefully distinguishes safe read actions from privileged write actions. It does not detail specific privilege requirements or side effects, but the annotation coverage lowers the burden.

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

Conciseness5/5

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

Two compact sentences front-load the purpose and pack the action semantics efficiently using pipe-grouped clauses. Every phrase earns its place, with no filler or repetition of schema details.

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

Completeness3/5

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

The action dispatcher and key enums are covered well, which is essential for this composite tool. However, with 20 parameters and no output schema, the description leaves meaningful gaps: it does not explain how update/delete identify a target rule (e.g., via pos or delete) or what list/get return. An agent may still need to guess when invoking certain actions.

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

Parameters3/5

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

Schema description coverage is only 30%, so the description must compensate. It does add valuable disambiguation for action, type, rule_action, and rule_type, especially separating the CRUD action from the firewall action. However, many parameters such as source, dest, proto, dport, sport, delete, pos, moveto, and enable remain unexplained, so the compensation is only partial.

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

Purpose5/5

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

States a specific verb ('Manage') and precise resource ('per-guest firewall rules'), which clearly distinguishes it from sibling cluster-level firewall tools. The action breakdown (query vs. manage) further clarifies what the tool does. No tautology or vagueness.

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

Usage Guidelines4/5

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

Gives clear context: this is for per-guest rules, and action values are split into query (list/get) vs. management (create/update/delete). It does not explicitly name alternatives like proxmox_cluster_firewall_rule or state when not to use the tool, so the routing decision is partly left to inference.

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

proxmox_guest_listList GuestsA
Read-only

List all virtual machines and containers across the cluster with their status

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeNoOptional: filter by specific node
typeNoVM type filterall

TDQS

A3.8/5.0
Behavior3/5

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

readOnlyHint already signals a safe read operation. The description adds that the call spans the whole cluster and returns status for VMs and containers, but it does not disclose output shape, pagination, or scale considerations. 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.

Conciseness5/5

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

One sentence with no filler. It front-loads the verb, resource, scope, and returned status information efficiently.

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

Completeness4/5

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

For a read-only list with zero required parameters, full schema descriptions, and an enum, this is largely complete. Some output-structure and scale details are missing, but the description and schema give enough to invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, including a documented enum for type and a description for node. The description does not add parameter-level detail, but the schema already carries that burden.

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

Purpose5/5

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

States a clear verb ('List') and resource ('all virtual machines and containers across the cluster') and specifies that status is included. This distinguishes it from single-guest tools like proxmox_guest_status and node/cluster inventory tools.

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

Usage Guidelines3/5

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

The description implies a cluster-wide inventory use case but does not explicitly say when to prefer this tool over alternatives or when not to use it. Sibling tools like proxmox_guest_status exist, but no routing guidance is provided.

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

proxmox_guest_migrateMigrate GuestB
Destructive

Migrate a VM or LXC container to another node (type=vm|lxc) (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesSource node name
typeYes
vmidYesVM ID to migrate
forceNoForce migration
onlineNoLive migrate running VM
targetYesTarget node name
bwlimitNoMigration bandwidth limit (MB/s)
with-local-disksNoMigrate local disks
with-local-storageNoMigrate local storage

TDQS

B3.4/5.0
Behavior2/5

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 that it requires elevated permissions, but does not disclose other important behaviors like potential downtime, irreversible effects, or need for shared storage. For a destructive operation, more transparency is expected.

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

Conciseness4/5

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

A single concise sentence that front-loads the main action and includes a key qualifier (elevated permissions). It is minimal but not vague.

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

Completeness3/5

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

For a migration tool with 9 parameters, the description is rather sparse. It does not discuss prerequisites (e.g., storage must be available on target), or what happens to local disks. With high schema coverage and no output schema, the description is adequate but leaves room for improvement.

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

Parameters3/5

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

Schema coverage is 89%, so most parameters are described. The description adds little beyond the schema except that it handles both VM and LXC and needs elevated permissions. It does not explain nuances like the difference between 'with-local-disks' and 'with-local-storage' or how 'online' affects behavior.

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

Purpose5/5

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

The description clearly states it migrates a VM or LXC container to another node, with the type parameter explicitly given. It is distinct from sibling tools like proxmox_guest_clone or proxmox_guest_disk_move.

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

Usage Guidelines3/5

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

It implies use when migrating a guest, and notes elevated permissions required, but does not explicitly mention when not to use it or compare to alternatives. The sibling list is large but no alternatives are named.

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

proxmox_guest_networkGuest Network InterfacesB
Destructive

Manage guest network interfaces. action=add|update|remove with type=vm|lxc (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
gwNoLXC only: gateway IP address
ipNoLXC only: IP address (dhcp, 192.168.1.100/24, auto)
netYesNetwork interface name (net0, net1, net2, etc.)
nodeYesNode name where guest is located
typeYesGuest type
vlanNoVM only: VLAN tag (1-4094)
vmidYesGuest ID number
modelNoVM only: network model (virtio, e1000, rtl8139, vmxnet3)
actionYes
bridgeNoBridge name (e.g., vmbr0, vmbr1)
macaddrNoVM only: MAC address (XX:XX:XX:XX:XX:XX)
firewallNoEnable firewall on this interface

TDQS

B3.3/5.0
Behavior3/5

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

The annotations already declare destructiveHint=true, and the description adds that elevated permissions are required, which is useful behavioral context. However, it does not disclose potential side effects of remove (e.g., network disruption) or any other operational consequences. With annotations covering the destructive nature, the description provides a modest addition but does not fully explain the tool's behavior beyond the permission note.

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

Conciseness4/5

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

The description is a single sentence that packs the essential information: purpose, actions, types, and a permission caveat. It is front-loaded with the verb 'Manage' and the resource, then details. There is no redundant wording, and it efficiently communicates the core details in a compact format.

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

Completeness2/5

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

Given the tool's complexity (12 parameters, 5 required, no output schema) and that it is a mutation tool with destructive capabilities, the description is insufficiently complete. It does not explain which parameters apply to which action (e.g., that ip/gw are needed for lxc add, or that model/macaddr are for vm) nor does it describe the expected response or error behavior. An agent would need to rely heavily on the schema, which is rich, but the description alone leaves significant gaps for safe invocation.

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

Parameters3/5

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

The schema has high coverage (92%), describing most parameters with clear 'LXC only' or 'VM only' constraints. The description adds little parameter-specific meaning beyond restating the action and type enums that are already in the schema. The one parameter without a schema description (action) is covered by the description, but overall the description does not enrich parameter understanding beyond what the schema already provides, so the baseline of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool manages guest network interfaces and enumerates the supported actions (add/update/remove) and guest types (vm/lxc). This is a specific verb+resource pairing that distinguishes it from generic guest config tools, though it doesn't explicitly name a sibling alternative. The purpose is unambiguous and easily understood.

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

Usage Guidelines3/5

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

The description implies usage by naming the actions and types, but it does not provide explicit guidance on when to choose this tool over alternatives like proxmox_guest_config_update or proxmox_guest_firewall_rule. It lacks a 'use this when...' or 'use X instead when...' statement. The context is clear enough that an agent could infer the appropriate use case, but the absence of explicit routing to sibling tools leaves some ambiguity.

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

proxmox_guest_pausePause VMB
DestructiveIdempotent

Pause a QEMU virtual machine — VM only (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where VM is located
vmidYesVM ID number

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, so the description's main added value is the permission note ('requires elevated permissions'). It also states 'VM only', which clarifies the scope. However, it doesn't describe side effects beyond the permission requirement, such as what happens to network connectivity or whether the guest is left in a consistent state. With annotations covering destructive and idempotent aspects, the description adds some useful context but not rich behavioral detail.

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

Conciseness5/5

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

The description is a single sentence with no filler. It front-loads the core action ('Pause a QEMU virtual machine') and adds a brief scope/permission note. Every word earns its place, making it highly concise and well-structured.

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

Completeness4/5

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

For a simple tool with two required parameters and no output schema, the description covers the essential purpose and permission requirement. The annotations handle destructive and idempotent behavior, so the description doesn't need to repeat that. It could mention what happens to the VM's state (e.g., memory remains) but that's an advanced detail. Overall, it is sufficiently complete for an agent to call it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so both node and vmid are fully documented in the schema. The description does not add extra meaning beyond what the schema provides. Since the schema already explains each parameter, the description's contribution here is minimal, justifying the baseline score of 3.

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

Purpose4/5

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

The description clearly states the action: 'Pause a QEMU virtual machine'. The verb and resource are specific and unambiguous. It distinguishes itself from other guest operations by noting 'VM only', which hints it applies to VMs rather than LXC containers, but it doesn't explicitly contrast with sibling tools like start/stop/resume. Clear enough for an agent to know what it does.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. The description only mentions a permission requirement ('requires elevated permissions'), which is a prerequisite, not a usage condition. An agent is not told when to choose pause over stop or suspend, or what situations call for pausing.

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

proxmox_guest_pendingGuest Pending ChangesA
Read-only

Get pending configuration changes for a VM (type=vm) or LXC container (type=lxc)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where VM is located
typeYes
vmidYesVM ID number

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, which covers the read-only safety profile. The description adds little beyond the title—it only clarifies that 'pending changes' apply to vm or lxc types and does not describe the response shape or edge cases.

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

Conciseness5/5

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

A single front-loaded sentence with no wasted words. The core operation and supported resource types are conveyed immediately.

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

Completeness4/5

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

For a simple read-only lookup with three clearly described parameters, the description is nearly sufficient. It omits any detail about the pending-changes response format, but the absence of an output schema does not prevent correct invocation.

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

Parameters4/5

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

The description maps the type enum to concrete resources ('VM (type=vm) or LXC container (type=lxc)'), adding meaning where the schema only provides an enum. Node and vmid are already well described in the schema, so the description fills the remaining gap.

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

Purpose4/5

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

The description opens with a specific verb ('Get') and a precise object ('pending configuration changes'), and it names the resource types (VM and LXC container). It is clear, though it does not explicitly contrast itself with siblings like proxmox_guest_config or proxmox_guest_status.

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

Usage Guidelines3/5

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

The phrasing implies the tool should be used when the agent needs unapplied configuration changes for a VM or container, but it offers no explicit when-to-use/when-not-to-use guidance or alternatives. Selecting among the many guest-related siblings is left to inference.

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

proxmox_guest_rebootReboot GuestA
Destructive

Reboot a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where VM is located
typeYes
vmidYesVM ID number

TDQS

A4/5.0
Behavior3/5

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

With destructiveHint=true already set, the description adds the requirement of elevated permissions but does not elaborate on the disruptive nature of a reboot (e.g., temporary downtime or data loss for unsaved state). No contradiction exists; the description adds minimal context beyond the annotation.

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

Conciseness5/5

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

A single, compact sentence that front-loads the action verb and enumerates both supported resource types. No filler words; every element earns its place, making it easy to scan and understand quickly.

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

Completeness4/5

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

For a simple three-parameter reboot tool, the description covers the essential usage context: resource types and the permission prerequisite. No output schema exists, so return-value details are unnecessary. It could note preconditions like the guest being running, but this is likely implicit and not a significant gap.

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

Parameters4/5

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

The schema covers node and vmid with descriptions but leaves type undocumented; the description compensates by explicitly mapping type=vm to VM and type=lxc to LXC container. This adds meaningful semantics beyond the schema, especially given 67% schema coverage.

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

Purpose5/5

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

The description states the specific action 'Reboot' and explicitly lists the resource types (VM and LXC container). This clearly differentiates it from sibling tools like start, stop, shutdown, and delete, leaving no ambiguity about 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.

Usage Guidelines3/5

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

The description implies usage through its name and action but does not explicitly compare it to alternatives like shutdown+start or stop. No when-to-use or when-not-to-use guidance is provided beyond the note about elevated permissions, so the agent must infer the right context from the tool name.

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

proxmox_guest_resizeResize Guest CPU/MemoryA
DestructiveIdempotent

Resize VM/LXC CPU or memory (type=vm|lxc) (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where VM is located
typeYes
vmidYesVM ID number
coresNoNumber of CPU cores (optional)
memoryNoMemory in MB (optional)

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already mark the tool as non-read-only, destructive, and idempotent. The description adds a meaningful auth requirement ('requires elevated permissions') that is not present in the annotations or schema. It does not contradict the annotations, though it could disclose more about effects on running guests.

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

Conciseness5/5

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

A single sentence with no filler. It packs in the operation, resource types, type discriminator, and permission requirement in a compact, front-loaded way.

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

Completeness4/5

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

For a 5-parameter mutation with no output schema, the description plus annotations cover the core invocation facts: what is resized, the required type discriminator, and elevated permissions. It does not explicitly state that at least one of cores/memory should be supplied, but the phrase 'CPU or memory' implies it, making this a minor gap.

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

Parameters3/5

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

Schema description coverage is 80%, with node, vmid, cores, and memory already documented. The only uncovered parameter is 'type', and the description's 'type=vm|lxc' only restates the schema enum. The description adds no meaningful semantic detail beyond what the schema already provides.

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

Purpose5/5

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

The description states a specific verb ('Resize') and resource ('VM/LXC CPU or memory'), which cleanly distinguishes it from the sibling proxmox_guest_disk_resize. The 'type=vm|lxc' qualifier further scopes the target. This is more than a restatement of the title because it names the exact resource types involved.

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

Usage Guidelines2/5

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

No explicit when-to-use guidance is given and no alternative tools are named. The description never mentions conditions for choosing this tool over related siblings like proxmox_guest_config_update or proxmox_guest_disk_resize. 'Requires elevated permissions' is an authorization note, not usage guidance.

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

proxmox_guest_resumeResume VMA
Idempotent

Resume a paused QEMU virtual machine — VM only (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where VM is located
vmidYesVM ID number

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover readOnlyHint=false, destructiveHint=false, and idempotentHint=true. The description adds useful context beyond annotations by noting that elevated permissions are required and that the VM must be paused, which helps the agent reason about preconditions and authorization.

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

Conciseness5/5

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

The description is a single, tight sentence with no filler. It front-loads the core action and resource, then adds scope and permission context efficiently.

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

Completeness5/5

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

For a simple two-parameter action tool, the description covers the purpose, the precondition (paused VM), the scope (VM only), and the permission requirement. Annotations cover safety and idempotence, so nothing critical is missing for an agent to invoke this correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so both 'node' and 'vmid' are already documented in the schema. The description adds no additional parameter-level detail, which is acceptable since the schema carries the full burden.

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

Purpose5/5

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

The description states a specific verb ('Resume'), a specific resource ('paused QEMU virtual machine'), and an explicit scope ('VM only'), which matches the tool's title and distinguishes it from container-related operations. This is immediately clear to an agent.

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

Usage Guidelines4/5

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

The description clearly indicates when to use the tool: when a QEMU VM is paused and needs to be resumed. It also adds an exclusion ('VM only'), signaling it is not for LXC containers, though it does not name alternative tools such as proxmox_guest_start for stopped VMs.

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

proxmox_guest_rrddataGuest MetricsB
Read-only

Get performance metrics (RRD data) for a VM (type=vm) or LXC container (type=lxc)

ParametersJSON Schema
NameRequiredDescriptionDefault
cfNoConsolidation function (e.g., AVERAGE, MAX)
nodeYesNode name where VM is located
typeYes
vmidYesVM ID number
timeframeNoTimeframe (e.g., hour, day, week, month, year)

TDQS

B3.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, and the description confirms a read operation. However, it adds no further behavioral context—no mention of what metrics are included, how the RRD data is aggregated, rate limits, or response shape. The description carries little informational value beyond the annotation, so it fails to enrich the agent's understanding of the tool's behavior.

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

Conciseness5/5

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

The description is a single, compact sentence that immediately states the core function. It is front-loaded with the action and resource, with no redundant words or filler. It earns a perfect score for conciseness.

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

Completeness2/5

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

The tool has no output schema, so the description must provide guidance on what the response contains. It only says 'performance metrics (RRD data)', which is vague—it does not specify which metrics (CPU, memory, disk, etc.) are available, nor how the parameters influence the data granularity. For a metrics tool with 5 parameters and no output schema, this is insufficient for an agent to know what to expect or how to interpret results.

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

Parameters3/5

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

Schema description coverage is 80%, with descriptions for cf, node, vmid, and timeframe. The description adds the context that type can be 'vm' or 'lxc', which is already in the enum, and mentions RRD data. It does not explain the meaning of cf or timeframe beyond the schema, so it adds minimal value. Baseline of 3 is appropriate given the high schema coverage.

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

Purpose5/5

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

The description clearly states the tool fetches performance metrics (RRD data) for a VM or LXC container. It uses a specific verb 'Get' and a specific resource 'performance metrics', and distinguishes between VM and LXC types. This is unique among the many guest-related sibling tools, so an agent can identify its purpose without ambiguity.

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

Usage Guidelines3/5

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

The description implies when to use it (when performance metrics are needed) but does not explicitly state alternatives or exclusions. It does not mention, for example, that proxmox_guest_status provides status information or that other tools handle configuration. The context is clear but there is no explicit routing guidance.

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

proxmox_guest_shutdownShut Down GuestA
DestructiveIdempotent

Gracefully shutdown a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where VM is located
typeYes
vmidYesVM ID number

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already disclose destructiveness and idempotency. The description adds value by specifying 'gracefully' (implying ACPI shutdown vs. force) and the elevated permission requirement, which are not in annotations. No contradictions with annotations 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.

Conciseness5/5

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

A single, front-loaded sentence that covers the action, resource type, and a key prerequisite. No filler or redundancy; every word contributes to understanding the tool's purpose and invocation.

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

Completeness4/5

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

For a simple 3-parameter tool with all parameters required, the description covers the core behavior, target types, and permission needs. Annotations supply destructive/idempotent hints, and the schema documents node and vmid. Missing explicit alternative routing is a minor gap, but an agent has enough to call it correctly.

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

Parameters4/5

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

The schema describes node and vmid but leaves the 'type' parameter undocumented. The description fills this gap by explaining that type=vm refers to VMs and type=lxc to containers, thereby clarifying the parameter's meaning and its allowed values. It also reinforces the roles of node and vmid.

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

Purpose5/5

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

The description clearly states the action (shutdown), the target resources (VM or LXC container), and the qualifying behavior (graceful). It specifies the 'type' parameter values and even notes the elevated permission requirement, making it distinct from related tools like proxmox_guest_stop (force stop) or proxmox_guest_reboot.

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

Usage Guidelines3/5

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

The phrase 'Gracefully shutdown' implies a soft-stop method vs. a hard stop, but it does not explicitly name alternatives such as proxmox_guest_stop or conditions for when to use each. The permission note is a prerequisite but not a full usage guideline. An agent would need to infer the distinction from the word 'gracefully'.

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

proxmox_guest_snapshotGuest SnapshotsA
Destructive

Manage guest snapshots (create, list, rollback, delete) for VMs and LXC containers (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where guest is located
typeYesGuest type
vmidYesGuest ID number
actionYes
snapnameNoSnapshot name
descriptionNoOptional snapshot description

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false, so the description builds on that by noting the requirement for elevated permissions. It also enumerates actions, which clarifies that list is read-only while rollback/delete are mutating, adding value 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.

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the primary purpose, then lists actions, scope, and permission requirements. No filler or redundancy; every element contributes to understanding.

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

Completeness4/5

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

For a tool with no output schema, the description covers the core purpose, actions, scope, and permission needs. It does not specify per-action parameter requirements (e.g., snapname is needed for create/rollback/delete but not list), but the schema and annotations handle most of the remaining context, making it adequately complete.

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

Parameters4/5

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

Schema description coverage is 83% (5 of 6 parameters have descriptions), so the baseline is 3. The description adds value by enumerating the action enum values (create, list, rollback, delete) and specifying scope (VMs and LXC), which maps to the type parameter. This fills the gap left by the undocumented 'action' field in the schema.

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

Purpose5/5

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

The description clearly states the tool manages guest snapshots and explicitly lists the four actions (create, list, rollback, delete), with scope limited to VMs and LXC containers. This distinguishes it from sibling tools like proxmox_backup or proxmox_guest_config, which have different purposes.

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

Usage Guidelines3/5

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

The description implies usage for snapshot management but does not explicitly contrast with alternative tools such as backup or disk operations. It provides context (snapshots for VMs/LXC) but lacks any when-to-use vs. when-not-to-use guidance or named alternatives.

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

proxmox_guest_startStart GuestA
Idempotent

Start a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where VM is located
typeYes
vmidYesVM ID number

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover mutation (readOnly=false), non-destructiveness, and idempotency. The description adds a useful behavioral requirement: elevated permissions are needed. It does not describe async behavior or failure modes, but the extra permission context is meaningful 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.

Conciseness5/5

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

A single sentence with no filler; the action and target resource are front-loaded, and the elevated-permission note is compactly appended. Every word earns its place.

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

Completeness5/5

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

For a simple start operation with three required parameters, all parameters are semantically covered (node/vmid in schema, type in description) and annotations address idempotency and destructiveness. No further context is necessary to invoke the tool correctly.

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

Parameters4/5

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

Node and vmid already have descriptions, while the type parameter lacks one; the description compensates by explicitly mapping type=vm to VM and type=lxc to LXC container. This fills the only semantic gap in the input schema.

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

Purpose5/5

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

The description uses the specific verb 'Start' with a clear resource ('a VM (type=vm) or LXC container (type=lxc)'), making the action and target unambiguous. This differentiates it from sibling lifecycle tools like proxmox_guest_stop, proxmox_guest_reboot, and proxmox_guest_shutdown.

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

Usage Guidelines2/5

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

The only usage-related hint is 'requires elevated permissions', which is a precondition, not guidance on when to choose this tool over alternatives. None of the many sibling tools are mentioned and no when-to-use/when-not-to-use context is provided.

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

proxmox_guest_statusGuest StatusB
Read-only

Get detailed status for a VM (type=vm) or LXC container (type=lxc)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where VM is located
typeYes
vmidYesVM ID number

TDQS

B3.4/5.0
Behavior3/5

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

The readOnlyHint annotation already covers the safety profile, so the description does not need to restate that. However, the description adds little behavioral detail beyond 'detailed status' — it does not mention what status fields are returned or whether the guest must 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.

Conciseness5/5

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

The description is a single focused sentence with no filler. It front-loads the action ('Get detailed status') and immediately clarifies the supported resource types.

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

Completeness3/5

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

For a simple read-only tool with three required parameters, the description is mostly adequate, but it is vague about what 'detailed status' actually includes and does not mention any return behavior. With no output schema, a bit more detail about the returned status information would make it more complete.

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

Parameters4/5

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

Schema description coverage is 67%, with the 'type' parameter left undocumented in the schema. The description compensates by explicitly explaining that type=vm means VM and type=lxc means LXC container, adding meaning beyond the schema. Node and vmid are already described in the schema.

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

Purpose4/5

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

The description uses a specific verb and resource: 'Get detailed status' for a VM or LXC container. It clearly identifies the operation, but it does not explicitly differentiate from related sibling tools like proxmox_guest_list or proxmox_guest_config.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as proxmox_guest_config, proxmox_guest_pending, or proxmox_agent_info. The intended use is only implied by the word 'status', so the agent receives no explicit context about when this is the right choice.

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

proxmox_guest_stopForce Stop GuestB
DestructiveIdempotent

Forcefully stop a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where VM is located
typeYes
vmidYesVM ID number

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this is a destructive write operation. The description adds the 'forcefully' qualifier and the elevated permissions requirement, which are useful. However, it doesn't disclose what happens to the guest (e.g., data loss risk, no graceful OS shutdown) beyond what 'forcefully' implies. With annotations covering the destructive nature, a 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.

Conciseness4/5

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

The description is a single sentence that front-loads the action and resource type, then adds the permissions note. No wasted words. It could be slightly more structured with explicit alternative routing, but it's appropriately concise.

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

Completeness3/5

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

For a destructive action with three required parameters and no output schema, the description covers the core purpose and the permission requirement. However, it doesn't mention what the response looks like, whether the operation is synchronous, or any side effects beyond 'forcefully stop'. The annotations cover idempotency and destructiveness, so the description is adequate but not rich.

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

Parameters3/5

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

Schema description coverage is 67%: node and vmid have descriptions, but type only has an enum without a description. The description adds that type can be 'vm' or 'lxc' and that both are supported, which is already in the enum. It doesn't add meaning beyond the schema for node and vmid. Baseline 3 is appropriate since the schema does most of the work.

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

Purpose4/5

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

The description clearly states the action ('Forcefully stop') and the resource types (VM or LXC container), which distinguishes it from sibling tools like proxmox_guest_shutdown (graceful stop) and proxmox_guest_delete. It doesn't explicitly name the sibling alternatives, but the verb 'forcefully stop' is specific enough to differentiate it from the many guest management tools.

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

Usage Guidelines3/5

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

The description implies when to use it: when a forceful stop is needed, as opposed to a graceful shutdown. However, it doesn't explicitly state 'use proxmox_guest_shutdown for graceful shutdown' or mention any exclusions. The parenthetical about elevated permissions gives some context but no explicit alternative routing.

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

proxmox_guest_templateConvert Guest to TemplateA
DestructiveIdempotent

Convert a VM or LXC container to a template (type=vm|lxc) (requires elevated permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name where VM is located
typeYes
vmidYesVM ID number

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already convey destructive and idempotent hints, so the description's additional 'requires elevated permissions' provides some useful context. However, it does not disclose important behavior such as prerequisite state (e.g., guest being stopped) or consequences like the guest no longer operating as a normal VM or container.

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

Conciseness5/5

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

Single sentence, front-loaded with the action and target, and the parenthetical type/permission notes are efficient. There is no filler or redundant restatement of the tool name.

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

Completeness3/5

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

For a three-parameter tool with clear annotations this is nearly adequate, but the description omits a non-obvious operational prerequisite: the VM or container must likely be stopped before conversion. Without that, an agent may attempt the call against an active guest and fail.

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

Parameters3/5

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

The schema documents node and vmid, while type is only an enum; the description compensates slightly by restating 'type=vm|lxc'. No additional semantic detail is given for node or vmid, so the description adds only marginal value beyond the schema.

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

Purpose5/5

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

The description uses a specific verb ('Convert') and a precise resource ('a VM or LXC container to a template'), with the type parameter inline. This clearly distinguishes it from sibling tools like clone, create, or config_update, which serve different purposes.

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

Usage Guidelines4/5

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

The description clearly establishes the use case: converting an existing VM or LXC container into a template, and notes the elevated permission requirement. It does not explicitly mention alternatives or when not to use the tool, but the context is clear enough for basic routing.

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

proxmox_ha_groupHA GroupsB
DestructiveIdempotent

Manage HA groups. action=list: list groups | action=get: get group details | action=create: create group (elevated) | action=update: update group (elevated) | action=delete: delete group (elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoGroup type
groupNoHA group identifier
nodesNoNodes list with optional priorities
actionYes
deleteNoList of settings to delete
digestNoPrevent concurrent modifications
commentNoDescription
nofailbackNoPrevent migration to higher priority nodes
restrictedNoRestrict to defined nodes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already convey destructiveHint=true and readOnlyHint=false. The description adds useful context by marking create, update, and delete as 'elevated', indicating privileged operations. It does not describe side effects or failure behavior beyond that.

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

Conciseness5/5

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

The description is a single compact sentence that front-loads 'Manage HA groups' and then enumerates all actions with their meanings. There is no filler or redundant explanation.

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

Completeness3/5

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

The action-based breakdown is helpful, but the description lacks action-specific parameter requirements, such as which fields are needed for create or update. Since there is no output schema, return behavior is also left unspecified. Still, the schema and annotations cover a substantial amount of context.

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

Parameters4/5

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

Although schema description coverage is 89%, the description adds meaning to the required 'action' parameter by explaining what each action does. This goes beyond the bare enum in the schema and helps an agent select the correct action value.

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

Purpose4/5

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

The description clearly states the resource ('HA groups') and provides action-specific verbs: list, get, create, update, delete. This makes the tool's function understandable. However, it does not explicitly differentiate HA groups from the closely related sibling proxmox_ha_resource.

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

Usage Guidelines2/5

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

The action list implies usage, but there is no guidance on when to use this tool rather than alternatives like proxmox_ha_resource or other cluster tools. No exclusions, prerequisites, or selection criteria are provided.

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

proxmox_ha_resourceHA ResourcesB
DestructiveIdempotent

Manage HA resources. action=list: list resources | action=get: get resource details | action=status: get HA manager status | action=create: create resource (elevated) | action=update: update resource (elevated) | action=delete: delete resource (elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
sidNoHA resource ID (e.g., vm:100, ct:100)
typeNoFilter by resource type
groupNoHA group identifier
stateNoRequested resource state
actionYes
deleteNoList of settings to delete
digestNoPrevent concurrent modifications
commentNoDescription
failbackNoAuto-migrate to highest priority node
max_restartNoMax restart tries
max_relocateNoMax relocate tries

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the description's '(elevated)' markers add a small amount of context about privilege requirements. The description does not disclose other behavioral traits such as whether operations are idempotent (though idempotentHint=true is in annotations), what gets destroyed, or any side effects beyond the action names. 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.

Conciseness4/5

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

The description is compact and front-loads the resource domain, then enumerates actions in a scannable pipe-separated format. Every clause earns its place, though the repeated 'action=' prefix is slightly redundant.

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

Completeness3/5

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

For a multi-action tool with 11 parameters and no output schema, the description gives only a terse action list. It doesn't explain which parameters apply to which action, what the response looks like, or how the 'delete' parameter relates to the delete action. The annotations cover safety (destructive, idempotent), but the action-to-parameter mapping is left to the agent to infer.

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

Parameters3/5

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

Schema description coverage is 91%, so the schema already documents nearly all parameters. The description adds no parameter-level meaning beyond the action names; for example, it doesn't explain how 'sid', 'group', or 'state' interact with each action. Baseline 3 is appropriate because the schema carries the heavy lifting.

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

Purpose4/5

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

The description states a clear verb ('Manage') and resource ('HA resources'), and enumerates six distinct actions (list, get, status, create, update, delete) with brief scopes. It distinguishes itself from sibling tools like proxmox_ha_group by naming the HA resource domain, though it doesn't explicitly contrast with that sibling.

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

Usage Guidelines3/5

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

The action list implies when each sub-operation is appropriate (e.g., 'list resources' vs 'get resource details'), and the '(elevated)' markers signal that create/update/delete require higher privileges. However, there is no explicit guidance on when to choose this tool over proxmox_ha_group or other HA-related siblings, nor 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.

proxmox_lxc_execLXC Command ExecutionA
Destructive

Execute a command inside an LXC container via SSH + pct exec (requires elevated + PROXMOX_SSH_ENABLED=true)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesProxmox node name where the LXC container runs
vmidYesLXC container ID
commandYesCommand to execute inside the container
timeoutNoExecution timeout in seconds (default: 30, max: 120)

TDQS

A4/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and readOnlyHint=false, and the description adds useful behavioral context: the SSH transport and elevated-permission requirement. It does not contradict annotations, though it doesn't expand on potential side effects inside the container.

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

Conciseness5/5

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

The description is a single sentence with no filler. It front-loads the core action and resource, then adds the critical prerequisite in parentheses.

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

Completeness4/5

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

For a 4-parameter tool with full schema coverage, the description is largely sufficient: it states the target, method, and prerequisite. The main omission is return/exit behavior, which is not covered by an output schema, but this is a minor gap for an exec tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents node, vmid, command, and timeout fully. The description adds no additional parameter-level meaning.

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

Purpose5/5

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

The description uses a specific verb ('Execute'), a specific resource ('inside an LXC container'), and the exact mechanism ('SSH + pct exec'). This clearly distinguishes it from VM-focused tools like proxmox_agent_exec or proxmox_guest_*.

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

Usage Guidelines3/5

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

It names an important prerequisite ('requires elevated + PROXMOX_SSH_ENABLED=true'), which gives context for when the tool can be used. However, it does not explicitly say when to prefer this over alternatives such as proxmox_agent_exec 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.

proxmox_lxc_mountpointLXC Mount PointsC
Destructive

Manage LXC mount points. action=add: add mountpoint | action=remove: remove mountpoint (all elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
mpYesMount point name (e.g., mp0, mp1, mp2)
nodeYesNode name where container is located
sizeNoMount point size in GB (e.g., 10)
vmidYesContainer ID number
actionYes
storageNoStorage name (e.g., local-lvm)

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already convey destructiveHint=true and readOnlyHint=false, so the safety profile is known. The description adds only the cryptic phrase '(all elevated)' for removal, without explaining consequences, reversibility, or what specifically makes the operation elevated. This provides minimal additional transparency.

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

Conciseness3/5

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

The description is short and front-loaded, but it repeats 'mountpoint' unnecessarily and includes the ambiguous '(all elevated)' phrase that confuses rather than clarifies. It could be trimmed to a single unambiguous sentence.

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

Completeness2/5

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

For a destructive mutation tool with six parameters and no output schema, the description leaves important context unexplained: what happens during removal, whether adding requires both size and storage, and what side effects to expect. The large sibling list further highlights the lack of routing guidance.

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

Parameters3/5

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

The schema already covers 83% of parameters with descriptionschers, including the action enumese. The description's action=add/remove mapping mostly restates the enum and does not clarify how required parameters like size or storage relate to each action. Baseline 3 applies given the high schema coverage.

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

Purpose4/5

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

The description explicitly names the resource, 'LXC mount points', and breaks out the two supported operations, add and remove, via the action parameter. The opening verb 'Manage' is generic, but the action mapping makes the tool's purpose specific and reasonably distinct from sibling tools like proxmox_vm_disk.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives such as proxmox_vm_disk, proxmox_storage_config, or proxmox_guest_disk_resize. It also does not mention prerequisites like the container existing or the storage being available; it only maps action values to operations.

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

proxmox_nodeNode InfoB
Read-only

Query Proxmox node info. action=list: list all nodes | action=status: node status (elevated) | action=network: network interfaces | action=dns: DNS config | action=iface: specific interface details

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeNoNode name (e.g., pve1, proxmox-node2)
typeNoFilter by interface type (bridge, bond, eth, vlan, etc.)
ifaceNoInterface name (e.g., eth0, vmbr0, bond0)
actionYes

TDQS

B3.1/5.0
Behavior3/5

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

The readOnlyHint annotation already establishes that this is a read-only operation, and the description's verb 'Query' aligns with it. The 'elevated' note on status hints at a permission requirement, which is useful, but no other behavioral traits (e.g., output characteristics, rate limits) are disclosed. 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.

Conciseness4/5

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

The description is a single, compact line with a clear action-list structure. It is front-loaded with the tool's purpose and then enumerates actions efficiently. The pipe-separated format is easy to parse and contains no fluff.

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

Completeness2/5

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

The tool has no output schema and the description does not describe what each action returns, nor does it specify parameter requirements per action. For a multi-action query tool, an agent needs to know that 'status' requires a node, 'iface' requires both node and iface, and what the response shapes are. This is significant missing context given the breadth of actions.

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

Parameters3/5

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

Schema coverage is 75%, so the baseline is 3. The description adds meaning to the action enum by expanding each value (e.g., 'list: list all nodes'), which is valuable beyond the raw enum labels. However, it does not explain which parameters are needed per action (e.g., node required for status, iface required for iface), leaving a gap in parameter semantics.

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

Purpose4/5

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

The description clearly states the tool queries Proxmox node info and enumerates five specific actions, giving an agent a concrete sense of scope. However, it does not differentiate itself from the similarly named sibling proxmox_node_info, so the boundary is not fully explicit.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus the many sibling tools like proxmox_node_info, proxmox_node_network_iface, or proxmox_node_config. It omits any exclusion criteria or alternative routing, leaving the agent to infer usage purely from the action list.

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

proxmox_node_bulkBulk Guest OperationsC
Destructive

Bulk guest operations. action=start_all|stop_all|migrate_all (all elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name
actionYes
targetNoTarget node name
maxworkersNoMaximum parallel migrations
with-local-disksNoInclude local disks in migration

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, so the destructive nature is known. The description adds only 'all elevated', which is cryptic and does not explain side effects, reversibility, or permission requirements. It does not disclose that the operation affects all guests on the node, which is a significant behavioral trait beyond the annotation.

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

Conciseness3/5

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

The description is very short (one sentence plus a cryptic parenthetical). It front-loads the main purpose but the 'action=start_all|stop_all|migrate_all (all elevated)' part is dense and ambiguous. It could be clearer and more structured, but it is not verbose.

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

Completeness2/5

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

For a destructive bulk operation with 5 parameters and no output schema, the description is inadequate. It does not explain what 'all elevated' means, that migrate_all requires a target node, the impact on all guests, or any safety considerations. The description relies entirely on annotations for safety, but does not provide operational context needed to call the tool correctly.

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

Parameters3/5

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

Schema description coverage is 80% (4 of 5 parameters have descriptions), so the schema already documents node, target, maxworkers, and with-local-disks. The description adds the enum values in the text but these are already in the schema enum. It does not explain that target is required for migrate_all or how maxworkers affects parallelism, but the schema descriptions cover basic semantics. The description adds marginal value beyond the schema.

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

Purpose4/5

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

The description states a specific verb ('operations') and resource ('guests'), and lists the specific action enum values. It distinguishes from individual guest tools by using 'bulk' and the 'all' suffixes (start_all, stop_all, migrate_all). However, it does not explicitly mention the scope is per-node, and 'all elevated' is ambiguous, so it falls short of a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this bulk tool versus individual guest tools like proxmox_guest_start or proxmox_guest_migrate. It does not state that it affects all guests on a node at once, nor does it mention any prerequisites or conditions that would select this tool over the alternatives.

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

proxmox_node_configNode ConfigurationB
DestructiveIdempotent

Manage node configuration. action=get_time|set_time(elevated)|set_dns(elevated)|get_hosts|set_hosts(elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
ipNoIP address
dns1NoPrimary DNS server
dns2NoSecondary DNS server
dns3NoTertiary DNS server
nameNoHostname or alias
nodeYesNode name
timeNoUnix epoch time in seconds
actionYes
deleteNoComma-separated list of settings to delete
digestNoConfiguration digest
searchNoSearch domain
commentNoOptional comment
timezoneNoTimezone (e.g., UTC, America/New_York)

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true. The description adds the useful context that set_* actions require elevated privileges, but it does not disclose what the destructive operations change, whether changes are reversible, or what the effects of set_hosts/set_dns are beyond the action names.

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

Conciseness4/5

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

The description is a single compact line with the core scope front-loaded and the actions listed in a terse, parseable format. It avoids redundancy, though the packed pipe-separated syntax is somewhat cryptic and could be clearer with brief action explanations.

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

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a multi-action tool with 13 parameters, no output schema, and a destructive annotation, so the description carries a heavy burden. It does not map action to required parameters, does not describe return values or expected side effects, and leaves the agent guessing how set_hosts and set_dns use the available fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 92%, so the input schema already documents most parameters well. The description's action enum mostly duplicates the schema's action enum, but the '(elevated)' label adds a permission nuance not present in the schema. It does not explain which parameters apply to which action, which is a meaningful gap for a 13-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the resource (node configuration) and lists the concrete actions: get_time, set_time, set_dns, get_hosts, set_hosts. This is specific enough to distinguish from guest or cluster tools, though the opening phrase 'Manage node configuration' is generic and each action is not individually explained.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The action list implies when the tool is relevant — for node time, DNS, and hosts configuration — and the '(elevated)' markers hint at privilege requirements. However, it provides no explicit guidance about when to use this tool vs alternatives like proxmox_node_info or proxmox_node, nor does it exclude any situations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxmox_node_diskNode DisksB
Read-only

Query node disk information. action=list|smart|lvm|zfs|lvmthin|directory

ParametersJSON Schema
NameRequiredDescriptionDefault
diskNoBlock device path (e.g., /dev/sda)
nodeYesNode name
typeNoFilter by disk type
actionYes
skip_smartNoSkip SMART health checks (faster)
health_onlyNoOnly return health status
include_partitionsNoInclude partitions in listing

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, so the read-only behavior is covered. The description reinforces this with 'Query' but adds little beyond the annotation, such as permission requirements or output characteristics. It does not contradict the annotations, but it also does not meaningfully expand on them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose. The action list is useful but redundant with the schema enum, and the overall terseness means it does not waste words. It could use a little more structure without becoming long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With seven parameters and no output schema, this description is insufficiently complete. It does not explain how each action affects required or optional parameters, which parameters apply to which action, or what the tool returns. An agent would need additional context or external knowledge to invoke the tool correctly across all action modes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 86%, so the schema itself documents most parameters. The description only repeats the action enum values without explaining their distinct meanings, disk requirements, or parameter interactions. This is acceptable for the baseline but does not add value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Query' and the resource 'node disk information', and enumerates the available action modes, making the tool's read-oriented purpose clear. It does not explicitly distinguish it from proxmox_node_disk_admin, but the 'information' framing plus the read-only annotation provides enough differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives like proxmox_node_disk_admin or proxmox_vm_disk. The action list is present, but the description does not explain which action to choose for a given scenario or when this tool is the right sibling to call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxmox_node_disk_adminNode Disk AdministrationA
Destructive

Destructive disk operations. action=init_gpt: initialize GPT | action=wipe: wipe disk (all elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
diskYesBlock device path (e.g., /dev/sdb)
nodeYesNode name
uuidNoOptional UUID for the disk
actionYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose destructiveHint=true and readOnlyHint=false. The description adds meaningful context by labeling the operations destructive and noting that all actions require elevated privileges, which goes beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely compact, front-loads the destructive nature, and uses a clear pipe-separated format for the two actions. Every phrase contributes useful information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive admin tool with rich annotations and a clear schema, the description covers the essential behavioral and authorization context. It could add explicit warnings about data loss or examples, but the current definition is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes node and disk, but the description adds critical meaning to the action enum by mapping init_gpt and wipe to their human-readable operations. This helps the agent understand what each action actually does.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific resource (disk) and specific operations (init_gpt, wipe), and explicitly labels them destructive, distinguishing this tool from non-destructive siblings like proxmox_node_disk. The action list makes the scope immediately clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through the action list: use for initializing GPT or wiping disks. However, it does not explicitly state when not to use it or point to non-destructive alternatives, leaving some inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxmox_node_infoNode DiagnosticsB
Read-only

Query node information. action=aplinfo: appliance templates | action=netstat: network stats | action=rrddata: performance metrics | action=storage_rrddata: storage metrics | action=report: diagnostic report

ParametersJSON Schema
NameRequiredDescriptionDefault
cfNoConsolidation function
nodeYesNode name
actionYes
storageNoStorage name
timeframeNoTimeframe for metrics

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, so the read-only nature is covered. The description adds the list of information types available, which is useful context, but it doesn't disclose potential side effects, authentication requirements, or output format variations across actions. It aligns with annotations and provides modest additional behavioral clarity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single line with a clear opening phrase and a compact list of action mappings. Every word earns its place, and the most important information (query + actions) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description explains the action options, it omits how parameters interact with specific actions (e.g., rrddata likely needs timeframe, storage_rrddata needs storage). No output schema is provided, so the agent has limited guidance on expected returns. For a tool with multiple action modes, this is a moderate gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 80% (4 of 5 params described). The description compensates for the missing 'action' parameter description by explaining each enum value, which is the most critical parameter. It does not add details for storage, timeframe, or cf beyond what the schema already provides, but the action semantics are well covered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool queries node information and enumerates specific diagnostic actions (aplinfo, netstat, rrddata, etc.), making its purpose distinct from sibling tools like proxmox_node_log or proxmox_node_config. It doesn't explicitly name alternatives but the action list effectively conveys scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives, nor when not to use it. The description implies usage for node diagnostics, but it does not mention exclusions or direct users to sibling tools like proxmox_node_log for logs or proxmox_node_service for service status.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxmox_node_logNode LogsA
Read-only

Read node logs. action=syslog: read syslog | action=journal: read systemd journal

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name
actionYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes that this is a safe read operation, and the description aligns with it by saying 'Read'. The description adds useful context about the two log sources, but does not disclose output format, potential access restrictions, or truncation behavior. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loaded with the core purpose: 'Read node logs.' The action mapping is compact and adds no redundant fluff. Every part of the description is useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-required-parameter read-only tool, the description plus schema covers both parameters sufficiently: node is named and action values are explained. There is no output schema and the description does not mention return format, which is a minor gap, but it does not prevent an agent from making a correct call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents 'node' as a node name, but 'action' only has an enum with no description. The description compensates by explicitly explaining 'action=syslog' and 'action=journal', so the previously undocumented parameter becomes clear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: 'Read node logs', and further distinguishes two concrete modes (syslog and systemd journal). It does not explicitly differentiate from siblings, but the resource is specific enough that an agent can identify 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool by saying 'Read node logs' and maps each action value to its meaning. However, it gives no explicit guidance about when to prefer this tool over siblings like proxmox_node_info or proxmox_node_task, nor exclusions for cases where a different tool would be better.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxmox_node_network_ifaceNode Network InterfacesB
DestructiveIdempotent

Manage node network interfaces. action=create|update|delete|apply (all elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
mtuNoMTU for the interface
cidrNoCIDR notation (e.g., 192.168.1.10/24)
nodeYesNode name to configure
typeNoInterface type (bridge, bond, vlan, eth, OVSBridge, OVSBond, OVSIntPort, OVSPort)
ifaceNoInterface name (e.g., vmbr0, bond0, eth0.100)
actionYes
deleteNoComma-separated list of properties to delete
digestNoConfiguration digest
methodNoIP configuration method (static, dhcp, manual)
revertNoRevert pending changes instead of applying
addressNoIPv4 address
commentNoInterface comment/description
gatewayNoDefault gateway
netmaskNoIPv4 netmask
vlan-idNoVLAN ID
autostartNoStart interface on boot
bond_modeNoBond mode (e.g., active-backup, balance-rr)
bridge_fdNoBridge forwarding delay
bridge_stpNoBridge STP setting (on/off)
bond_miimonNoBond MII monitoring interval (ms)
bond_slavesNoBond slave interfaces (comma-separated)
bond_primaryNoBond primary interface
bridge_portsNoBridge ports (e.g., eth0,eth1)
vlan-raw-deviceNoRaw device for VLAN
bond_xmit_hash_policyNoBond transmit hash policy

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the description's 'all elevated' adds a small amount of context about required privileges. However, the description does not disclose behavioral traits such as the fact that 'apply' likely activates pending network changes and could disrupt connectivity, or that 'delete' is destructive. It does not contradict the annotations, but it also does not add significant behavioral depth beyond them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the resource and action set. It is efficient and avoids redundancy with the schema. The 'all elevated' note is brief but useful. It could arguably include more behavioral context, but as a concise statement it earns a 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (25 parameters, multiple actions, destructive potential), the description is minimal. The schema covers parameter semantics well, and the action enum is present, but the description does not explain the workflow (e.g., create/update then apply, or revert for rollback). With no output schema and no explicit usage guidance, an agent may not fully understand the operational sequence. This is adequate but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 96%, so the schema already documents nearly all parameters. The description adds no parameter-level meaning beyond the action list, which is already in the schema enum. Baseline 3 is appropriate because the schema carries the heavy lifting and the description does not need to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('Manage') and resource ('node network interfaces'), and enumerates the four actions (create|update|delete|apply). It distinguishes itself from sibling tools by targeting node network interfaces specifically, though it doesn't explicitly name a sibling alternative. The action enum in the schema reinforces the purpose, so the description is clear but relies partly on the schema for full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by listing actions and noting 'all elevated', but it does not explicitly state when to use this tool versus alternatives like proxmox_node_config or proxmox_guest_network. It provides no exclusions or conditions for choosing this tool. The 'all elevated' note gives some context about privilege requirements, but the guidance is mostly implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxmox_node_powerNode Power ControlB
Destructive

Node power control. action=shutdown|reboot|wakeonlan (all elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name
actionYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, which covers the mutating nature of shutdown/reboot. The description adds the important detail that all actions require elevated privileges ('all elevated'), which is not in the annotations. However, it does not disclose other behavioral aspects like whether wakeonlan requires the node to be off, whether actions are synchronous, or if there are side effects on running guests. Since annotations cover the destructive nature, the added elevation note is useful but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loaded with the core purpose. It uses minimal punctuation and packs the action list and elevation note into a terse phrase. It contains no fluff or filler. While not perfectly structured (it's a fragment, not a full sentence), it is efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no output schema, the description should hint at what the operation returns (e.g., task ID, success status) but does not. It also fails to clarify that this is for physical nodes (not VMs) compared to many guest power siblings, and it doesn't explain prerequisites like wakeonlan requiring the node to be powered off or network configuration. For a tool with a large sibling set and no output schema, the description is incomplete and could mislead an agent on usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50%: the 'node' parameter is described as 'Node name', but 'action' has only an enum without a description. The tool description repeats the action enum values in parentheses ('shutdown|reboot|wakeonlan'), which does not add semantic meaning beyond the enum itself. It does not compensate for the missing action description or clarify any nuances (e.g., whether wakeonlan only applies to bare-metal nodes). Thus it adds little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('control') and resource ('node power'), and enumerates the specific actions (shutdown, reboot, wakeonlan). It is distinct from guest-level power tools by the explicit 'node' qualifier, though it doesn't explicitly contrast with proxmox_guest_reboot etc. This makes the purpose clear enough for an agent to differentiate from the majority of siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly indicates this tool is for physical node power operations, but it provides no explicit guidance on when to use it versus the many guest power tools (proxmox_guest_reboot, proxmox_guest_shutdown) or other node tools. It doesn't mention alternatives or exclusions, leaving the agent to infer based on the name. The context is clear enough that an agent could guess, but it lacks direct routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxmox_node_replicationNode ReplicationA

Manage node replication. action=status|log: query | action=schedule: trigger now (elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesReplication job ID
nodeYesNode name
actionYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations are all false, so they do not reveal that status/log are read-only queries while schedule is a side-effectful trigger requiring elevation. The description adds exactly this action-specific behavioral context, which is valuable; the elevated note is somewhat vague but sufficient as a warning.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The whole definition is one compact sentence with a front-loaded resource statement and a dense action mapping; there is no padding or redundant parameter repetition. The pipe notation is terse but readable and every phrase contributes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-required-parameter tool with no output schema, the description covers action semantics and privilege context, which is sufficient for a basic call. However, it does not describe return values or outcomes for schedule, nor explicitly differentiate from cluster_replication_job, leaving some ambiguity for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%: node and id are already described, but action has only an enum. The description compensates by explaining what each action value means and signaling that schedule is the privileged/mutating one. It adds meaning beyond the schema for the least-documented parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete resource, node replication, and maps each action to its behavior (query vs. trigger), so an agent can see what the tool does beyond the generic title. It does not explicitly contrast with the sibling proxmox_cluster_replication_job, but the node-scoped name and action mapping make the purpose reasonably distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'action=status|log: query | action=schedule: trigger now' gives clear conditional guidance at the action level and flags when elevated privileges are relevant. However, it never states when to prefer this tool over proxmox_cluster_replication_job or when not to use it, so alternative selection is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxmox_node_serviceNode ServicesA
Destructive

Manage node services. action=list: list services | action=control: start/stop/restart a service (elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name
actionYes
commandNoService command
serviceNoService name (e.g., pveproxy, ssh, pvedaemon)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag the operation as non-read-only and destructive, so the description's main contribution is specifying that control actions require elevated privileges. It helpfully separates the read-only 'list' mode from the mutating 'control' mode, but does not elaborate on effects such as service disruption or failure states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single tight sentence that front-loads the tool's purpose and uses compact action groupings to cover both modes. Every phrase carries useful information, with no filler or redundant restatement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a moderately complex tool with two branching actions{tabular} and a destructive hint, the description covers the basic semantics but omits conditional parameter dependencies (e.g., control requires command and service) and expected output or error behavior. It is adequate for initial selection but not fully self-sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 75%, so the schema already documents most parameters. The description adds value by explicitly tying 'control' to 'start/stop/restart' and noting elevated access, but it does not explain the conditional requirement that command and service are likely needed only when action=control.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource ('node services') and enumerates the two action modes: listing services and controlling a service via start/stop/restart. This makes it distinct from sibling tools like proxmox_node_power or proxmox_node_config, as 'service' is explicitly scoped.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives, nor are any sibling tools named. The description implies usage through the action modes, but there is no explicit 'use this for X, not Y' direction, leaving the agent to infer selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxmox_node_subscriptionNode SubscriptionA
DestructiveIdempotent

Manage node subscription. action=get: get info | action=set: set key (elevated) | action=delete: remove (elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNoSubscription key
nodeYesNode name
actionYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true. The description adds meaningful context by marking set/delete as requiring elevated privileges and by spelling out that delete 'removes' the subscription key, going beyond what the 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured line that front-loads the purpose and uses pipe-separated action mappings for readability. Every word contributes, with no filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The three actions are explained and annotations cover destructiveness and idempotency. However, the description does not state what 'get info' returns, whether a 'set' replaces an existing key, or what side effects 'delete' has beyond removal. For a mutable tool with a destructive action, more effect-level detail would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover node and key but not the action parameter. The description maps each enum value to a plain-language operation ('get info', 'set key', 'remove') and notes elevation requirements, adding real semantic value beyond the schema's bare enum list.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource ('node subscription') and enumerates concrete operations ('get info', 'set key', 'remove'). Sibling tools all relate to different resources, so there is no confusion, though the verb 'Manage' is generic and no explicit sibling contrast is made.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives, and does not state prerequisites or conditions for each action. The only usage hint is the word 'elevated' for set/delete, which is a permission note rather than situational guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxmox_node_taskNode TasksA
Read-only

Query node tasks. action=list: list recent tasks | action=get: get task details by UPID

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNode name
upidNoTask UPID
actionYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, and the description's 'Query' wording is consistent with that. It adds the useful distinction that list returns recent tasks and get requires a UPID, but it does not disclose pagination, result shape, or any rate-limit/auth caveats. This is acceptable 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one compact, scannable line that front-loads the resource and then uses a pipe-separated action mapping. There is no filler or needless repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a small read-only query tool with only three parameters, the description plus schema covers the essential call decisions: which node, which action, and that get needs a UPID. The missing pieces are minor, such as pagination for list and output shape, and the read-only annotation removes the need for safety caveats. It is complete enough to invoke correctly, though explicit sibling routing would make it a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema documents node and upid but leaves the action enum values semantically undeclared; the description fills that gap by mapping list -> recent tasks and get -> task details by UPID. It also implies upid is relevant for get, which is useful beyond the raw schema. It does not describe the UPID format, but that is a minor omission.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Query') and resource ('node tasks'), then breaks out the two action modes: list recent tasks and get task details by UPID. It is clear what the tool operates on, but it does not explicitly distinguish itself from sibling tools like proxmox_node_log, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to prefer this tool over siblings such as proxmox_node_log, nor any exclusions or context like 'use for task history instead of logs'. The only usage direction is the action mapping, which helps select list vs get but does not help choose between this tool and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxmox_notificationNotification TargetsC
Destructive

Manage notification targets. action=list|get: query targets | action=create|delete|test: manage targets (requires elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
fromNoSender email address
modeNoSMTP encryption mode
nameNoNotification target name
portNoSMTP server port (for smtp type)
tokenNoGotify API token (for gotify type)
actionYesList all notification targets
authorNoAuthor name
mailtoNoRecipient email address
serverNoSMTP server address (for smtp type)
commentNoComment
disableNoDisable this target
passwordNoSMTP password (for smtp type)
usernameNoSMTP username (for smtp type)
mailto-userNoRecipient user
target_typeNoNotification target type

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint=true and readOnlyHint=false, but the description adds the 'requires elevated' permission note for create/delete/test, which is beyond annotations and useful. It also implies list/get are read-only by labeling them 'query targets'. However, it doesn't detail the consequences of delete (permanence), or what test does (sends a test notification), which 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence that front-loads the core action groups and the elevated permission note. It is efficient and not verbose, earning a high score for conciseness, though it could be slightly more structured (e.g., bullet points) without adding length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 15 parameters and 5 possible actions, the description is too brief to be considered complete. It does not explain which parameters are required for each action or how target_type (smtp/gotify/sendmail) alters parameter usage. There is no output schema, so the description alone must guide the agent, but it leaves too much to inference. It is not self-contained for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the schema has 100% description coverage, the description itself does not map parameters to specific actions or target types. The schema's 'action' description is misleading ('List all notification targets' only covers the 'list' action, not all five). The main description does not clarify which parameters apply to which action (e.g., server/port only for smtp, token for gotify). The agent would need to infer usage, which is a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource (notification targets) and the primary verb (manage), and enumerates the specific actions (list, get, create, delete, test). This distinguishes it from other Proxmox tools which target different resources. However, it could be more explicit about the types of targets (smtp, gotify, sendmail) and that this is specific to notification configuration, which is implied but not stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description separates query actions (list/get) from management actions (create/delete/test) and notes elevated permissions for the latter, but it provides no guidance on when to choose this tool over other tools (e.g., proxmox_user, proxmox_group, etc.). It lacks explicit alternatives or exclusions. The usage context is only internal to the tool's actions, not comparative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxmox_poolResource PoolsC
DestructiveIdempotent

Manage resource pools (list, get, create, update, delete)

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
deleteNoList of settings to delete
digestNoConfig digest
poolidNoPool identifier
commentNoPool description

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already communicate that this is not read-only, is potentially destructive, and is idempotent. The description adds the action list, but this mainly restates the schema's action enum and does not explain side effects, required permissions, or what a delete actually removes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. It names the resource and the supported actions in a compact, scannable format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a multi-action CRUD tool with one required parameter only, no output schema, and many sibling tools, this description is too thin to fully support correct invocation. It does not explain action-to-parameter relationships, required fields per action, or what the tool returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides descriptions for the main parameters, with about 80% coverage, so the baseline is 3. The description adds no parameter-level meaning and does not clarify which parameters are required for each action or how the 'delete' parameter relates to the 'delete' action.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb ('Manage'), names the resource ('resource pools'), and enumerates the exact operations (list, get, create, update, delete). This gives the agent a solid understanding of what the tool does. It stops short of a 5 because it does not explicitly distinguish this from similar sibling tools such as proxmox_ceph_pool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use proxmox_pool versus related tools, nor any prerequisites or per-action conditions. The phrase 'Manage resource pools' implies a general use case but does not state when an agent should select 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.

proxmox_roleRolesC
DestructiveIdempotent

Manage Proxmox roles (list, create, update, delete)

ParametersJSON Schema
NameRequiredDescriptionDefault
privsNoComma-separated privileges
actionYes
appendNoAppend privileges instead of replacing
deleteNoList of settings to delete
digestNoConfig digest
roleidNoRole identifier
commentNoRole comment

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare destructiveHint=true and readOnlyHint=false, so the description's 'delete' action adds little behavioral context. The description does not disclose effects such as whether updating with append=false replaces privileges, or whether deleting a role impacts existing ACLs, users, or groups.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, scannable sentence that front-loads the resource and its operation surface. It contains no wasted words, though it is so terse that it sacrifices useful context that could have been included without making the description overly long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The input schema plus annotations provide enough structured detail for a basic invocation, especially given the high parameter documentation coverage. However, the description is sparse: it omits when role management is appropriate, how roles relate to privileges and users, and the nuances of destructive operations, leaving selection and safe usage partially underspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high at 86%, so the schema already documents most parameters like roleid, privs, append, digest, and comment. The description does not add parameter-level meaning, but high schema coverage makes this acceptable and lands at the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the resource, Proxmox roles, and enumerates the available operations: list, create, update, delete. This is clear enough to distinguish 'roles' from sibling resources like users, groups, or ACLs. The umbrella verb 'Manage' is somewhat generic, but the parenthetical supplies concrete action verbs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool rather than related tools such as proxmox_acl, proxmox_user, or proxmox_group. There are no explicit usage conditions, prerequisites, or alternative references, so an agent must infer the intended use case from the tool name and schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxmox_sdn_controllerSDN ControllersC
DestructiveIdempotent

Manage SDN controllers (list, get, create, update, delete)

ParametersJSON Schema
NameRequiredDescriptionDefault
ipNoController IP address
portNoController port
typeNoController type
zoneNoAssociated SDN zone
tokenNoAccess token
actionYes
deleteNoComma-separated list of options to delete
digestNoPrevent concurrent modifications
secretNoShared secret
commentNoComment or notes
controllerNoSDN controller identifier

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare destructiveHint=true and readOnlyHint=false, and the description is consistent with them since it includes create/update/delete. However, the description adds no behavioral context beyond the action list already present in the schema—no side effects, no explanation of what gets modified or destroyed, and no auth or precondition details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short, front-loaded sentence with no filler or off-topic content. The parenthetical action list is somewhat redundant with the schema's action enum, but it is compact and helps an agent quickly understand the tool's scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given five actions and eleven parameters, the description is thin: it does not indicate which parameters apply to which action, what the return values are, or what side effects each operation has. The rich schema coverage and the destructive/idempotent annotations partially compensate, making the tool minimally usable but not fully specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 91%, so the schema already documents nearly every parameter. The description does not mention or elaborate on any parameter, so it adds no meaning beyond what the input schema provides. The baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses 'Manage SDN controllers' and explicitly enumerates all five operations (list, get, create, update, delete), so an agent can tell it is a CRUD endpoint for the controller resource. The resource noun 'SDN controllers' distinguishes it from sibling tools like proxmox_sdn_subnet, proxmox_sdn_vnet, and proxmox_sdn_zone. The verb 'Manage' is generic, but the action list removes most ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement about when to use this tool versus alternatives, nor any conditions, prerequisites, or action-selection guidance. The only usage signal is the resource name itself, which is implied rather than explicitly stated as a rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxmox_sdn_subnetSDN SubnetsB
DestructiveIdempotent

Manage SDN subnets (list, get, create, update, delete)

ParametersJSON Schema
NameRequiredDescriptionDefault
dnsNoDNS servers list
mtuNoMTU value
cidrNoCIDR range (e.g., 10.0.0.0/24)
dhcpNoEnable DHCP
ipamNoIPAM plugin
snatNoEnable source NAT
vnetNoAssociated SDN VNet
actionYes
deleteNoComma-separated list of options to delete
digestNoPrevent concurrent modifications
subnetNoSDN subnet identifier
commentNoComment or notes
gatewayNoGateway IP address

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already convey readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the description does not need to restate those. It adds no extra behavioral context such as prerequisites, cascading effects, or operation-specific side effects, but it also does not contradict 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence front-loads the resource and lists all supported operations with no filler. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter, five-action CRUD tool with no output schema, this description is too thin. It never explains which parameters are required for create/update/delete, what list/get return, or any per-action constraints, leaving the agent to infer critical invocation details from the schema alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 92% and most parameters are documented in the input schema. The description adds no parameter-level meaning beyond echoing the action enum, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource 'SDN subnets' and enumerates the five CRUD operations, which distinguishes it from sibling SDN tools like proxmox_sdn_vnet and proxmox_sdn_zone. However, 'manage' is a generic umbrella verb rather than a specific action; the parenthetical carries the actual specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus related SDN tools, nor which action is appropriate in a given scenario. The only usage signal is the implicit resource name, which is insufficient for a polymorphic CRUD tool with multiple sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxmox_sdn_vnetSDN Virtual NetworksC
DestructiveIdempotent

Manage SDN virtual networks (list, get, create, update, delete)

ParametersJSON Schema
NameRequiredDescriptionDefault
macNoMAC address
mtuNoMTU value
tagNoVLAN tag
ipamNoIPAM plugin
typeNoVNet type
vlanNoVLAN ID
vnetNoSDN VNet identifier
zoneNoSDN zone identifier
aliasNoAlias/description
vxlanNoVXLAN ID
actionYes
deleteNoComma-separated list of options to delete
digestNoPrevent concurrent modifications
commentNoComment or notes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the description doesn't need to restate those. However, it adds no additional behavioral context—no mention of side effects (e.g., deleting a vnet may affect subnets), concurrency via digest, or authorization needs. It simply lists actions already present in the schema enum, providing zero 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no filler. It front-loads the resource type and enumerates actions efficiently. While the action list is redundant with the schema, the brevity keeps it scannable. It could be slightly longer to add context, but as written it's appropriately sized for a CRUD tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 14 parameters and 5 actions, the description provides no operational context. It doesn't explain which parameters are relevant per action, that 'action' is required, or that some parameters are mutually exclusive. There is no output schema, so the description should compensate by describing expected behavior, but it doesn't. The tool is far from self-contained for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 93%, so the baseline is 3. The description does not add any parameter-specific meaning beyond what the schema provides. For example, it doesn't clarify that 'vnet' and 'zone' are required for create/update, or that 'delete' is a special parameter. Since coverage is high, this is acceptable but not enhanced.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the resource type ('SDN virtual networks') and lists the CRUD actions explicitly, which clearly distinguishes it from sibling tools like proxmox_sdn_subnet and proxmox_sdn_zone. It's specific enough for an agent to know what it operates on, though it could mention the resource is part of Proxmox's SDN stack.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus the many sibling SDN tools (subnet, zone, controller). It doesn't state prerequisites (e.g., requiring a zone) or indicate that 'list'/'get' are read-only while others mutate. The agent must infer usage from the schema alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxmox_sdn_zoneSDN ZonesB
DestructiveIdempotent

Manage SDN zones (list, get, create, update, delete)

ParametersJSON Schema
NameRequiredDescriptionDefault
mtuNoMTU value
tagNoVLAN tag
ipamNoIPAM plugin
typeNoZone type (simple, evpn, vxlan, etc.)
zoneNoSDN zone identifier
nodesNoNodes list (comma-separated)
vxlanNoVXLAN ID
actionYes
bridgeNoBridge name
deleteNoComma-separated list of options to delete
digestNoPrevent concurrent modifications
commentNoComment or notes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds no behavioral context beyond the annotations. Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true. The description merely says 'Manage' without elaborating on side effects, permission requirements, or what happens during destructive actions like delete. No contradiction exists, but no value is added.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the resource and actions. It is concise without being under-specified, though it could benefit from a bit more structure to separate usage guidance from purpose. Overall, it is appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a multi-action management tool with 12 parameters and no output schema, yet the description gives no guidance on how actions differ or which parameters apply to which action. It also lacks usage context. While the schema covers parameter details, the description fails to explain action-specific behavior or when to use each action, leaving the agent under-informed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high (92%), so the schema already documents all parameters. The description does not mention any parameters or add meaning beyond what the schema provides. According to the calibration, a baseline of 3 is appropriate when schema coverage is high.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource (SDN zones) and enumerates the supported actions (list, get, create, update, delete). This distinguishes it from sibling tools like proxmox_sdn_vnet or proxmox_sdn_subnet, making the tool's scope immediately apparent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or conditions that would lead an agent to choose this tool over other SDN-related tools. The only hint is the resource name, which is implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxmox_storage_configStorage ConfigurationC
DestructiveIdempotent

Manage storage configurations (list, get, create, update, delete, cluster_usage)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeNoNode name
pathNoFilesystem path for directory storage
poolNoPool name for Ceph/RBD/ZFS
typeNoStorage type
nodesNoLimit storage to specific nodes
shareNoCIFS share name
actionYes
deleteNoList of settings to delete
digestNoConfig digest
domainNoCIFS domain
exportNoNFS export path
fsnameNoCephFS filesystem name
portalNoiSCSI portal address
serverNoRemote server hostname or IP
sharedNoMark storage as shared
targetNoiSCSI target
vgnameNoLVM volume group name
contentNoContent types (comma-separated)
disableNoDisable storage
keyringNoCeph keyring path
monhostNoCeph monitor hosts
optionsNoAdditional mount options
storageNoStorage identifier
maxfilesNoMax backup files
passwordNoPassword for remote storage
thinpoolNoLVM thin pool name
usernameNoUsername for remote storage
smbversionNoCIFS SMB version
prune-backupsNoPrune options for backups

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=true, and the description adds no new behavioral context beyond what the schema's action enum already shows. It does not explain what deletion destroys, whether changes require special permissions, or how actions affect cluster storage availability.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no filler, and the action list is front-loaded in parentheses. It is appropriately compact, though it sacrifices operational detail for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 29-parameter, multi-action, destructive tool with no output schema, the description is too thin. It does not explain action-specific parameter requirements, how create/update/delete differ, or what a successful response looks like, leaving significant gaps for an agent deciding how to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 97%, so the schema already documents nearly all 29 parameters. The description adds no parameter-level meaning and does not map specific parameters to specific actions, but the high schema coverage keeps this at the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the resource as 'storage configurations' and enumerates the supported operations: list, get, create, update, delete, cluster_usage. This makes the tool's scope reasonably clear and distinguishes it from siblings like proxmox_storage_content, though it does not name any sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool instead of alternatives, no mention of prerequisites, and no action-specific selection criteria. The action list implies possible uses, but the description never states when each action is appropriate or when another tool should be chosen.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxmox_storage_contentStorage ContentC
Destructive

Manage storage content (list, list_templates, upload, download_url, delete, prune)

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoSource URL
nodeYesNode name
typeNoFilter by guest type
vmidNoFilter by VMID
actionYes
volumeNoVolume identifier (volid)
contentNoFilter by content type
dry-runNoOnly simulate pruning
storageYesStorage identifier
checksumNoChecksum value
filenameNoFilename to upload
keep-lastNoKeep last N backups
keep-dailyNoKeep daily backups
keep-hourlyNoKeep hourly backups
keep-weeklyNoKeep weekly backups
keep-yearlyNoKeep yearly backups
keep-monthlyNoKeep monthly backups
prune-backupsNoPrune options string
checksum-algorithmNoChecksum algorithm
verify-certificatesNoVerify TLS certificates

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal readOnlyHint=false and destructiveHint=true, so the description adds little behavioral context beyond what is structured. It does not explain that delete permanently removes volumes, prune follows retention rules, upload may overwrite existing content, or that download_url fetches from a remote source.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The one-line description is compact but under-specified for a tool with six actions and twenty parameters. It lacks any structure separating read operations from destructive ones or grouping action-specific parameters, so the brevity is not earned.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex multi-action tool with no output schema, this description is far from complete. It never explains action-specific required parameters, retention/prune behavior, upload requirements, or what the operation returns, leaving the agent to discover critical details from the schema and action enum alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 95%, so the parameters are largely self-documented. The description contributes no parameter semantics, which matches the baseline, but it also does not help the agent understand which parameters apply to which action.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (storage content) and lists six operation verbs, so the agent can tell this is a content-management dispatcher. However, it relies on the broad verb 'Manage' and gives no detail about what each action does, and it does not distinguish the tool from siblings like proxmox_storage_config or proxmox_file_restore.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, nor when to choose one action over another. The action list is implied usage at best, but the description never states conditions, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxmox_userUsersB
DestructiveIdempotent

Manage Proxmox users (list, get, create, update, delete)

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoEmail address
actionYes
appendNoAppend groups instead of replacing
deleteNoList of settings to delete
digestNoConfig digest
enableNoEnable user account
expireNoAccount expiration (epoch seconds)
groupsNoComma-separated group IDs
useridNoUser ID with realm (e.g., root@pam)
commentNoUser comment
lastnameNoLast name
passwordNoUser password
firstnameNoFirst name

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose the destructive and non-read-only nature of the tool, and the description's action list includes 'delete', which aligns with those annotations. No additional behavioral context is provided, such as permission requirements, permanence of deletion, or realm-specific behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence that front-loads the resource and enumerates all supported actions. There is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a multi-action CRUD tool with 13 parameters and no output schema, yet the description gives no action-specific guidance. For example, it does not state that 'get', 'update', and 'delete' likely require 'userid', or which parameters are relevant to 'create'. The schema documents individual fields but not the per-action invocation requirements, leaving important gaps for correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 92%, so the input schema handles most parameter semantics. The description itself adds no parameter-level meaning and does not clarify which parameters apply to which action, but the high schema coverage makes this acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource ('Proxmox users') and the supported operations ('list, get, create, update, delete'). It is clear enough to identify the tool's purpose, though it does not explicitly differentiate it from closely related sibling tools like proxmox_user_token or proxmox_group.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. The intended use is only implied by the resource name and action list, so an agent receives little help selecting between this and related user/role/group tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxmox_user_tokenAPI TokensA
DestructiveIdempotent

Manage user API tokens (list, get, create, update, delete)

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
expireNoToken expiration (epoch seconds)
useridYesUser ID with realm (e.g., root@pam)
commentNoToken comment
privsepNoPrivilege separation
tokenidNoToken ID

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, covering the mutating/destructive nature. The description lists delete and update actions, which aligns with these annotations. However, it adds no extra behavioral context beyond what annotations and the schema's action enum already provide, such as potential side effects 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose and lists actions. It contains no fluff or redundancy. It could be slightly more informative, but it is appropriately sized and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is thin for a multi-action tool. It does not explain which parameters are required per action (e.g., tokenid for update/delete), or that userid and action are always required. There is no mention of return values or error conditions. Given the absence of an output schema, the description fails to provide enough context for an agent to correctly invoke all actions without guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 83% (5 of 6 parameters have descriptions), so the schema already documents most parameters. The description only repeats the action enum values without clarifying action-specific parameter requirements (e.g., that tokenid is needed for get/update/delete). It adds marginal value over the schema, meeting the baseline of 3 for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Manage user API tokens' and enumerates the supported actions (list, get, create, update, delete). This distinguishes it from sibling tools like proxmox_user (which manages user accounts) and proxmox_acl (permissions). The verb 'manage' combined with the resource 'user API tokens' makes the intent unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to choose this tool over alternatives. While the resource name makes it obvious that it's for tokens, there is no mention of exclusions (e.g., 'use proxmox_user for user accounts') or conditions for using specific actions. Usage is implied from the name and the action list, 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.

proxmox_vm_diskVM DisksB
Destructive

Manage VM disks. action=add: add disk | action=remove: remove disk (all elevated)

ParametersJSON Schema
NameRequiredDescriptionDefault
diskYesDisk name (e.g., scsi1, virtio1, sata1, ide1)
nodeYesNode name where VM is located
sizeNoDisk size in GB (e.g., 10)
vmidYesVM ID number
actionYes
storageNoStorage name (e.g., local-lvm)

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, so the destructive nature is known. The description adds 'all elevated' hinting at required privileges, which is a small extra. It doesn't disclose potential data loss or irreversible effects, but given annotation coverage, it adds minimal context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise line with no fluff. It front-loads the action list, but it is under-specified rather than over-long. Efficiency is good, though it sacrifices necessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with 6 parameters and no output schema, the description is far too sparse. It lacks information about the effect of removal, prerequisites, what 'elevated' entails, or how the operation interacts with the VM. The description does not adequately prepare an agent to use this tool safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 83%, so most parameters are already described. The description only restates the action enum, which is already in the schema, and adds nothing about size, storage, or disk naming beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it manages VM disks and explicitly lists the two actions (add/remove), which gives a clear verb-resource pair. However, it doesn't distinguish from sibling tools like proxmox_guest_disk_resize or proxmox_guest_disk_move, so the scope is not fully differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists the actions but provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, typical use cases, or conditions that would select this tool over disk resize/move or other disk-related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 92 tool updatesv1.3.0
    • Changedproxmox_acl1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_acme_account1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_acme_cert1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_acme_info1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Addedproxmox_agent_exec
    • Addedproxmox_agent_file
    • Addedproxmox_agent_freeze
    • Addedproxmox_agent_hw
    • Changedproxmox_agent_info1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_agent_power1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_agent_user1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_apt1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Addedproxmox_backup
    • Addedproxmox_ceph
    • Addedproxmox_ceph_fs
    • Changedproxmox_ceph_mds1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_ceph_mon1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Addedproxmox_ceph_osd
    • Changedproxmox_ceph_pool1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_certificate1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_cloudinit1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Addedproxmox_cluster
    • Addedproxmox_cluster_backup_job
    • Addedproxmox_cluster_config
    • Addedproxmox_cluster_firewall
    • Addedproxmox_cluster_firewall_alias
    • Changedproxmox_cluster_firewall_group1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Addedproxmox_cluster_firewall_ipset
    • Addedproxmox_cluster_firewall_ipset_entry
    • Changedproxmox_cluster_firewall_rule1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_cluster_replication_job1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Addedproxmox_console_spice
    • Addedproxmox_console_term
    • Changedproxmox_console_vnc1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_create_lxc1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_create_vm1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Addedproxmox_domain
    • Changedproxmox_file_restore1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Addedproxmox_get_next_vmid
    • Addedproxmox_group
    • Changedproxmox_guest_clone1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Addedproxmox_guest_config
    • Addedproxmox_guest_config_update
    • Changedproxmox_guest_delete1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_guest_disk_move1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_guest_disk_resize1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_guest_feature1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Addedproxmox_guest_firewall_rule
    • Changedproxmox_guest_list1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_guest_migrate1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_guest_network1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_guest_pause1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_guest_pending1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_guest_reboot1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_guest_resize1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_guest_resume1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_guest_rrddata1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_guest_shutdown1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_guest_snapshot1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_guest_start1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Addedproxmox_guest_status
    • Changedproxmox_guest_stop1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_guest_template1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_ha_group1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Addedproxmox_ha_resource
    • Changedproxmox_lxc_exec1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_lxc_mountpoint1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Addedproxmox_node
    • Changedproxmox_node_bulk1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Addedproxmox_node_config
    • Changedproxmox_node_disk1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_node_disk_admin1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_node_info1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_node_log1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Addedproxmox_node_network_iface
    • Changedproxmox_node_power1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_node_replication1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_node_service1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_node_subscription1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Addedproxmox_node_task
    • Changedproxmox_notification1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Addedproxmox_pool
    • Changedproxmox_role1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_sdn_controller1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_sdn_subnet1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedproxmox_sdn_vnet1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Addedproxmox_sdn_zone
    • Addedproxmox_storage_config
    • Addedproxmox_storage_content
    • Addedproxmox_user
    • Addedproxmox_user_token
    • Addedproxmox_vm_disk
  2. 36 tool updatesv1.2.2
    • Removedproxmox_agent_exec
    • Removedproxmox_agent_file
    • Removedproxmox_agent_freeze
    • Removedproxmox_agent_hw
    • Removedproxmox_backup
    • Removedproxmox_ceph
    • Removedproxmox_ceph_fs
    • Removedproxmox_ceph_osd
    • Removedproxmox_cluster
    • Removedproxmox_cluster_backup_job
    • Removedproxmox_cluster_config
    • Removedproxmox_cluster_firewall
    • Removedproxmox_cluster_firewall_alias
    • Removedproxmox_cluster_firewall_ipset
    • Removedproxmox_cluster_firewall_ipset_entry
    • Removedproxmox_console_spice
    • Removedproxmox_console_term
    • Removedproxmox_domain
    • Removedproxmox_get_next_vmid
    • Removedproxmox_group
    • Removedproxmox_guest_config
    • Removedproxmox_guest_config_update
    • Removedproxmox_guest_firewall_rule
    • Removedproxmox_guest_status
    • Removedproxmox_ha_resource
    • Removedproxmox_node
    • Removedproxmox_node_config
    • Removedproxmox_node_network_iface
    • Removedproxmox_node_task
    • Removedproxmox_pool
    • Removedproxmox_sdn_zone
    • Removedproxmox_storage_config
    • Removedproxmox_storage_content
    • Removedproxmox_user
    • Removedproxmox_user_token
    • Removedproxmox_vm_disk
  3. 92 tool updatesv1.2.1
    • First observedproxmox_acl
    • First observedproxmox_acme_account
    • First observedproxmox_acme_cert
    • First observedproxmox_acme_info
    • First observedproxmox_agent_exec
    • First observedproxmox_agent_file
    • First observedproxmox_agent_freeze
    • First observedproxmox_agent_hw
    • First observedproxmox_agent_info
    • First observedproxmox_agent_power
    • First observedproxmox_agent_user
    • First observedproxmox_apt
    • First observedproxmox_backup
    • First observedproxmox_ceph
    • First observedproxmox_ceph_fs
    • First observedproxmox_ceph_mds
    • First observedproxmox_ceph_mon
    • First observedproxmox_ceph_osd
    • First observedproxmox_ceph_pool
    • First observedproxmox_certificate
    • First observedproxmox_cloudinit
    • First observedproxmox_cluster
    • First observedproxmox_cluster_backup_job
    • First observedproxmox_cluster_config
    • First observedproxmox_cluster_firewall
    • First observedproxmox_cluster_firewall_alias
    • First observedproxmox_cluster_firewall_group
    • First observedproxmox_cluster_firewall_ipset
    • First observedproxmox_cluster_firewall_ipset_entry
    • First observedproxmox_cluster_firewall_rule
    • First observedproxmox_cluster_replication_job
    • First observedproxmox_console_spice
    • First observedproxmox_console_term
    • First observedproxmox_console_vnc
    • First observedproxmox_create_lxc
    • First observedproxmox_create_vm
    • First observedproxmox_domain
    • First observedproxmox_file_restore
    • First observedproxmox_get_next_vmid
    • First observedproxmox_group
    • First observedproxmox_guest_clone
    • First observedproxmox_guest_config
    • First observedproxmox_guest_config_update
    • First observedproxmox_guest_delete
    • First observedproxmox_guest_disk_move
    • First observedproxmox_guest_disk_resize
    • First observedproxmox_guest_feature
    • First observedproxmox_guest_firewall_rule
    • First observedproxmox_guest_list
    • First observedproxmox_guest_migrate
    • First observedproxmox_guest_network
    • First observedproxmox_guest_pause
    • First observedproxmox_guest_pending
    • First observedproxmox_guest_reboot
    • First observedproxmox_guest_resize
    • First observedproxmox_guest_resume
    • First observedproxmox_guest_rrddata
    • First observedproxmox_guest_shutdown
    • First observedproxmox_guest_snapshot
    • First observedproxmox_guest_start
    • First observedproxmox_guest_status
    • First observedproxmox_guest_stop
    • First observedproxmox_guest_template
    • First observedproxmox_ha_group
    • First observedproxmox_ha_resource
    • First observedproxmox_lxc_exec
    • First observedproxmox_lxc_mountpoint
    • First observedproxmox_node
    • First observedproxmox_node_bulk
    • First observedproxmox_node_config
    • First observedproxmox_node_disk
    • First observedproxmox_node_disk_admin
    • First observedproxmox_node_info
    • First observedproxmox_node_log
    • First observedproxmox_node_network_iface
    • First observedproxmox_node_power
    • First observedproxmox_node_replication
    • First observedproxmox_node_service
    • First observedproxmox_node_subscription
    • First observedproxmox_node_task
    • First observedproxmox_notification
    • First observedproxmox_pool
    • First observedproxmox_role
    • First observedproxmox_sdn_controller
    • First observedproxmox_sdn_subnet
    • First observedproxmox_sdn_vnet
    • First observedproxmox_sdn_zone
    • First observedproxmox_storage_config
    • First observedproxmox_storage_content
    • First observedproxmox_user
    • First observedproxmox_user_token
    • First observedproxmox_vm_disk

TDQS

C2.8/5.0

Scored across 92 tools

Disambiguation2/5

Multiple tool boundaries are unclear: proxmox_guest_resize (CPU/memory) vs proxmox_guest_disk_resize (storage) are easily confused, and node queries are split across proxmox_node, proxmox_node_info, and proxmox_node_config with overlapping network/DNS actions. Disk operations are also scattered across proxmox_vm_disk and proxmox_guest_disk_*, creating ambiguous choices.

Naming Consistency3/5

Most tools follow a proxmox_<resource>_<action> snake_case pattern, but the set mixes action-in-tool-name (proxmox_guest_start) with action-parameter designs (proxmox_node, proxmox_cluster). There are also outliers like proxmox_create_vm/proxmox_create_lxc (versus the generic proxmox_guest_* Family) and proxmox_get_next_vmid which breaks the resource-first convention.

Tool Count1/5

With 92 tools, this server is far beyond an effective scope and will overwhelm agent tool selection. Even for a full hypervisor-management API, grouping related operations would make the set far more usable.

Completeness4/5

The tool surface is impressively broad and covers most core Proxmox domains: guest lifecycle (creation, start/stop, clone, migrate, template), snapshots, backups, storage, Ceph, SDN, users/ACLs, firewall, HA, and node administration. Minor gaps exist (e.g., no explicit guest rename, backup restore lacks granular options), but common workflows are essentially fully covered.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    An open-source MCP server for managing Proxmox environments, including nodes, virtual machines, and containers. It enables users to perform inventory checks, status monitoring, and control operations directly through MCP-compatible tools.
    115 npm
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    An MCP server for Proxmox VE that enables read-only cluster inspection, VM/container lifecycle operations, snapshots, migration, and provisioning with safe confirmation gates.
    28
    MIT