Skip to main content
Glama
Unofficial-Proxmox-MCP

Unofficial-Proxmox-MCP

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PVE_HOSTYesProxmox VE host address, for example 192.168.1.100.
PVE_USERYesProxmox API user/token identifier, for example mcp-bot@pve!mcp-token.
PVE_SELF_VMIDNoOptional self VMID used for LXC container self-protection. May be auto-detected via /etc/pve-self-vmid.
PVE_VERIFY_SSLNoWhether to verify SSL when connecting to Proxmox. Example: false.
PVE_TOKEN_SECRETYesProxmox API token secret.
PVE_PROTECTED_VMIDSNoComma-separated list of VMIDs that can never be destroyed via MCP, for example 100,101,200.

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
pve_list_nodesB

List all cluster nodes, their online status, CPU usage %, memory allocation, and uptime. Returns JSON formatted overview.

pve_get_node_statusA

Get deep telemetry for a Proxmox node: PVE version, kernel version, CPU sockets/cores/model, load averages, and memory/swap utilization in MB.

Args: node: Target node name (e.g. 'pve'). Defaults to cluster default node if empty.

pve_list_storage_poolsA

List all configured storage pools (ZFS, LVM-Thin, Directory, NFS, Ceph) on a node or cluster, including enabled content types (iso, vztmpl, images, backup), total space, used, and free GB.

Args: node: Target node name. Defaults to cluster default node if empty.

pve_list_systemsA

List virtual machines and LXC containers in the cluster.

Args: node: Filter by specific node name (e.g. 'pve') or 'all' across cluster. type_filter: 'all', 'qemu' (VMs only), or 'lxc' (Containers only). status_filter: 'all', 'running', or 'stopped'.

pve_get_systemA

Get detailed hardware configuration, network adapters, memory, disk layouts, and live status for a VM or LXC container.

Args: vmid: Target VM or LXC Container ID (e.g. 101 or 204). node: Optional node name. If omitted, automatically locates the system across cluster nodes.

pve_get_guest_networkA

Retrieve live guest IP addresses (IPv4 & IPv6), MAC addresses, and network interfaces. Uses QEMU Guest Agent for VMs, or container interface discovery for LXC.

Args: vmid: Target VM or LXC Container ID. node: Optional node name.

pve_exec_guest_commandA

Execute a non-interactive shell command inside a QEMU VM via the QEMU Guest Agent. Returns exit code, stdout, and stderr.

Args: vmid: Target QEMU Virtual Machine ID. command: Shell command string to execute (e.g. 'ip a', 'uptime', 'docker ps'). node: Optional node name. timeout: Execution timeout in seconds (default: 30).

pve_lifecycleB

Perform a lifecycle state transition on a VM or container.

Args: vmid: Target VM or Container ID. action: One of: 'start', 'stop', 'shutdown', 'reboot', 'reset', 'suspend', 'resume'. node: Optional node name. Automatically discovers node if omitted.

pve_create_snapshotB

Take a snapshot of a VM or LXC container.

Args: vmid: Target VM or Container ID. snapname: Name for the snapshot (alphanumeric and dashes/underscores, e.g. 'pre-upgrade-v1'). description: Informative description or changelog for the snapshot. vmstate: For QEMU VMs only. If True, saves running RAM state (live snapshot). node: Optional node name.

pve_list_snapshotsB

List all existing snapshots and hierarchy for a VM or LXC container.

Args: vmid: Target VM or Container ID. node: Optional node name.

pve_rollback_snapshotB

Revert a VM or LXC container to a previous snapshot state.

Args: vmid: Target VM or Container ID. snapname: Name of the snapshot to restore. start_after: If True, automatically powers the system on after rollback completes. node: Optional node name.

pve_delete_snapshotA

Delete a snapshot from a VM or LXC container.

SAFETY REQUIREMENT: Deleting a snapshot merges or purges historical states. If confirmation_phrase is not provided, this tool will safely block and ask you to confirm with confirmation_phrase='CONFIRM_DELETE_SNAPSHOT_'.

Args: vmid: Target VM or Container ID. snapname: Snapshot identifier to delete. confirmation_phrase: Explicit confirmation phrase (e.g. 'CONFIRM_DELETE_SNAPSHOT_pre-upgrade'). node: Optional node name.

pve_edit_systemB

Edit configuration parameters of an existing VM or container (CPU cores, RAM, notes, tags, onboot).

Args: vmid: Target VM or Container ID. cores: Number of virtual CPU cores to assign. memory_mb: Allocated RAM in megabytes (e.g. 4096 for 4GB). description: Notes / documentation markdown string. tags: Semicolon or comma-separated tags (e.g. 'web;production;docker'). onboot: Whether the system automatically starts on Proxmox node boot. node: Optional node name.

pve_set_cloudinitB

Configure Cloud-Init parameters on a QEMU virtual machine.

Args: vmid: Target VM ID. ciuser: Default cloud-init username (e.g. 'ubuntu' or 'debian'). cipassword: User password. sshkeys: URL-encoded or raw OpenSSH public key string. ipconfig0: IP addressing config (e.g. 'ip=dhcp' or 'ip=192.168.1.50/24,gw=192.168.1.1'). nameserver: DNS nameserver IP. searchdomain: DNS search domain. node: Optional node name.

pve_resize_diskB

Incrementally expand the storage capacity of a virtual disk.

Args: vmid: Target VM or Container ID. disk: Disk device identifier (e.g. 'scsi0', 'virtio0', or 'rootfs'). add_gb: Size in gigabytes to expand by (e.g. 10 adds 10GB). node: Optional node name.

pve_clone_systemB

Clone a new VM or LXC container from an existing template or system.

Args: source_vmid: Source template or instance VMID. new_vmid: Unique ID for the newly created instance (e.g. 301). new_name: Hostname or display name for the new system. full_clone: If True, makes an independent full clone. If False, creates a linked clone. target_storage: Storage pool name (e.g. 'local-lvm', 'fast-tier'). Optional. target_node: Target node name. Optional.

pve_create_lxcB

Create a new LXC container from an OS template tarball.

Args: vmid: Unique Container ID (e.g. 255). hostname: Hostname for the container. ostemplate: Storage template path (e.g. 'local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.zst'). cores: Number of assigned CPU cores. memory_mb: Memory in megabytes. disk_gb: Root filesystem disk size in gigabytes. storage: Target storage pool (e.g. 'local-lvm' or 'fast-tier'). password: Root user password. ssh_public_key: Optional SSH public key to inject into /root/.ssh/authorized_keys. net0: Network interface configuration string. unprivileged: If True, provisions container in an unprivileged user namespace (recommended). node: Target node name.

pve_create_vmB

Create a new QEMU virtual machine.

Args: vmid: Unique Virtual Machine ID (e.g. 150). name: Name / hostname of the virtual machine. cores: Number of virtual CPU cores. memory_mb: Memory in megabytes. disk_gb: Boot disk size in gigabytes. storage: Target storage pool (e.g. 'local-lvm', 'fast-tier'). iso_image: Optional ISO image path (e.g. 'local:iso/ubuntu-24.04-live-server-amd64.iso'). net0: Network interface configuration string. node: Target node name.

pve_trigger_backupB

Execute an immediate vzdump backup of a VM or container to a target storage pool.

Args: vmid: Target VM or LXC Container ID. storage: Target backup storage pool (e.g. 'local', 'pbs-backup'). mode: Backup mode: 'snapshot' (live, zero downtime), 'suspend', or 'stop'. compression: Compression algorithm: 'zstd', 'gzip', or 'none'. node: Optional node name.

pve_list_backupsB

List available backup archives stored in a designated storage pool.

Args: storage: Storage pool identifier (e.g. 'local', 'vault-backups'). node: Optional node name.

pve_get_firewallC

Inspect the firewall rules and security options active on a VM or container.

Args: vmid: Target VM or LXC Container ID. node: Optional node name.

pve_set_firewall_ruleB

Add or modify a firewall rule on a VM or container.

Args: vmid: Target VM or LXC Container ID. action: 'ACCEPT', 'DROP', or 'REJECT'. rule_type: 'in' (inbound) or 'out' (outbound). proto: Protocol: 'tcp', 'udp', 'icmp', etc. dport: Destination port or port range (e.g. '80', '443', '8000:8050'). comment: Brief description of the firewall rule. enable: Whether the rule is actively enabled. node: Optional node name.

pve_recommend_placementA

Analyze cluster resource congestion and recommend the optimal node for placing new workloads.

Args: required_cores: Number of virtual CPU cores needed. required_mem_mb: RAM in megabytes required. required_disk_gb: Storage in gigabytes required.

pve_get_vnc_ticketA

Generate a time-limited NoVNC console ticket and URL for browser-based out-of-band management.

Args: vmid: Target VM or LXC Container ID. node: Optional node name.

pve_export_terraformA

Export the complete live specification of a VM or container into a ready-to-run Terraform / OpenTofu (.tf) block.

Args: vmid: Target VM or LXC Container ID. node: Optional node name.

pve_destroy_systemA

Safely delete and remove a virtual machine or LXC container.

MANDATORY CONFIRMATION SAFETY GATES:

  1. If confirm_vmid != vmid OR confirmation_phrase != 'CONFIRM_DELETE_', this tool will SAFELY REFUSE destruction and return a confirmation request. You must ask the user explicitly to confirm deletion before calling with the matching confirmation phrase.

  2. Self-Protection: Cannot delete the container hosting this MCP server.

  3. The target vmid MUST NOT be included in PVE_PROTECTED_VMIDS blacklist.

  4. The instance will be cleanly stopped prior to deletion.

Args: vmid: Target ID of the VM or container to destroy. confirm_vmid: Must equal vmid as an explicit confirmation gate. confirmation_phrase: Must equal 'CONFIRM_DELETE_' (e.g. 'CONFIRM_DELETE_300'). purge_data: Whether to purge and release all associated virtual disks and backup files. node: Optional node name.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 26 tools

Disambiguation4/5

Most tools are clearly separated by resource and action, such as list_nodes vs list_systems and create_vm vs clone_system. Minor ambiguity exists between pve_get_system and pve_get_guest_network because both can return network-related information, and pve_export_terraform partially overlaps with configuration retrieval.

Naming Consistency4/5

All tools use the pve_ snake_case prefix and nearly all follow a verb_noun pattern. The main exception is pve_lifecycle, which is noun-style rather than verb-style, but the naming remains highly predictable overall.

Tool Count4/5

With 26 tools, the set is above the typical 3–15 range, but the broad Proxmox domain includes many distinct operations. Each tool generally earns its place, though the surface is slightly heavy and some specialized tools could potentially be consolidated.

Completeness3/5

The core VM/container lifecycle is well covered, including create, clone, edit, resize, lifecycle actions, destroy, snapshots, and Terraform export. However, notable gaps remain: backup restore/delete, firewall rule deletion, migration, task tracking, and node/storage network administration are missing, creating several dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues