Proxmox MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HTTP_MODE | No | Set to 'true' to enable HTTP transport mode for n8n compatibility | false |
| HTTP_PORT | No | Port for HTTP transport mode (default: 3333) | 3333 |
| PROXMOX_HOST | Yes | Proxmox hostname or IP address | |
| PROXMOX_PORT | No | Proxmox API port (default: 8006) | 8006 |
| PROXMOX_USER | Yes | Proxmox username with full path (e.g., admin@pam) | |
| PROXMOX_PASSWORD | Yes | Proxmox password | |
| PROXMOX_VERIFY_SSL | No | Verify SSL certificate (default: true) | true |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_node_statusC | Get status of Proxmox nodes |
| get_summaryC | Get summary of Proxmox node resources |
| get_storage_statusB | Get status of Proxmox storage |
| get_cluster_statusB | Get Proxmox cluster status |
| get_vm_statusC | Get status of Proxmox VMs |
| get_container_statusC | Get status of Proxmox containers |
| create_vmA | Create a new VM on Proxmox with optional cloud-init configuration |
| create_containerC | Create a new container on Proxmox |
| delete_vmB | Delete a VM from Proxmox |
| delete_containerB | Delete a container from Proxmox |
| vm_consoleC | Access VM console |
| get_proxmox_versionA | Get Proxmox VE version |
| get_updatesB | Get available updates for Proxmox |
| upgrade_proxmoxD | Upgrade Proxmox VE |
| get_task_statusC | Get status of a running task |
| start_vmC | Start a VM |
| stop_vmC | Stop a VM |
| shutdown_vmC | Shutdown a VM gracefully |
| restart_vmC | Restart a VM |
| start_containerC | Start a container |
| stop_containerC | Stop a container |
| shutdown_containerC | Shutdown a container gracefully |
| restart_containerB | Restart a container |
| get_running_vmsA | Get all running VMs and containers on a node |
| ssh_to_vmC | SSH into a VM using qm console |
| set_vm_ipB | Set IP address for a VM (requires guest agent) |
| set_vm_hostnameA | Set hostname for a VM (requires guest agent) |
| create_vm_userA | Create a new user in a VM (requires guest agent) |
| set_vm_user_passwordA | Set password for an existing VM user (requires guest agent) |
| run_vm_commandB | Run a command in a VM (requires guest agent) |
| get_vm_interfacesA | Get network interfaces from a VM (requires guest agent) |
| list_templatesA | List templates on a Proxmox node |
| create_template_from_vmC | Create a template from a VM |
| create_template_from_containerC | Create a template from a container |
| delete_templateB | Delete a template from Proxmox |
| create_vm_backupC | Create a backup of a VM |
| create_container_backupC | Create a backup of a container |
| list_backupsC | List available backups |
| restore_vm_backupB | Restore a VM from backup |
| restore_container_backupC | Restore a container from backup |
| delete_backupD | Delete a backup |
| enable_vm_haD | Enable High Availability for a VM |
| enable_container_haB | Enable High Availability for a container |
| disable_vm_haC | Disable High Availability for a VM |
| disable_container_haB | Disable High Availability for a container |
| get_ha_statusC | Get High Availability status |
| migrate_vmC | Migrate a VM to another node |
| migrate_containerB | Migrate a container to another node |
| create_vm_snapshotB | Create a snapshot for a VM |
| create_container_snapshotC | Create a snapshot for a container |
| list_vm_snapshotsC | List snapshots for a VM |
| list_container_snapshotsB | List snapshots for a container |
| restore_vm_snapshotC | Restore a VM snapshot |
| restore_container_snapshotC | Restore a container snapshot |
| delete_vm_snapshotC | Delete a VM snapshot |
| delete_container_snapshotB | Delete a container snapshot |
| create_resource_poolC | Create a new resource pool |
| list_resource_poolsA | List all resource pools |
| get_resource_pool_statusB | Get status of a resource pool |
| delete_resource_poolB | Delete a resource pool |
| add_vm_to_poolB | Add a VM to a resource pool |
| remove_vm_from_poolA | Remove a VM from a resource pool |
| list_isosB | List ISO files on a Proxmox node |
| download_isoB | Download an ISO file to a Proxmox node |
| delete_isoA | Delete an ISO file from a Proxmox node |
| get_iso_download_statusC | Get status of an ISO download task |
| enable_vm_firewallB | Enable firewall for a VM |
| disable_vm_firewallB | Disable firewall for a VM |
| enable_container_firewallB | Enable firewall for a container |
| disable_container_firewallB | Disable firewall for a container |
| create_vm_firewall_ruleB | Create a firewall rule for a VM |
| create_container_firewall_ruleB | Create a firewall rule for a container |
| list_vm_firewall_rulesA | List firewall rules for a VM |
| list_container_firewall_rulesA | List firewall rules for a container |
| delete_vm_firewall_ruleB | Delete a firewall rule for a VM |
| delete_container_firewall_ruleC | Delete a firewall rule for a container |
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 76 tools
Most tools are clearly separated by resource type (VM vs container) and action (create, delete, start, etc.). Some minor overlap exists, such as get_vm_status vs get_running_vms, and ssh_to_vm vs vm_console, but descriptions help distinguish them.
Tool names follow a consistent verb_noun pattern in snake_case (e.g., create_vm, delete_container, list_backups). Even compound names like create_template_from_vm or get_iso_download_status are structurally consistent.
With 76 tools, the server is over-split, especially with many duplicated VM/container variants. While Proxmox is complex, the count exceeds the 'too many' threshold and would overwhelm agents.
The surface covers many lifecycles (VMs, containers, backups, snapshots, firewalls, HA, pools, ISO), but lacks update/edit operations for VM and container configurations. There is no get_vm_config or update_vm, leaving a significant CRUD gap.