proxmox-mcps
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PROXMOX_HOST | Yes | Proxmox host address (e.g., proxmox.example.com) | |
| PROXMOX_PORT | No | Proxmox port | 8006 |
| PROXMOX_USER | No | Proxmox user (e.g., root@pam) | root@pam |
| PROXMOX_DEV_MODE | No | Enable dev mode (true/false) | false |
| PROXMOX_TOKEN_NAME | Yes | API token name | |
| PROXMOX_VERIFY_SSL | No | Whether to verify SSL (true/false) | true |
| PROXMOX_TOKEN_VALUE | Yes | API token value (UUID) | |
| PROXMOX_DANGEROUSLY_ALLOW_DESTRUCTIVE | No | Allow destructive operations without approval token (true/false) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_cluster_statusA | Return quorum status, cluster name/version, and a list of nodes with their online state and IDs. |
| get_nodesA | List all nodes in the cluster with their status, CPU, memory, uptime, and role. |
| get_node_statusA | Get detailed status (CPU, memory, uptime, storage) for a single Proxmox node. |
| get_node_syslogB | Read recent syslog lines from a Proxmox node. |
| get_node_journalA | Read recent systemd journal entries from a Proxmox node. |
| get_storageA | List all configured storage pools cluster-wide with type, content types, and aggregate usage. |
| list_tasksA | List recent Proxmox tasks cluster-wide (UPIDs). Useful for finding background work and diagnosing failures. |
| get_taskA | Get the current status of a Proxmox task by its UPID (e.g. 'UPID:pve:000B5C66:...'). |
| get_task_logB | Stream log lines from a Proxmox task (UPID). Useful for diagnosing failures. |
| list_jobsA | List long-running Proxmox jobs tracked by this MCP server (e.g. create_vm, snapshot, backup). |
| get_jobA | Fetch a single tracked job by job_id, optionally refreshing from Proxmox. |
| poll_jobA | Force-refresh a tracked job by polling its underlying Proxmox task. Returns the latest state, exit status, progress, and recent log tail. |
| cancel_jobA | Request cancellation of a tracked job. Calls Proxmox's task-stop endpoint. Some operations cannot be cancelled cleanly. |
| retry_jobA | Re-invoke the originating tool for a failed/cancelled job, using the stored retry recipe. Returns the new job_id. |
| list_snapshotsB | List all snapshots for a QEMU VM or LXC container. |
| create_snapshotA | Take a snapshot of a QEMU VM (optionally including RAM state) or LXC container. |
| delete_snapshotA | Delete a snapshot from a VM or container. DESTRUCTIVE — ask the user to confirm before invoking. |
| rollback_snapshotA | Revert a VM or container to a previous snapshot state. VM/container will be stopped first. DESTRUCTIVE — ask the user to confirm before invoking. |
| list_backupsA | List vzdump backup files cluster-wide. Filter by node, storage pool, or VM ID. |
| create_backupB | Trigger a vzdump backup of a VM or container to a target storage pool. |
| restore_backupA | Restore a vzdump archive as a new VM/container. DESTRUCTIVE — ask the user to confirm before invoking. |
| delete_backupA | Permanently delete a vzdump backup file. DESTRUCTIVE — ask the user to confirm before invoking. |
| prune_backupsA | Apply a prune schedule (e.g. 'keep-last=7,keep-daily=14,keep-weekly=4') to a storage pool (Proxmox 8+). |
| list_isosB | List ISO images available on the cluster. |
| list_templatesA | List LXC OS templates (vztmpl) available on the cluster. |
| download_isoA | Trigger a server-side download from a URL into a storage pool (useful for large ISOs). Proxmox fetches the file directly. |
| delete_isoA | Permanently delete an ISO or template. DESTRUCTIVE — ask the user to confirm before invoking. |
| get_vmsA | List all QEMU VMs across the cluster with current status and resource usage. |
| get_vm_configA | Return the full Proxmox VM configuration (cores, memory, disks, network, etc.). |
| get_vm_statusA | Return live status (cpu, mem, uptime, qmpstatus) of a VM. |
| create_vmA | Create a new QEMU VM. Auto-detects default storage for the disk. Use clone_vm to duplicate from a template. |
| clone_vmB | Full or linked clone of an existing VM. |
| start_vmC | Power on a QEMU VM. |
| stop_vmB | Hard stop (immediate power off) — equivalent to pulling the plug. |
| shutdown_vmB | ACPI shutdown. The guest OS must respond (install qemu-guest-agent for reliability). |
| reset_vmC | Hard reset — equivalent to pressing the reset button. |
| reboot_vmB | ACPI reboot. Guest OS must respond. |
| delete_vmA | Permanently delete a VM and its disks. DESTRUCTIVE — ask the user to confirm before invoking. |
| get_containersA | List all LXC containers across the cluster with status and resource usage. |
| get_container_configB | Return the full Proxmox container configuration. |
| get_container_statusB | Return live status (cpu, mem, uptime) of a container. |
| get_container_ipA | Return the container's network interfaces with their IPv4/IPv6 addresses (DHCP-aware — no static IP needed). |
| create_containerB | Create a new LXC container from a vztmpl template. |
| clone_containerB | Clone an existing container to a new ID on the same or different node. |
| start_containerB | Start an LXC container. |
| stop_containerB | Hard-stop (immediate power off) the container. |
| shutdown_containerB | Graceful shutdown via |
| restart_containerC | Reboot an LXC container. |
| delete_containerB | Permanently delete a container and its data. DESTRUCTIVE — ask the user to confirm before invoking. |
| update_container_resourcesA | Convenience wrapper around update_container_config that resizes CPU, memory, swap, and disk in one call. |
| update_vm_configA | Patch one or more VM configuration keys (cores, memory, scsi0 size, net0, ostype, etc.). Use current=true to update a running VM where supported. Only a safe allowlist of keys is accepted — keys that can attach host PCI/USB devices, override SMBIOS, or change the QEMU machine type are rejected. HIGH RISK — ask the user to confirm before invoking. |
| resize_vm_diskB | Resize a VM disk (e.g. scsi0, virtio0). Use a '+N' suffix on size to grow, or absolute size like '50G'. |
| regenerate_vm_configA | Regenerate the VM's MAC addresses and (optionally) SMBIOS UUID. Useful after cloning. |
| set_vm_cloudinitB | Set cloud-init parameters (user, password, SSH keys, IP config, DNS, search domain) and regenerate the cloud-init ISO. |
| get_vm_pendingA | Return pending config values not yet applied (only present when running config has pending changes). |
| update_container_configA | Patch one or more LXC container configuration keys (cores, memory, net0, features, etc.). |
| resize_container_diskA | Resize an LXC container volume (e.g. rootfs, mp0). Use '+N' for relative growth, or absolute size like '20G'. |
| move_container_volumeA | Move an LXC volume (rootfs or mountpoint) to a different storage. Useful for migrating off slow disks. |
| get_vm_rrdA | Return raw RRD metrics (cpu, mem, netin/out, diskread/write) for a VM at a given timeframe. Used for charting and capacity analysis. |
| get_vm_rrddataA | Return recent RRD samples for a VM. Cheaper than get_vm_rrd for ad-hoc checks. |
| vm_agent_infoB | Return QEMU guest agent metadata. |
| vm_agent_get_hostnameB | Return the guest VM hostname. |
| vm_agent_get_osinfoC | Return guest OS info (kernel, name, version, pretty name). |
| vm_agent_get_usersB | Return logged-in users inside the guest. |
| vm_agent_get_network_interfacesB | Return network interfaces from inside the guest (with IPs). |
| vm_agent_get_vcpusB | Return vCPU topology and current usage from inside the guest. |
| vm_agent_get_timeA | Return guest clock time and skew vs host. |
| vm_agent_get_fsinfoA | Return guest filesystem info (mountpoints, used/free bytes). |
| vm_agent_fstrimA | Issue fstrim to the guest VM, returning free blocks to the hypervisor (reduces provisioned storage). |
| vm_agent_execA | Run a shell command inside a VM via the QEMU guest agent. Returns a pid; poll exec_status for output. |
| vm_agent_exec_statusA | Return exit status + captured stdout/stderr for a previously launched exec. |
| vm_agent_set_user_passwordA | Set a user password inside the guest via QEMU agent. HIGH RISK — ask the user to confirm before invoking. |
| vm_sendkeyA | Send a key combination to a QEMU VM (useful for unlocking screens, sending Ctrl+Alt+Del, etc.). |
| vm_monitorB | Run an arbitrary QEMU monitor command. Examples: 'info status', 'dump-guest-memory', 'screendump /tmp/screen.ppm'. MEDIUM RISK. |
| vm_firewall_rulesB | Return the firewall rules for a VM's network interface. |
| vm_firewall_optionsB | Return VM-level firewall options (enable, dhcp, macfilter, etc.). |
| get_container_rrdC | Return RRD time series for an LXC container. |
| get_container_rrddataC | Return recent RRD samples for an LXC container. |
| container_firewall_rulesC | Return firewall rules for an LXC container. |
| container_firewall_optionsC | Return container firewall options. |
| execute_container_commandA | Run a shell command inside an LXC container by shelling out to |
| migrate_vmA | Migrate a VM to a different node (live or offline). With online=true the VM keeps running during migration. |
| move_vm_diskA | Move a VM's disk to a different storage pool. Useful for migrating off slow disks or balancing storage. |
| convert_vm_to_templateA | Convert a VM into a Proxmox template (subsequent clones can use it as a source). HIGH RISK — original VM becomes read-only. Ask the user to confirm before invoking. |
| unlink_vm_diskA | Detach a disk from a VM (the disk file remains on the storage pool). Use move_vm_disk to migrate; use delete via Proxmox UI to actually remove. |
| migrate_containerB | Migrate an LXC container to a different node (online/offline). With online=true the container keeps running. |
| move_container_diskC | Move a container volume to a different storage pool. |
| convert_container_to_templateA | Convert an LXC container into a template. HIGH RISK — original becomes read-only. Ask the user to confirm before invoking. |
| unlink_container_diskB | Detach an LXC volume (file remains on storage pool). |
| vm_vncproxyB | Generate a VNC ticket and port to open a remote console to the VM. Returns a one-time ticket for noVNC clients. |
| vm_termproxyC | Generate a serial terminal (termproxy) ticket for the VM. |
| vm_spiceproxyB | Generate a SPICE ticket for high-fidelity VM console access. |
| vm_mtunnelA | Open a tunnel for VM migration. Returns port/ticket info for the migration proxy. |
| vm_mtunnelwebsocketC | Upgrade an existing migration tunnel to a WebSocket. |
| vm_featureC | Enable or disable a Proxmox VM feature (snapshot, clone, clone_from_template, migration). |
| container_vncproxyC | Generate a VNC ticket for an LXC container console. |
| container_termproxyB | Generate a terminal proxy ticket for an LXC container. |
| container_spiceproxyB | Generate a SPICE ticket for an LXC container. |
| list_poolsA | List all resource pools cluster-wide with member counts. |
| get_poolA | Get a single resource pool with its members. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ngocdd/proxmox-mcps'
If you have feedback or need assistance with the MCP directory API, please join our Discord server