Skip to main content
Glama
BenjaminDuthe

Proxmox MCP Server

Proxmox MCP Server

License: MIT Python 3.11+ MCP

A Model Context Protocol (MCP) server that enables Claude to manage Proxmox VE infrastructure — VMs, LXC containers, snapshots, storage, and more.

Features

  • Node Management — List cluster nodes, monitor CPU/RAM/disk metrics

  • VM & Container Control — Start, stop, reboot, destroy QEMU VMs and LXC containers

  • Snapshots — Create, list, delete, and rollback snapshots

  • Storage — Browse storage pools and content (ISOs, backups, templates)

  • Task Monitoring — Track Proxmox tasks in real-time

  • SSH Access — Execute commands directly on Proxmox host

  • User Management — Create, update, delete Proxmox users

  • Guest Agent — Execute commands inside VMs via QEMU Guest Agent

  • Docker Ready — Run as a container with minimal configuration


Related MCP server: ProxmoxEmCP

Quick Start with Docker Compose

Step 1: Clone the repository

git clone https://github.com/BenjaminDuthe/proxmox-mcp.git
cd proxmox-mcp

Step 2: Create your configuration file

cp .env.example .env

Step 3: Edit .env with your Proxmox credentials

Open .env in your editor and replace the placeholder values:

# ⚠️ REQUIRED - Replace these values with your own

PROXMOX_HOST=<YOUR_PROXMOX_IP>           # Example: 192.168.1.10
PROXMOX_PORT=8006                         # Default Proxmox port (usually no change needed)

PROXMOX_TOKEN_ID=<YOUR_TOKEN_ID>          # Example: root@pam!mcp
PROXMOX_TOKEN_SECRET=<YOUR_TOKEN_SECRET>  # Example: a1b2c3d4-e5f6-7890-abcd-ef1234567890

PROXMOX_VERIFY_SSL=false                  # Set to 'true' if you have valid SSL certificates
PROXMOX_TIMEOUT=30

# 📌 OPTIONAL - For SSH access to Proxmox host

PROXMOX_SSH_USER=root
PROXMOX_SSH_KEY_PATH=<PATH_TO_YOUR_SSH_KEY>  # Example: ~/.ssh/id_rsa

📋 Legend:

  • <YOUR_PROXMOX_IP> → Your Proxmox server IP address (e.g., 192.168.1.10)

  • <YOUR_TOKEN_ID> → API token ID created in Proxmox (e.g., root@pam!mytoken)

  • <YOUR_TOKEN_SECRET> → The secret shown when creating the token (UUID format)

  • <PATH_TO_YOUR_SSH_KEY> → Path to your SSH private key (optional, for SSH tools)

Step 4: Generate SSH key (optional, for SSH tools)

If you want to use SSH tools (ssh_execute, ssh_read_file, etc.):

# Generate a dedicated SSH key
ssh-keygen -t ed25519 -f ~/.ssh/id_proxmox_mcp -N "" -C "proxmox-mcp"

# Copy the public key to your Proxmox server
ssh-copy-id -i ~/.ssh/id_proxmox_mcp.pub root@<YOUR_PROXMOX_IP>

Then update .env:

PROXMOX_SSH_KEY_PATH=~/.ssh/id_proxmox_mcp

Step 5: Start with Docker Compose

docker compose up -d

What happens:

  1. Docker builds the proxmox-mcp image from the Dockerfile

  2. The container starts with your .env configuration

  3. SSH key is mounted read-only inside the container

  4. MCP server is ready to receive commands

Step 6: Check it's running

# View logs
docker compose logs

# Expected output:
# proxmox-mcp  | INFO - Configuration loaded: 192.168.1.10:8006
# proxmox-mcp  | INFO - Proxmox client connected
# proxmox-mcp  | INFO - MCP server ready

Step 7: Stop/Restart

# Stop
docker compose down

# Restart (after .env changes)
docker compose up -d --force-recreate

# Rebuild (after code changes)
docker compose up -d --build

Docker Compose File Explained

The docker-compose.yml file:

services:
  proxmox-mcp:
    build: .                    # Build image from local Dockerfile
    image: proxmox-mcp:latest   # Image name
    container_name: proxmox-mcp # Container name

    stdin_open: true            # Keep STDIN open (required for MCP protocol)
    tty: true                   # Allocate pseudo-TTY

    env_file:
      - .env                    # Load environment variables from .env file

    environment:
      # Override SSH key path for container filesystem
      - PROXMOX_SSH_KEY_PATH=/home/mcp/.ssh/id_proxmox_mcp

    volumes:
      # Mount your SSH key inside the container (read-only)
      - ~/.ssh/id_proxmox_mcp:/home/mcp/.ssh/id_proxmox_mcp:ro

    restart: unless-stopped     # Auto-restart on failure

Key points:

  • stdin_open + tty are required because MCP uses stdio for communication

  • .env file is loaded automatically (never committed to git)

  • SSH key is mounted at /home/mcp/.ssh/ (container runs as non-root mcp user)

  • :ro means read-only (security best practice)


Alternative: Run with Docker (without Compose)

# Build the image
docker build -t proxmox-mcp .

# Run with .env file
docker run --rm -it --env-file .env proxmox-mcp

# Run with SSH key mounted
docker run --rm -it \
  --env-file .env \
  -e PROXMOX_SSH_KEY_PATH=/home/mcp/.ssh/id_proxmox_mcp \
  -v ~/.ssh/id_proxmox_mcp:/home/mcp/.ssh/id_proxmox_mcp:ro \
  proxmox-mcp

Alternative: Local Installation (without Docker)

# Install Python package
pip install -e ".[dev]"

# Run MCP server
python -m proxmox_mcp.server

Configuration Reference

Environment Variables

Variable

Description

Required

Default

PROXMOX_HOST

Proxmox server IP or hostname

Yes

PROXMOX_PORT

API port

No

8006

PROXMOX_TOKEN_ID

API token ID (user@realm!token)

Yes*

PROXMOX_TOKEN_SECRET

API token secret (UUID)

Yes*

PROXMOX_USER

Username (alternative to token)

Yes*

PROXMOX_PASSWORD

Password (alternative to token)

Yes*

PROXMOX_VERIFY_SSL

Verify SSL certificate

No

false

PROXMOX_TIMEOUT

Request timeout (seconds)

No

30

PROXMOX_SSH_KEY_PATH

Path to SSH private key

No

PROXMOX_SSH_USER

SSH username

No

root

* Either TOKEN_ID + TOKEN_SECRET OR USER + PASSWORD is required. Token is recommended.

Creating an API Token in Proxmox

  1. Open Proxmox web interface (https://your-proxmox:8006)

  2. Go to DatacenterPermissionsAPI Tokens

  3. Click Add

  4. Fill in:

    • User: root@pam (or your user)

    • Token ID: mcp (or any name you want)

    • Privilege Separation: ⚠️ Uncheck this to inherit user permissions

  5. Click Add

  6. Copy the token secret immediately (shown only once!)

Your token ID will be: root@pam!mcp


Claude Desktop Configuration

Add to your Claude Desktop config file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "proxmox": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "--env-file", "<PATH_TO_PROJECT>/.env",
        "-e", "PROXMOX_SSH_KEY_PATH=/home/mcp/.ssh/id_proxmox_mcp",
        "-v", "<PATH_TO_SSH_KEY>:/home/mcp/.ssh/id_proxmox_mcp:ro",
        "proxmox-mcp"
      ]
    }
  }
}

Replace:

  • <PATH_TO_PROJECT> → Full path to the cloned repository (e.g., /home/user/proxmox-mcp)

  • <PATH_TO_SSH_KEY> → Full path to your SSH private key (e.g., /home/user/.ssh/id_proxmox_mcp)

Option 2: With Python (local install)

{
  "mcpServers": {
    "proxmox": {
      "command": "python",
      "args": ["-m", "proxmox_mcp.server"],
      "cwd": "<PATH_TO_PROJECT>",
      "env": {
        "PROXMOX_HOST": "<YOUR_PROXMOX_IP>",
        "PROXMOX_TOKEN_ID": "<YOUR_TOKEN_ID>",
        "PROXMOX_TOKEN_SECRET": "<YOUR_TOKEN_SECRET>",
        "PROXMOX_VERIFY_SSL": "false"
      }
    }
  }
}

Replace:

  • <PATH_TO_PROJECT> → Full path to the cloned repository

  • <YOUR_PROXMOX_IP> → Your Proxmox server IP

  • <YOUR_TOKEN_ID> → Your API token ID (e.g., root@pam!mcp)

  • <YOUR_TOKEN_SECRET> → Your API token secret


Available Tools

Nodes

Tool

Description

list_nodes

List all cluster nodes with CPU/RAM/disk metrics

get_node_status

Get detailed status of a specific node

Virtual Machines (QEMU)

Tool

Description

list_vms

List all VMs with status and resource usage

get_vm_details

Get full VM configuration

start_vm

Start a VM

stop_vm

Force stop a VM

shutdown_vm

Graceful shutdown (ACPI)

reboot_vm

Reboot a VM

destroy_vm

Permanently delete a VM and its disks

Containers (LXC)

Tool

Description

list_containers

List all LXC containers

get_container_details

Get full container configuration

LXC containers support the same start/stop/shutdown/reboot/destroy operations as VMs.

Snapshots

Tool

Description

list_snapshots

List snapshots of a VM/container

create_snapshot

Create a new snapshot

delete_snapshot

Delete a snapshot

rollback_snapshot

Restore VM/container to a snapshot

Storage

Tool

Description

list_storage

List storage pools with usage stats

get_storage_content

List content (ISOs, backups, images)

Tasks

Tool

Description

list_tasks

List recent Proxmox tasks

get_task_status

Get detailed task status by UPID

SSH (Proxmox Host)

Tool

Description

ssh_execute

Execute command on Proxmox host

ssh_read_file

Read file from Proxmox host

ssh_write_file

Write file to Proxmox host

fix_apt_repos

Fix APT repos for non-subscription

Users

Tool

Description

list_users

List all Proxmox users

get_user

Get user details and tokens

create_user

Create a new user

update_user

Update user properties

delete_user

Delete a user

Guest Agent (VM)

Tool

Description

vm_exec

Execute command inside VM

vm_exec_status

Get async command result

vm_exec_sync

Execute command and wait for result

vm_file_read

Read file from inside VM

vm_file_write

Write file inside VM (protected paths)


Troubleshooting

"Connection refused" error

  • Check that PROXMOX_HOST is correct

  • Verify Proxmox API is accessible: curl -k https://<YOUR_PROXMOX_IP>:8006/api2/json

  • Check firewall rules on Proxmox

"Authentication failed" error

  • Verify PROXMOX_TOKEN_ID format: user@realm!tokenname (e.g., root@pam!mcp)

  • Check token secret is correct (no extra spaces)

  • Ensure "Privilege Separation" is unchecked on the token

SSH tools not working

  • Check SSH key path is correct in .env

  • Verify key is authorized on Proxmox: ssh -i ~/.ssh/id_proxmox_mcp root@<YOUR_PROXMOX_IP>

  • In Docker, ensure the volume mount path matches PROXMOX_SSH_KEY_PATH

Docker: "permission denied" on SSH key

  • Ensure the SSH key file has correct permissions: chmod 600 ~/.ssh/id_proxmox_mcp

  • The container runs as mcp user (UID 1000)


Architecture

src/proxmox_mcp/
├── server.py          # MCP server entry point
├── client.py          # Async Proxmox API client (httpx)
├── ssh_client.py      # Async SSH client (asyncssh)
├── config.py          # Environment-based configuration
├── models.py          # Pydantic models
├── exceptions.py      # Custom exceptions
└── tools/             # Tool implementations
    ├── nodes.py
    ├── vms.py
    ├── containers.py
    ├── snapshots.py
    ├── storage.py
    ├── tasks.py
    ├── ssh.py
    └── users.py

Development

Install dev dependencies

pip install -e ".[dev]"

Run tests

pytest -v --cov=proxmox_mcp

Lint and format

ruff check src/
ruff format src/

Security Notes

  • Never commit .env — It contains sensitive credentials

  • Use API tokens — Prefer tokens over user/password

  • Limit token permissions — Create dedicated tokens with minimal required permissions

  • Protected pathsvm_file_write blocks writes to sensitive files (/etc/shadow, /etc/passwd, etc.)


Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request


License

This project is licensed under the MIT License — see the LICENSE file for details.


Acknowledgments

Available Tools

37 tools
clone_vmA

Clone une VM ou un template QEMU. Crée une nouvelle VM à partir d'une VM source (template ou VM arrêtée). Supporte le choix du nœud cible et du stockage.

ParametersJSON Schema
NameRequiredDescriptionDefault
fullNoClone complet (True, défaut) ou linked clone (False)
nameNoNom de la nouvelle VM (optionnel)
nodeYesNom du nœud source
poolNoPool auquel ajouter la VM (optionnel)
vmidYesID de la VM/template source à cloner
newidYesID de la nouvelle VM (doit être unique)
targetNoNœud cible pour le clone (optionnel, défaut: même nœud)
storageNoStockage cible (optionnel, défaut: même que la source)

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses that cloning works from templates or stopped VMs, and that full/linked clone is controlled by a parameter. However, it does not describe side effects, what happens to the source, or permission requirements. The information is adequate but not comprehensive.

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 concise with two sentences, front-loading the primary action. Every sentence adds value without unnecessary fluff.

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 8 parameters and no output schema, the description covers the main functionality succinctly. It explains the source constraints and supported options. Some details like linked vs full clone are only in schema, but overall it is fairly complete for the 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?

The input schema has 100% description coverage for all 8 parameters. The tool description adds minimal extra meaning beyond what the schema already provides (e.g., mentions clone type and target support but these are also in schema). Baseline 3 is appropriate as the description does not significantly enhance parameter understanding.

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 clones a QEMU VM or template, creating a new VM from a source (template or stopped VM). It specifies support for choosing target node and storage, which distinguishes it from sibling tools like destroy_vm or start_vm.

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 mentions the source must be a template or stopped VM, but does not provide explicit guidance on when to use this tool versus alternatives like create_snapshot or destroy_vm. No 'when not to use' or comparison with siblings.

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

create_snapshotB

Crée un snapshot d'une VM ou conteneur

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNom du snapshot
nodeYesNom du nœud Proxmox
typeYesType: qemu (VM) ou lxc (conteneur)
vmidYesID de la VM/LXC
vmstateNoInclure l'état RAM (VM QEMU uniquement)
descriptionNoDescription du snapshot (optionnel)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided and the description is very minimal, failing to disclose behavioral traits such as whether the snapshot includes VM state, impact on running VMs, required permissions, or side effects.

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

Conciseness3/5

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

The description is short and efficient, but it lacks crucial details that could be added without significantly increasing length.

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 and minimal description, the tool definition provides adequate but incomplete context; it covers basic purpose but misses behavioral and prerequisite 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?

Input schema has 100% coverage with descriptions for all parameters, so the description adds no extra 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.

Purpose5/5

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

The description clearly states 'Create a snapshot of a VM or container', with a specific verb and resource, and it distinguishes itself from sibling tools like delete_snapshot and rollback_snapshot.

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?

No explicit guidance on when to use this tool versus alternatives; usage is implied but no exclusions or alternatives are mentioned.

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

create_userB

Crée un nouvel utilisateur Proxmox

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoAdresse email
enableNoActiver l'utilisateur (défaut: true)
expireNoTimestamp d'expiration (0 = jamais, defaut: 0)
groupsNoGroupes (séparés par des virgules)
useridYesID de l'utilisateur (format: user@realm, ex: admin@pve ou user@pam)
commentNoCommentaire/description
lastnameNoNom
passwordNoMot de passe (requis pour realm pve)
firstnameNoPrénom

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states the basic action. It does not disclose side effects, error conditions, or behavior on duplicate users, falling short for a mutation tool.

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

Conciseness4/5

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

The description is a single sentence with no wasted words. However, it is slightly underspecified for a create tool, but still maintains high 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?

Given the tool has 9 parameters and no output schema or annotations, the description is incomplete. It fails to explain required realms, password requirements, or default values beyond what the schema offers.

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 the baseline is 3. The description adds no extra parameter information beyond what the schema already provides, so the score remains 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?

The description 'Crée un nouvel utilisateur Proxmox' clearly states the tool creates a new Proxmox user, using a specific verb and resource. It distinguishes itself from siblings like delete_user and update_user.

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, nor any prerequisites or constraints (e.g., uniqueness of userid, required realm).

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

delete_snapshotC

Supprime un snapshot d'une VM ou conteneur

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox
typeYesType: qemu (VM) ou lxc (conteneur)
vmidYesID de la VM/LXC
snapnameYesNom du snapshot à supprimer

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist; the description carries full burden. It does not disclose that deletion is irreversible, what happens if the snapshot does not exist, or any required permissions. Only states the basic operation.

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, no wasted words. Efficiently conveys the core purpose.

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

Completeness2/5

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

Lacks information about return values, side effects, and error conditions. No output schema, and the description does not compensate. For a deletion tool, more context (e.g., irreversibility) is expected.

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% with clear parameter descriptions. The tool description adds no extra meaning beyond the schema, so baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action (delete) and resource (snapshot of VM or container). It distinguishes from sibling tools like 'create_snapshot' and 'rollback_snapshot', but could be more explicit about scope (e.g., any snapshot type).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., rollback_snapshot). No context on prerequisites or when deletion is appropriate.

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

delete_userA

Supprime un utilisateur Proxmox. ATTENTION: Action irréversible!

ParametersJSON Schema
NameRequiredDescriptionDefault
useridYesID de l'utilisateur à supprimer (format: user@realm)

TDQS

A3.6/5.0
Behavior3/5

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

Warns of irreversible action, providing some behavioral context beyond no annotations. However, lacks info on permissions, side effects, or 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?

Two concise sentences, no fluff, front-loaded with purpose and critical warning.

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?

Adequate for a simple single-parameter delete tool with full schema coverage. Could mention confirmation or immediate effect, but generally complete.

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

Parameters3/5

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

Schema covers 100% of parameter documentation; the tool description adds no additional meaning beyond the schema's parameter description.

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 the tool deletes a Proxmox user, with specific verb (Supprime) and resource (utilisateur Proxmox). Distinguished from siblings like create_user, update_user.

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 or avoid this tool. Only a warning about irreversibility, no alternatives mentioned.

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

destroy_vmA

DANGER: Supprime définitivement une VM QEMU ou conteneur LXC et ses disques. Action irréversible!

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox
typeNoType: qemu (VM) ou lxc (conteneur)qemu
vmidYesID de la VM/LXC
purgeNoPurger les jobs et configs liés

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses irreversibility and disk deletion, but lacks details on side effects, permissions, or confirmation requirements. With zero annotations, more behavioral context would be beneficial.

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

Conciseness5/5

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

The description is extremely concise: one sentence starting with 'DANGER' for emphasis, no wasted words. It efficiently conveys critical 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 no output schema and no annotations, the description covers the primary action and danger but lacks context on prerequisites, rollback, or task tracking. Adequate for a destructive tool but not fully complete.

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

Parameters3/5

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

Schema coverage is 100%, and the description does not add any additional parameter semantics beyond what is already in the input schema. Baseline score 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 the tool destroys (deletes) a VM or container and its disks, using specific verbs like 'Supprime définitivement' and 'Action irréversible'. It distinguishes from sibling tools like stop_vm, shutdown_vm, clone_vm which do not destroy.

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 strongly implies danger and irreversibility, but does not explicitly state when to use vs alternatives, nor provides exclusions or context. Usage guidance is only implied by the cautionary tone.

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

fix_apt_reposB

Corrige les dépôts APT Proxmox pour les installations sans souscription. Désactive le dépôt enterprise et active le dépôt community no-subscription.

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox
disable_enterpriseNoDésactiver le dépôt enterprise (défaut: true)
enable_no_subscriptionNoActiver le dépôt no-subscription (défaut: true)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It describes the main actions (disable enterprise, enable no-subscription) but lacks details on side effects, required permissions, idempotency, or what happens if repositories are already configured.

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

Conciseness5/5

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

Two sentences, directly stating the action and the two key operations. 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 no output schema, the description does not explain return values or success indicators. It provides enough context for a simple, straightforward tool but lacks information on verification or edge cases.

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 baseline is 3. The description adds no additional meaning beyond mapping the two boolean parameters to the actions. The node parameter is adequately described 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's purpose: fixing Proxmox APT repositories for non-subscription installations by disabling enterprise and enabling no-subscription. This is a specific verb+resource combination and is distinct from all 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 description implies usage for non-subscription setups but provides no explicit guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions.

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

get_container_detailsA

Récupère la configuration complète d'un conteneur LXC: CPU, RAM, disques, réseau, statut

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox
vmidYesID du conteneur

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It describes the output content but does not disclose behavioral traits such as read-only nature, authentication requirements, or rate limits. The description adds some context over the schema but not enough for a higher score.

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

Conciseness5/5

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

The description is a single, efficient sentence listing key aspects of the configuration. No wasted words or unnecessary information.

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?

Given the simplicity of the tool (GET request, two parameters fully documented) and no output schema, the description adequately lists what the response covers. It could be more complete but is satisfactory.

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% (both parameters have descriptions). The description does not add additional meaning to the parameters beyond the schema. Per the guidelines, baseline is 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?

The description clearly states the tool retrieves complete configuration of an LXC container, listing specific components (CPU, RAM, disks, network, status). This distinguishes it from siblings like 'list_containers' (listing containers) and 'get_vm_details' (likely for VMs).

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 fetching detailed container config but does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives among siblings.

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

get_node_statusA

Récupère les métriques détaillées d'un nœud Proxmox: CPU, RAM, disque, version PVE, kernel

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It indicates a read operation (metrics retrieval) with no side effects, but does not disclose response format, potential delays, or required permissions. For a simple metric tool, this is adequate but not rich.

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

Conciseness5/5

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

The description is a single sentence that efficiently conveys purpose and key data points. It is front-loaded with the verb and resource, and every word adds value.

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?

Given the tool's simplicity (one parameter, no output schema), the description covers the essential aspects. However, without an output schema, the agent may need hints on the return structure or units, which are not provided. Still, it is largely complete.

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

Parameters3/5

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

The input schema has 100% coverage for the single required parameter 'node'. The description adds no extra meaning beyond repurposing the parameter name; the schema's description is sufficient. Baseline 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 tool retrieves detailed metrics (CPU, RAM, disk, version, kernel) for a Proxmox node, which distinguishes it from sibling tools that focus on VMs, containers, or storage. The verb 'Récupère' (retrieves) and specific metrics list make the purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies usage for node metrics but does not explicitly state when to use this tool versus alternatives like get_vm_details or get_container_details. No exclusions or prerequisites are mentioned, leaving the agent to infer context.

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

get_storage_contentC

Liste le contenu d'un pool de stockage (images, ISOs, backups, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox
storageYesNom du storage
content_typeNoFiltrer par type (images, iso, vztmpl, backup)

TDQS

C2.9/5.0
Behavior1/5

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

No annotations provided, and the description does not disclose any behavioral traits such as read-only nature, destructive potential, rate limits, or authentication needs. The brief description solely states the purpose without behavioral context.

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

Conciseness4/5

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

The description is a single sentence, very concise. It earns its place by stating the core function, but lacks additional structured details that could enhance usability.

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 3 parameters and no output schema, the description is incomplete. It does not mention the return format, pagination, or any details about the listed content. More context is needed for effective use.

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% with clear descriptions for all three parameters. The description adds no additional meaning beyond the schema, so it meets the baseline 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 verb 'list' and the resource 'content of a storage pool', with examples like images, ISOs, backups. It distinguishes itself from the sibling 'list_storage' which likely lists storage pools themselves.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives (e.g., list_storage, list_vms). No context like prerequisites or limitations.

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

get_task_statusA

Récupère le statut détaillé d'une tâche Proxmox

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox
upidYesID unique de la tâche (UPID)

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so the description bears full burden. It only states it retrieves status, but does not disclose whether it is read-only, requires authentication, has rate limits, or any side effects. Minimal disclosure for a tool that likely queries system state.

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?

Description is a single sentence that directly states the tool's purpose with no unnecessary words. It is concise and 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?

No output schema exists, and the description only mentions 'detailed status' without specifying what fields or format the status includes. For a simple retrieval tool, this is adequate but could be improved by hinting at typical contents (e.g., state, exit status). Lacks mention of error conditions or node connectivity requirements.

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 has 100% coverage with both parameters described (node: 'Nom du nœud Proxmox', upid: 'ID unique de la tâche (UPID)'). The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

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

Purpose5/5

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

Description clearly states 'Récupère le statut détaillé d'une tâche Proxmox' which translates to 'Retrieves the detailed status of a Proxmox task'. Verb 'retrieves' and resource 'detailed status of a Proxmox task' are specific. It distinguishes from sibling list_tasks, which lists tasks, by focusing on a single task's 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?

Usage is implied: to get status of a specific task given node and upid. However, no explicit guidance on when to use vs. alternatives (e.g., after list_tasks) or when not to use. Missing prerequisites like needing to obtain upid from another tool.

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

get_userB

Récupère les détails d'un utilisateur Proxmox

ParametersJSON Schema
NameRequiredDescriptionDefault
useridYesID de l'utilisateur (format: user@realm, ex: admin@pve)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided; description only states basic action, lacking details on side effects, authentication needs, or rate limits. For a read operation, it minimally implies no side effects but no explicit disclosure.

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?

Single sentence, no wasted words. However, conciseness comes at the cost of missing useful context like return value hints.

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 simplicity (1 param, no output schema), the description is minimally adequate but fails to indicate what user details are returned. Gap in completeness for a retrieval 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 coverage is 100%; the description adds no extra meaning beyond the schema's parameter description. Baseline of 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?

Description uses clear verb 'Récupère' (retrieves) and specific resource 'détails d'un utilisateur Proxmox'. It clearly distinguishes from siblings like list_users, create_user, update_user, delete_user.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as list_users. No context on prerequisites or exclusion criteria.

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

get_vm_detailsB

Récupère la configuration complète d'une VM QEMU: CPU, RAM, disques, réseau, statut

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox
vmidYesID de la VM

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, and the description fails to disclose behavioral traits such as the tool being read-only or having no side effects. It only lists the information retrieved, missing essential safety 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 sentence that front-loads the verb and resource, followed by a list of retrieved components. Every word is functional and there is no 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?

Despite lacking an output schema, the description lists key configuration aspects (CPU, RAM, disks, network, status), providing a good understanding of the return value. It is largely complete for a retrieval 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 coverage is 100% as both parameters ('node', 'vmid') are described in the schema. The description adds no new information about parameter meaning beyond the schema, meeting the baseline 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 retrieves the complete configuration of a QEMU VM, listing specific components (CPU, RAM, disks, network, status). This distinguishes it from sibling tools like 'list_vms' (which lists VMs) and 'get_container_details' (for containers).

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 'list_vms' or 'get_container_details'. The description does not include when/when-not to use, leaving the agent to infer context.

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

list_containersA

Liste tous les conteneurs LXC du cluster ou d'un nœud spécifique

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeNoNom du nœud pour filtrer (optionnel)

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided. Description only states behavior (listing) without disclosing prerequisites, permissions, error handling, or response format. Simple operation but still missing transparency for a fully informative description.

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 verb and resource, no redundant words. Efficient and clear.

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 list tool with one optional parameter and no output schema, the description adequately states scope and filter. Could mention that it returns a list or format, but not critical. Slight lack of output info.

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% with one parameter 'node' described as optional filter. Description adds no extra meaning beyond schema. Baseline score of 3 is appropriate.

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

Purpose5/5

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

Description clearly states verb 'Liste' and resource 'conteneurs LXC', with scope 'cluster ou nœud spécifique'. Distinguishable from siblings like list_vms which list VMs.

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?

No explicit when-to-use or when-not-to-use guidance. Implied by name and description, but no comparison with siblings like list_vms or list_nodes. Adequate but lacks explicit direction.

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

list_nodesA

Liste tous les nœuds du cluster Proxmox avec leur statut, utilisation CPU/RAM/disque et uptime

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

The description completely discloses what the tool returns (status, CPU/RAM/disk usage, uptime), which is sufficient for a read-only list operation. No annotations are provided, but the description covers the behavioral aspect adequately.

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 unnecessary words, clearly conveying the tool's action and output. It is front-loaded and efficient.

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?

The description is complete for a list tool with no parameters: it lists all nodes and specifies the details included. It could mention the return format (e.g., array of objects) but is otherwise sufficient. There is no output schema to rely on.

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?

There are no parameters, so the description does not need to add parameter meaning. According to the guidelines, 0 parameters yields a baseline of 4, 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.

Purpose5/5

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

The description clearly states it lists all nodes of a Proxmox cluster with specific details (status, CPU/RAM/disk usage, uptime). This distinguishes it from sibling tools like get_node_status (single node) and list_storage (different resource).

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 does not explicitly state when to use this tool over alternatives. However, the context of listing all nodes versus other tools for specific resources is implicitly clear. No when-not or alternative mentions.

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

list_snapshotsB

Liste les snapshots d'une VM ou conteneur

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox
typeNoType: qemu (VM) ou lxc (conteneur)qemu
vmidYesID de la VM/LXC

TDQS

B3.2/5.0
Behavior2/5

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

Aucune annotation fournie. La description ne détaille pas le comportement (lecture seule, permissions nécessaires, format de retour). Seul le mot 'liste' suggère une opération non destructive, mais ce n'est pas explicite.

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?

Une phrase courte, sans mots superflus, l'information essentielle est en tête. Parfaitement 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?

Avec 3 paramètres, pas de schéma de sortie et pas d'annotations, la description est trop minimaliste. Elle ne précise pas le format de sortie, ni comment interpréter les snapshots listés. Insuffisante pour un agent IA.

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?

La couverture du schéma est de 100%, donc la description n'ajoute pas de valeur sémantique au-delà du schéma. Baseline de 3 atteint.

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?

Le verbe 'liste' et la ressource 'snapshots' sont clairs. Le contexte 'VM ou conteneur' précise la portée. La description se distingue bien des outils frères comme create_snapshot ou delete_snapshot.

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?

Aucune indication sur quand utiliser cet outil par rapport aux alternatives (create_snapshot, rollback_snapshot, etc.). Pas de mention des prérequis ou des cas d'usage.

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

list_storageA

Liste les pools de stockage d'un nœud avec utilisation

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states the action (list with usage) without disclosing side effects, auth requirements, or output details.

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 with no redundant words, front-loaded with the key action and 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?

Tool is simple with one parameter; description conveys basic purpose but does not specify the return format beyond 'with usage', which is adequate but not rich for an output-less schema.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter 'node', and the description adds only that it lists 'd'un nœud', which is already clear from the schema description.

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 verb 'liste' (list) and the resource 'pools de stockage' with usage, distinguishing it from sibling tools like get_storage_content.

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 with a node parameter but provides no explicit guidance on when to use this tool versus alternatives like get_storage_content.

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

list_tasksB

Liste les tâches récentes d'un nœud Proxmox

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox
vmidNoFiltrer par ID de VM/LXC (optionnel)
limitNoNombre max de tâches (défaut: 50)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It mentions 'recent' but does not define the time window, what constitutes recent, whether it returns completed or running tasks, or any permission requirements. This leaves significant ambiguity.

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 front-loading the key information. It contains no extraneous words or redundant 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 tool's simplicity and the presence of sibling tools, the description lacks details about return format, ordering, or the definition of 'recent'. With no output schema, these omissions reduce completeness.

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 has 100% parameter description coverage, so the baseline is 3. The tool description adds the context of 'recent' which is not in the schema, but does not provide additional semantic nuance beyond the schema descriptions themselves.

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 'lists' and the resource 'recent tasks of a Proxmox node'. It is straightforward, but does not differentiate from sibling tools like get_task_status, which might have a more specific purpose.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, typical use cases, or scenarios where other tools (e.g., get_task_status) would be preferred.

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

list_usersA

Liste tous les utilisateurs Proxmox

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only discloses that it lists users, but lacks details on permissions, pagination, or what data is returned. Minimal behavioral context.

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

Conciseness4/5

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

The description is a single concise sentence, front-loaded with purpose. However, it is very minimal and could be slightly more informative without losing conciseness.

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

Completeness3/5

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

For a simple list tool with no parameters and no output schema, the description is adequate but incomplete. It does not describe the return format or any behavioral aspects, leaving some ambiguity.

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?

There are no parameters, so the description adds no extra meaning beyond the schema. Baseline for 0 parameters is 4, and the description is sufficient in this context.

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 'Liste tous les utilisateurs Proxmox' clearly states the tool lists all Proxmox users, using a specific verb and resource. It distinguishes from siblings like get_user (single user) and create_user (creation).

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: use to list all users. However, no explicit when-not-to-use or alternative suggestions are provided, leaving the agent to infer from sibling tool names.

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

list_vmsA

Liste toutes les VMs QEMU du cluster ou d'un nœud spécifique

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeNoNom du nœud pour filtrer (optionnel)

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries full behavioral burden. It implies read-only listing, but lacks details on pagination, permissions, or side effects. The behavior is straightforward, so a score of 3 is adequate.

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, front-loaded with the action, and contains no redundant information. It is optimally concise.

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 list tool with one optional parameter and no output schema, the description fully covers what the tool does and its filtering capability. No additional context is necessary.

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%, and the description merely restates the node filtering option. It adds no additional semantic value 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 clearly states the verb 'list', the resource 'VMs QEMU', and the scope 'cluster or specific node'. It effectively distinguishes from sibling tools like list_containers and list_nodes.

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 provides clear context for when to use the tool (to list all VMs in a cluster or per node), but does not explicitly mention when not to use it or suggest alternatives like get_vm_details for detailed info.

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

pct_execA

Exécute une commande shell dans un conteneur LXC via pct exec. Équivalent de 'pct exec -- '. Nécessite SSH. Supporte les commandes complexes avec pipes, redirections, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox
vmidYesID du conteneur LXC
commandYesCommande shell à exécuter dans le conteneur
timeoutNoTimeout en secondes (défaut: 30)

TDQS

A3.8/5.0
Behavior3/5

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

Without annotations, the description adds some behavioral context (requires SSH, supports complex commands), but does not disclose error handling, return format, or potential side effects. More detail would be beneficial.

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

Conciseness5/5

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

The description is three concise sentences, each adding value: purpose, equivalence, and requirements/support. No wasted words.

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 command execution tool with four parameters and no output schema, the description covers the essentials (SSH requirement, complex commands, timeout). Return value details are missing but acceptable given simplicity.

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 baseline is 3. The description adds minor value by emphasizing complex commands for the 'command' parameter, but does not significantly enhance understanding 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 clearly states 'Exécute une commande shell dans un conteneur LXC via pct exec', specifying the action, resource, and method. It distinguishes from sibling tools like ssh_execute and vm_exec by focusing on LXC containers.

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 mentions 'Nécessite SSH' and supports complex commands, but does not explicitly compare to alternatives or state when to use this tool versus siblings like ssh_execute or vm_exec.

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

reboot_vmB

Redémarre une VM QEMU ou conteneur LXC

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox
typeNoType: qemu (VM) ou lxc (conteneur)qemu
vmidYesID de la VM/LXC

TDQS

B3.2/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden. It only states 'reboot' without disclosing behavioral details such as whether the operation is graceful, what happens upon failure, authentication requirements, or side effects. The description adds minimal value beyond the name.

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 with no unnecessary words. It is front-loaded and efficient.

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

Completeness2/5

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

Given the lack of annotations, output schema, and the presence of sibling tools, the description is insufficiently complete. It does not explain expected behavior (e.g., task tracking, reboot vs. reset) or provide any contextual hints about use cases or limitations.

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 100% coverage for parameters with clear descriptions (node, type, vmid). The description does not add any additional semantic value beyond what the schema provides, 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 the tool reboots a QEMU VM or LXC container (specific verb and resource). It distinguishes from sibling tools like start_vm, stop_vm, and shutdown_vm by implying a restart of an already running instance.

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 (e.g., start/stop/shutdown). The description does not mention prerequisites like requiring the VM to be running or any contextual usage hints.

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

rollback_snapshotA

Restaure une VM ou conteneur vers un snapshot. ATTENTION: L'état actuel non sauvegardé sera perdu!

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox
typeYesType: qemu (VM) ou lxc (conteneur)
vmidYesID de la VM/LXC
snapnameYesNom du snapshot à restaurer

TDQS

A3.9/5.0
Behavior4/5

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

Aucune annotation n'est fournie, donc la description doit porter le fardeau des informations comportementales. L'avertissement 'L'état actuel non sauvegardé sera perdu!' divulgue clairement la nature destructive de l'opération. Cependant, il manque des détails sur les permissions requises ou si l'opération est réversible via un autre snapshot.

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?

Deux phrases seulement : la première énonce l'objectif, la seconde fournit un avertissement essentiel. Aucun mot superflu, chaque phrase a son utilité.

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?

Pour un outil de restauration destructive avec 4 paramètres requis, la description manque d'informations sur la valeur de retour attendue (ex: ID de tâche) et le comportement post-restauration (ex: le snapshot reste-t-il disponible?). L'absence de schéma de sortie augmente le besoin de complétude, mais la description reste lacunaire.

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?

La couverture de description du schéma est de 100% : le schéma décrit déjà chaque paramètre (node, type, vmid, snapname) avec des libellés clairs. La description de l'outil n'ajoute aucune sémantique supplémentaire au-delà du schéma, donc le score de base de 3 est approprié.

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?

La description 'Restaure une VM ou conteneur vers un snapshot' utilise un verbe d'action spécifique (restaurer) et identifie clairement la ressource (VM/conteneur et snapshot). Elle se distingue des outils frères comme delete_snapshot ou clone_vm.

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?

La description ne fournit pas de directives explicites sur quand utiliser cet outil par rapport aux alternatives (ex: create_snapshot pour prendre un snapshot). L'avertissement sur la perte de données est implicite mais aucune mention des cas d'utilisation ou des prérequis.

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

set_container_configB

Modifie la configuration d'un conteneur LXC (CPU, RAM, swap, hostname, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du noeud Proxmox
swapNoSwap en MB
vmidYesID du conteneur
coresNoNombre de coeurs CPU
memoryNoRAM en MB
onbootNoDemarrer au boot du noeud
cpulimitNoLimite CPU (0 = illimite)
cpuunitsNoPoids CPU relatif (1024 = defaut)
hostnameNoNom d'hote du conteneur
descriptionNoDescription

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It states 'Modifie' (modifies) but does not explain side effects, permissions, immediate application, or restart requirements. Insufficient for a mutation tool.

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

Conciseness4/5

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

The description is a single sentence that concisely states the purpose and key parameters. Efficient but could be slightly more structured.

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 10 parameters and no output schema, the description provides minimal context. Missing information on return values, error handling, or how to verify changes. Incomplete for a complex mutation 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 coverage is 100%, so each parameter is described in the schema. The description adds no extra semantics beyond the parameter names listed. 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 it modifies LXC container configuration and lists example resources (CPU, RAM, swap, hostname). It implicitly distinguishes from sibling set_vm_config (for VMs) by specifying 'conteneur LXC'.

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 or when-not-to-use guidance. No alternatives mentioned. The description only states what it does, not the context for usage.

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

set_vm_configB

Modifie la configuration d'une VM QEMU (CPU, RAM, nom, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNom de la VM
nodeYesNom du noeud Proxmox
vmidYesID de la VM
coresNoNombre de coeurs CPU par socket
memoryNoRAM en MB
onbootNoDemarrer au boot du noeud
balloonNoRAM minimum pour le ballooning en MB (0 = desactive)
socketsNoNombre de sockets CPU
cpulimitNoLimite CPU (0 = illimite)
cpuunitsNoPoids CPU relatif (1024 = defaut)
descriptionNoDescription

TDQS

B3.1/5.0
Behavior2/5

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

The description only indicates that the tool modifies configuration (a destructive change) but provides no details on side effects, required privileges, or whether changes are applied immediately or require a restart. With no annotations, the description carries the full burden but fails to disclose these important behaviors.

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 without wasted words. However, it could be slightly expanded to include key usage notes 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?

Given the tool has 11 parameters, no output schema, and no annotations, the description is too minimal. It does not explain return values, error conditions, or the effect of partial updates, leaving the agent underinformed.

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?

Since the input schema has 100% description coverage for all 11 parameters, the description adds no significant meaning beyond what the schema already provides. It redundantly lists categories (CPU, RAM, name) without detailing any nuances.

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 modifies the configuration of a QEMU VM, listing specific aspects like CPU, RAM, and name. This verb-resource pairing is distinct from sibling tools that deal with starting, stopping, cloning, or destroying VMs.

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. For example, it does not indicate whether the VM must be stopped before modification, or mention scenarios where clone_vm or other tools might be preferred.

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

shutdown_vmB

Arrête proprement une VM QEMU ou conteneur LXC via ACPI/signal shutdown

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox
typeNoType: qemu (VM) ou lxc (conteneur)qemu
vmidYesID de la VM/LXC

TDQS

B3.4/5.0
Behavior3/5

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

Description indicates a graceful shutdown, but lacks details on side effects, async behavior, or what happens if the VM is already off. With no annotations, more behavioral context 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.

Conciseness5/5

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

Single sentence with no extraneous words. Front-loaded and efficient.

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?

Given the tool's simplicity and no output schema, the description covers the core action and resource types adequately. Could mention preconditions (VM running) or 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?

Schema coverage is 100%, so the schema already documents parameters. Description adds 'ACPI/signal' method context but does not significantly augment schema understanding.

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 (shutdown) and the resources (VM or container) with a specific method (ACPI/signal). It distinguishes from siblings like 'destroy_vm' and 'stop_vm' by implying graceful shutdown, but does not explicitly contrast.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'stop_vm' or 'reboot_vm'. No prerequisites (e.g., VM running) 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.

ssh_executeB

Exécute une commande SSH sur un nœud Proxmox. Permet d'administrer directement le système hôte.

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox
commandYesCommande shell à exécuter
timeoutNoTimeout en secondes (défaut: 30)

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It mentions executing a command but does not disclose potential destructive effects, required permissions, environment details, error handling, or output behavior. Given the risk of SSH command execution, more transparency is needed.

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

Conciseness5/5

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

The description is concise with two short sentences, front-loaded with the action, and contains 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?

The tool has no output schema and no annotations. The description does not mention return values (stdout/stderr, exit codes), timeout behavior, or error handling. For a command execution tool, this lacks completeness.

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% with descriptions for node, command, and timeout. The description adds no additional parameter semantics beyond what the schema already provides, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states it executes an SSH command on a Proxmox node, which is a specific verb and resource. It distinguishes itself from siblings like vm_exec (VMs/containers) by targeting the host system.

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 use for host administration ('administrer directement le système hôte'), but does not explicitly state when to use this tool over alternatives like vm_exec, pct_exec, or ssh_read_file. No exclusions or conditions are provided.

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

ssh_read_fileB

Lit le contenu d'un fichier sur un nœud Proxmox via SSH

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox
pathYesChemin absolu du fichier à lire
max_sizeNoTaille max en bytes (défaut: 1MB)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so the description must carry the full burden. It states the operation is via SSH but does not disclose authentication needs, side effects, or error behavior. Only the max_size limit is implied by the parameter.

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 that efficiently conveys the core purpose without extraneous words. Front-loaded with key 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?

Adequate for a simple read operation but lacks details on return format, error handling, or file existence expectations. With no output schema, the description should specify that it returns file content.

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 baseline is 3. The description adds no extra meaning beyond what the schema already provides for node, path, and max_size.

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 (reads file content), the target (Proxmox node via SSH), and distinguishes from siblings like ssh_write_file and vm_file_read by specifying 'sur un nœud Proxmox via SSH'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like vm_file_read or ssh_execute. The description omits any context about prerequisites or when not to use it.

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

ssh_write_fileA

Écrit un fichier sur un nœud Proxmox via SSH. Crée automatiquement un backup du fichier existant.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoPermissions du fichier (défaut: 0644)0644
nodeYesNom du nœud Proxmox
pathYesChemin absolu du fichier
backupNoCréer un backup .bak (défaut: true)
contentYesContenu à écrire

TDQS

A3.5/5.0
Behavior3/5

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

Discloses automatic backup creation, which is a key behavior, but omits details like overwrite behavior, network requirements, or failure handling. With no annotations, more depth is needed.

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

Conciseness5/5

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

Two sentences, no irrelevant details, front-loads the primary action and key feature (auto-backup). Efficient use of space.

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?

Lacks explanation of return values, error states, prerequisites (SSH access), and how backup is stored. For a tool with 5 parameters and no output schema, more context is warranted.

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 baseline is 3. The description adds minimal value beyond the schema (e.g., mentions backup creation but schema already defines the backup 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 action 'writes a file' and the resource 'on a Proxmox node via SSH', distinguishing it from sibling tools like ssh_read_file (reading) and vm_file_write (writing to VMs).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., vm_file_write for VM files, ssh_execute for commands). The agent must infer context from the description alone.

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

start_vmB

Démarre une VM QEMU ou un conteneur LXC

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox
typeNoType: qemu (VM) ou lxc (conteneur)qemu
vmidYesID de la VM/LXC

TDQS

B3.1/5.0
Behavior2/5

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

The description only says 'starts', implying a state change. It does not disclose whether the operation is synchronous, what happens if the VM is already running, error scenarios, or required permissions. No annotations are provided to fill these gaps.

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

Conciseness4/5

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

A single, front-loaded sentence that conveys the essential purpose. It is concise, though it could include minor clarifying details without harm.

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 state-changing tool with no output schema and no annotations, the description is too minimal. It lacks details on behavior (e.g., async vs sync), return value, error handling, or prerequisites. More context is needed for an AI agent to use 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 coverage is 100%, so the schema already describes all parameters (node, type, vmid). The description adds no additional semantic meaning beyond the schema, earning a baseline score of 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?

The description clearly states the tool's action: 'Starts a QEMU VM or an LXC container'. It uses a specific verb ('starts') and resource type ('VM' or 'container'), distinguishing it from siblings like stop_vm, shutdown_vm, and destroy_vm.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as reboot_vm or shutdown_vm. Prerequisites (e.g., VM must be stopped before starting) are not mentioned, and there is no mention of 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.

stop_vmA

Arrête de force une VM QEMU ou un conteneur LXC (équivalent à couper l'alimentation)

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox
typeNoType: qemu (VM) ou lxc (conteneur)qemu
vmidYesID de la VM/LXC

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description must reveal behavioral traits. It states the action is a 'force stop' (abrupt power cut), implying potential data loss or corruption. However, it lacks details on side effects, reversibility, or required permissions.

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

Conciseness5/5

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

The description is a single concise sentence, front-loaded with the key action and resource. Every word earns its place, and the metaphor enhances understanding without bloat.

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?

Given the simplicity of the tool and full schema coverage, the description is nearly complete. It could explicitly warn about data loss risks, but the metaphor sufficiently conveys the abrupt nature. No output schema needed.

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% with descriptions for all three parameters. The tool description adds no additional meaning beyond the schema; it repeats the type distinction but does not clarify any parameter usage details.

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 'force stops' and the resource 'QEMU VM or LXC container', with a helpful metaphor 'equivalent to cutting power'. It is specific and distinguishes from sibling tools like shutdown_vm (graceful) and destroy_vm (deletion).

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 usage guidelines are provided. The description does not indicate when to use this tool versus alternatives like shutdown_vm or destroy_vm, leaving the agent without explicit decision context for tool selection.

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

update_userB

Modifie un utilisateur Proxmox existant

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoNouvelle adresse email
enableNoActiver/désactiver l'utilisateur
groupsNoNouveaux groupes (séparés par des virgules)
useridYesID de l'utilisateur (format: user@realm)
commentNoNouveau commentaire
lastnameNoNouveau nom
passwordNoNouveau mot de passe
firstnameNoNouveau prénom

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavioral traits. It only states the basic action, lacking details on side effects, required permissions, response behavior, or whether changes are immediate.

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 with no extraneous text. It efficiently communicates the tool's purpose.

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 8 parameters with full schema descriptions and no output schema, the description is adequate for a simple update operation but lacks context on return values or validation. It could mention that modifications are applied immediately or that certain fields require specific 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?

The input schema has 100% coverage with each parameter having a clear description. The description itself does not add additional semantics beyond what the schema provides, so baseline score 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 clearly states the tool modifies an existing Proxmox user. It distinguishes itself from sibling tools like create_user and delete_user by using the verb 'modifies', but does not explicitly differentiate itself beyond that.

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 guidelines are provided about when to use this tool versus alternatives like create_user or get_user. There is no mention of prerequisites, when not to use it, or typical scenarios.

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

vm_execA

Exécute une commande dans une VM via le QEMU Guest Agent. Retourne un PID à utiliser avec vm_exec_status pour obtenir le résultat.

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox
vmidYesID de la VM
commandYesCommande à exécuter dans la VM

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses the return of a PID and the QEMU Guest Agent mechanism, but omits details such as whether the tool is non-blocking, error conditions (e.g., agent not running), or timeouts.

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 concise sentences, no extra words. Front-loaded with the core action and follow-up 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?

No output schema is provided, but the description explains the return value (PID) and references the companion tool for results. It lacks prerequisites (e.g., QEMU agent must be running) but is otherwise adequate for a simple command execution tool.

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?

All 3 parameters are described in the schema (100% coverage). The description adds value by explaining the execution context (QEMU Guest Agent) and the return information (PID), which are not 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 executes a command in a VM via QEMU Guest Agent and returns a PID. It distinguishes from sibling tools like 'vm_exec_status' and 'vm_exec_sync' by mentioning the async pattern.

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 points to using 'vm_exec_status' to retrieve results, implying an asynchronous execution pattern. However, it does not explicitly state when to use this tool over synchronous alternatives like 'vm_exec_sync'.

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

vm_exec_statusB

Récupère le résultat d'une commande exécutée via guest agent (stdout, stderr, exit code)

ParametersJSON Schema
NameRequiredDescriptionDefault
pidYesPID retourné par vm_exec
nodeYesNom du nœud Proxmox
vmidYesID de la VM

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided; description does not disclose behavioral traits such as idempotency, side effects, or error handling (e.g., behavior if PID is invalid).

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, appropriately sized, no wasted words, front-loaded with the key action.

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 3-param tool with no output schema or annotations, the description lacks critical context like whether it's a blocking call, return format, error cases, or polling 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 coverage is 100% and descriptions are clear; description adds no additional meaning 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?

Description clearly states it retrieves the result (stdout, stderr, exit code) of a command executed via guest agent, distinguishing it from siblings like vm_exec which returns a PID.

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 (after vm_exec to get results), but no explicit guidance on when to use vs alternatives (e.g., vm_exec_sync) or when not to use.

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

vm_exec_syncC

Exécute une commande shell dans une VM et retourne le résultat directement. Supporte les commandes complexes avec arguments, pipes, etc. Nécessite SSH.

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox
vmidYesID de la VM
commandYesCommande shell à exécuter (supporte pipes, redirections, etc.)
timeoutNoTimeout en secondes (défaut: 30)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It states that the command returns the result directly and supports complex commands, but does not detail behavior on timeout, error handling, resource impact, or what happens if SSH connection fails. This leaves significant gaps for an agent.

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 two sentences long, directly addressing the core function and a key constraint (SSH requirement). It is concise and avoids fluff. However, it is in French, which may be a concern for multilingual agents.

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 lack of annotations, output schema, and the tool's complexity (executing shell commands), the description is incomplete. It does not mention return format (e.g., exit code, stdout/stderr), error cases, or performance implications. More detail is needed for safe and 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 100% for all 4 parameters, so the baseline is 3. The description adds value by explaining that the command parameter supports pipes and redirections, and that SSH is required (though not a parameter). This slightly enriches the parameter context but does not drastically improve understanding.

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 executes a shell command in a VM and returns the result directly. It specifies support for complex commands (pipes, arguments) and that SSH is required. However, it does not explicitly differentiate from siblings like vm_exec, vm_exec_status, or ssh_execute, which may have similar functions.

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 mentions 'Nécessite SSH' as a prerequisite, but offers no guidance on when to use this tool instead of alternatives such as vm_exec (likely asynchronous) or ssh_execute (which may not require VM IDs). No explicit when-to-use or when-not-to-use information is provided.

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

vm_file_readC

Lit un fichier dans une VM via le QEMU Guest Agent

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox
pathYesChemin du fichier dans la VM
vmidYesID de la VM

TDQS

C2.9/5.0
Behavior2/5

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

The description mentions the QEMU Guest Agent, implying a dependency, but does not disclose behavioral traits such as error handling (e.g., file not found, agent unavailable), file size limits, or whether binary files are supported. With no annotations, the description should provide more detail.

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 conveys the core purpose without extraneous words. It is efficiently front-loaded but could benefit from slightly 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?

For a tool with three required parameters, no output schema, and no annotations, the description lacks completeness. It omits return value (file content), potential errors, and prerequisites (QEMU Guest Agent running), leaving gaps for an AI agent.

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 has 100% description coverage for all three parameters (node, path, vmid). The description adds no additional parameter semantics beyond the schema, so a baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool reads a file in a VM via the QEMU Guest Agent. It specifies the verb 'Lit' (reads), the resource 'un fichier dans une VM', and the mechanism 'via le QEMU Guest Agent', which distinguishes it from SSH-based file reads.

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 like ssh_read_file or vm_file_write. There is no mention of prerequisites (e.g., QEMU Guest Agent must be installed) or exclusions, leaving the agent to infer usage context.

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

vm_file_writeA

Écrit un fichier dans une VM via le QEMU Guest Agent. Certains chemins système (/etc/shadow, /etc/passwd, etc.) sont protégés.

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYesNom du nœud Proxmox
pathYesChemin du fichier dans la VM
vmidYesID de la VM
forceNoForcer l'écriture sur chemins protégés (défaut: false)
contentYesContenu à écrire

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only mentions protected paths. It fails to disclose that the operation is destructive, overwrites existing files, or what the return value is. The description is minimally transparent.

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 with two sentences, no redundancy, and front-loads the core purpose. Every word adds value.

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

Completeness2/5

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

Given no output schema and no annotations, the description is incomplete. It does not mention that the guest agent must be running, what happens on success (return type), or any limitations like content size. Essential behavioral details are missing.

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%, providing baseline 3. The description adds value by explaining that the force parameter exists because certain paths are protected, which goes beyond the schema's description of the force param.

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 writes a file in a VM via the QEMU Guest Agent, using a specific verb and resource. It distinguishes itself from sibling tools like ssh_write_file by explicitly mentioning the agent mechanism.

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 (writing files via QEMU Guest Agent) and mentions protected paths, but does not provide explicit when-to-use vs alternatives. It lacks guidance on prerequisites like the guest agent being installed.

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. 37 tool updatesv0.1.0
    • First observedclone_vm
    • First observedcreate_snapshot
    • First observedcreate_user
    • First observeddelete_snapshot
    • First observeddelete_user
    • First observeddestroy_vm
    • First observedfix_apt_repos
    • First observedget_container_details
    • First observedget_node_status
    • First observedget_storage_content
    • First observedget_task_status
    • First observedget_user
    • First observedget_vm_details
    • First observedlist_containers
    • First observedlist_nodes
    • First observedlist_snapshots
    • First observedlist_storage
    • First observedlist_tasks
    • First observedlist_users
    • First observedlist_vms
    • First observedpct_exec
    • First observedreboot_vm
    • First observedrollback_snapshot
    • First observedset_container_config
    • First observedset_vm_config
    • First observedshutdown_vm
    • First observedssh_execute
    • First observedssh_read_file
    • First observedssh_write_file
    • First observedstart_vm
    • First observedstop_vm
    • First observedupdate_user
    • First observedvm_exec
    • First observedvm_exec_status
    • First observedvm_exec_sync
    • First observedvm_file_read
    • First observedvm_file_write

TDQS

B3.4/5.0

Scored across 37 tools

Disambiguation4/5

Most tools target distinct resources or actions, but the multiple exec functions (pct_exec, vm_exec, vm_exec_sync, ssh_execute) could cause confusion despite clear descriptions. Overall clear boundaries are maintained.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., list_vms, create_user, get_vm_details). The few exceptions like pct_exec are standard Proxmox conventions and don't break consistency.

Tool Count4/5

With 37 tools, the server is extensive but well-justified for covering VMs, containers, nodes, storage, users, and system maintenance. It's on the higher end but still scoped to Proxmox administration.

Completeness3/5

Covers most CRUD operations for VMs and containers, users, and snapshots, but lacks a create_vm tool (only clone is available) and backup/restore functionality. Notable gaps for basic VM provisioning.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers