pve-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PVE_HOST | Yes | Proxmox VE host or full URL, e.g. https://192.168.1.10:8006. Required. | |
| PVE_TIMEOUT | No | HTTP timeout in seconds. | 30 |
| PVE_ENV_FILE | No | Path to an additional env file to load. | |
| PVE_PASSWORD | No | Proxmox password for ticket authentication, used when token authentication is not configured. | |
| PVE_TOKEN_ID | No | Proxmox API token ID, e.g. root@pam!mcp. Used for token authentication. | |
| PVE_USERNAME | No | Proxmox username for ticket authentication, used when token authentication is not configured. | |
| PVE_READ_ONLY | No | When true, disables all write operations. | false |
| PVE_VERIFY_SSL | No | Whether to verify the TLS certificate. Set to false for self-signed certificates. | true |
| PVE_DEFAULT_NODE | No | Default node to use when the node parameter is omitted. | |
| PVE_TOKEN_SECRET | No | Proxmox API token secret. Used for token authentication. | |
| PVE_ALLOW_RAW_API | No | When true, enables the pve_api_request tool for arbitrary API calls. | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pve_versionA | Return the Proxmox VE version of the connected host (connectivity check). |
| pve_cluster_statusA | Summarise cluster health: nodes, quorum, and guest counts by state. |
| pve_list_nodesA | List cluster nodes with CPU, memory, disk and uptime. |
| pve_node_statusB | Show detailed status for one node, optionally with its storage usage. |
| pve_list_vmsB | List VMs and LXC containers in the cluster, optionally filtered. |
| pve_get_vmB | Get current status (and config) of a VM or container. |
| pve_list_snapshotsC | List snapshots of a VM or container. |
| pve_list_storageA | List storage definitions; when node is known, include capacity usage on that node. |
| pve_list_isosB | List ISO images available on a storage (node is needed for node-scoped storages). |
| pve_list_templatesB | List templates available for cloning. |
| pve_list_tasksC | List recent cluster/node tasks, optionally filtered by guest. |
| pve_task_statusB | Show a task's status (running/stopped, exit status) and optionally its log tail. |
| pve_wait_taskB | Wait for a task to finish and return its exit status. |
| pve_guest_agent_networkB | Read network interfaces reported by the QEMU guest agent. |
| pve_guest_agent_osinfoB | Read OS information reported by the QEMU guest agent. |
| pve_vm_powerB | Change guest power state (start/stop/shutdown/reboot/suspend/resume). Requires confirm=true. |
| pve_clone_vmC | Clone a VM/container or template into a new VMID. Requires confirm=true. |
| pve_create_snapshotB | Create a snapshot of a VM/container. Requires confirm=true. |
| pve_delete_snapshotA | Delete a snapshot (irreversible). Requires confirm=true. |
| pve_rollback_snapshotB | Roll a guest back to a snapshot, discarding later changes. Requires confirm=true. |
| pve_update_vmB | Update guest configuration keys (e.g. {"memory": 4096, "onboot": 1}). Requires confirm=true. |
| pve_delete_vmC | Permanently destroy a VM/container. Requires confirm=true. |
| pve_api_requestB | Call an arbitrary PVE API path (escape hatch). Requires PVE_ALLOW_RAW_API=true. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 23 tools
Each tool targets a distinct resource+action pair: reads (version, cluster_status, node_status, get_vm), enumerations (nodes, VMs, storage, ISOs, templates, snapshots, tasks), and guarded mutations (power, clone, snapshot create/delete/rollback, update, delete). The only mild overlaps—task_status vs wait_task and the api_request escape hatch—are clearly differentiated by their descriptions, so an agent can select confidently.
All 23 tools share a uniform pve_ prefix and snake_case, with mostly verb_noun order (list_vms, get_vm, create_snapshot, delete_vm, wait_task). A few noun-first status/reader names (pve_version, pve_node_status, pve_task_status, pve_guest_agent_network) deviate slightly, but the pattern stays highly readable and predictable.
23 tools is on the heavy side for the 16-25 band, but every tool maps to a real Proxmox operation across nodes, guests, storage, snapshots, tasks and guest-agent reads, so none feel gratuitous. A couple of niche readers (guest_agent_osinfo/network) could be merged, but the set is well-scoped overall.
The surface covers reads plus a solid mutation lifecycle (power, clone, update, delete, snapshot create/delete/rollback) for guests, with strong task and node/storage introspection. Notable gaps for a Proxmox domain include backup/restore, VM creation from scratch (clone-only), and migration, though the documented pve_api_request escape hatch lets agents work around these.