io.github.antonio-mello-ai/mcp-proxmox
Manage Proxmox VE clusters through AI assistants — VMs, containers, and more
Versions
1.2.1latestTools 34
list_nodes List all nodes in the Proxmox cluster with status, CPU, memory, and uptime.
get_node_status Get detailed status for a specific node including CPU model, memory, disk, and versions. Args: node: Name of the Proxmox node (e.g. 'pve', 'node1').
list_vms List all QEMU virtual machines across the cluster. Args: node: Optional. Filter by node name. status: Optional. Filter by status ('running', 'stopped').
list_containers List all LXC containers across the cluster. Args: node: Optional. Filter by node name. status: Optional. Filter by status ('running', 'stopped').
get_guest_status Get detailed status of a VM or container by VMID. Auto-detects type and node. Args: vmid: The numeric ID of the VM or container (e.g. 100, 200).
start_guest Start a stopped VM or container. Args: vmid: The numeric ID of the VM or container to start.
stop_guest Force-stop a running VM or container. WARNING: May cause data loss. Args: vmid: The numeric ID of the VM or container to stop. confirm: Must be true to execute. First call without confirm shows a warning.
shutdown_guest Gracefully shut down a VM or container via ACPI signal (VMs) or init (containers). Args: vmid: The numeric ID of the VM or container to shut down.
reboot_guest Reboot a running VM or container. Args: vmid: The numeric ID of the VM or container to reboot. confirm: Must be true to execute. First call without confirm shows a warning.
list_snapshots List all snapshots for a VM or container. Args: vmid: The numeric ID of the VM or container.
create_snapshot Create a new snapshot for a VM or container. Args: vmid: The numeric ID of the VM or container. name: Snapshot name (alphanumeric, hyphens, underscores). description: Optional description for the snapshot.
rollback_snapshot Rollback a VM or container to a previous snapshot. WARNING: All changes since the snapshot will be LOST. Args: vmid: The numeric ID of the VM or container. name: Name of the snapshot to rollback to. confirm: Must be true to execute. First call without confirm shows a warning.
delete_snapshot Delete a snapshot from a VM or container. Args: vmid: The numeric ID of the VM or container. name: Name of the snapshot to delete. confirm: Must be true to execute. First call without confirm shows a warning.
list_storages List storage pools across the cluster with capacity and usage info. Args: node: Optional. Filter by node name.
list_storage_content List content of a storage pool (ISOs, templates, backups, disk images). Args: node: Name of the Proxmox node. storage_name: Name of the storage pool (e.g. 'local', 'local-lvm'). content_type: Optional. Filter by type: 'iso', 'vztmpl', 'backup', 'images', 'rootdir'.
create_vm Create a new QEMU virtual machine. The VM is created stopped by default. Use start_after_create=true to auto-start. Args: node: Target node name (e.g. 'pve'). name: VM name. cores: Number of CPU cores (default 1). memory: Memory in MB (default 2048). disk_size: Disk size with unit (default '32G'). Examples: '10G', '100G', '1T'. storage_pool: Storage for disk (default 'local-lvm'). iso: Optional ISO volume ID for installation (e.g. 'local:iso/ubuntu-24.04.iso'). os_type: OS type (default 'l26' for Linux). Options: l26, l24, win11, win10, other. net_bridge: Network bridge (default 'vmbr0'). start_after_create: Start VM after creation (default false). vmid: Optional specific VMID. Auto-assigned if not provided.
create_container Create a new LXC container from a template. Args: node: Target node name (e.g. 'pve'). name: Container hostname. template: Template volume ID (e.g. 'local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst'). Use list_storage_content with content_type='vztmpl' to find available templates. cores: Number of CPU cores (default 1). memory: Memory in MB (default 512). disk_size: Root disk size in GB (default 8). storage_pool: Storage for rootfs (default 'local-lvm'). net_bridge: Network bridge (default 'vmbr0'). password: Optional root password. ssh_public_keys: Optional SSH public keys for root access. start_after_create: Start container after creation (default false). vmid: Optional specific VMID. Auto-assigned if not provided.
clone_guest Clone an existing VM or container. Auto-detects type and node. Creates a full (independent) clone by default. Set full_clone=false for a linked clone. Args: vmid: Source VM/container VMID to clone. new_name: Optional name for the clone. target_node: Optional target node for the clone (for cross-node cloning). full_clone: Full clone (true, default) or linked clone (false). target_storage: Optional target storage for the clone's disks. new_vmid: Optional VMID for the clone. Auto-assigned if not provided.
delete_guest Permanently delete a VM or container. IRREVERSIBLE. The guest must be stopped before deletion. All disk images will be destroyed. Args: vmid: The numeric ID of the VM or container to delete. confirm: Must be true to execute. First call without confirm shows a warning.
list_backups List backup files across storages. Args: node: Optional. Filter by node name. storage_name: Optional. Filter by storage name. vmid: Optional. Filter by VMID to see backups of a specific guest.
create_backup Create a backup (vzdump) of a VM or container. Args: vmid: The numeric ID of the VM or container to back up. storage_name: Target storage for the backup (default 'local'). mode: Backup mode: 'snapshot' (no downtime, default), 'suspend', or 'stop'. compress: Compression: 'zstd' (default), 'lzo', 'gzip', or '0' (none). notes: Optional notes/description for the backup.
restore_backup Restore a VM or container from a backup file. Args: volid: Volume ID of the backup (e.g. 'local:backup/vzdump-qemu-100-2024_03_04.vma.zst'). Use list_backups to find available backups. node: Target node for the restored guest. vmid: Optional VMID for the restored guest. Auto-assigned if not provided. storage_pool: Storage for restored disks (default 'local-lvm'). guest_type: Type of guest: 'vm' or 'container'. confirm: Must be true to execute. First call without confirm shows a warning.
exec_command Execute a command inside a QEMU VM via the guest agent. Requires qemu-guest-agent to be installed and running inside the VM. Not supported for LXC containers. Args: vmid: The numeric ID of the VM. command: The command to execute (e.g. 'hostname', 'df -h', 'systemctl status nginx'). timeout: Max seconds to wait for command completion (default 30, max 300).
get_guest_metrics Get resource usage metrics (CPU, memory, network, disk I/O) for a VM or container. Args: vmid: The numeric ID of the VM or container. timeframe: Time range for metrics. Options: 'hour', 'day', 'week', 'month', 'year'.
list_tasks List recent tasks on a Proxmox node (backups, migrations, snapshots, etc.). Args: node: Name of the Proxmox node. limit: Maximum number of tasks to return (default 20, max 100). status: Optional. Filter by task status ('ok', 'error', 'running').
list_networks List network interfaces, bridges, and bonds on a Proxmox node. Args: node: Name of the Proxmox node (e.g. 'pve').
resize_guest Resize CPU, memory, and/or disk of a VM or container. At least one of cores, memory, or disk_size must be provided. CPU and memory changes take effect on next reboot for running guests. Disk resize is immediate but IRREVERSIBLE (disks can only grow). Args: vmid: The numeric ID of the VM or container. cores: New number of CPU cores. memory: New memory size in MB. disk_size: Disk size change. Use '+10G' to add 10GB, or '50G' for absolute size. Supported units: K, M, G, T. disk: Disk name to resize (default 'scsi0' for VMs, auto-mapped to 'rootfs' for CTs). confirm: Must be true to execute. First call without confirm shows a warning.
list_firewall_rules List firewall rules. Can target a specific VM/CT, a node, or the cluster. Args: vmid: Optional. List rules for this VM/container. node: Optional. List rules for this node. Ignored if vmid is provided. If neither vmid nor node is provided, lists cluster-level rules.
add_firewall_rule Add a firewall rule to a VM/CT, node, or cluster. Args: action: Rule action: 'ACCEPT', 'DROP', or 'REJECT'. type_: Rule direction: 'in' (incoming) or 'out' (outgoing). vmid: Optional. Add rule to this VM/container. node: Optional. Add rule to this node. Ignored if vmid is provided. proto: Optional. Protocol: 'tcp', 'udp', 'icmp', etc. dport: Optional. Destination port or range (e.g. '80', '8000-9000', '80,443'). sport: Optional. Source port or range. source: Optional. Source IP/CIDR (e.g. '192.168.1.0/24'). dest: Optional. Destination IP/CIDR. iface: Optional. Network interface (e.g. 'net0'). enable: Enable rule immediately (default true). comment: Optional description for the rule. pos: Optional position in the rule chain (0 = first). If neither vmid nor node is provided, adds a cluster-level rule.
delete_firewall_rule Delete a firewall rule by its position number. Use list_firewall_rules first to see rule positions. Args: pos: Position of the rule to delete (from list_firewall_rules output). vmid: Optional. Delete from this VM/container's rules. node: Optional. Delete from this node's rules. Ignored if vmid is provided. confirm: Must be true to execute. First call without confirm shows a warning. If neither vmid nor node is provided, deletes from cluster-level rules.
migrate_guest Live migrate a VM or container to another node in the cluster. Args: vmid: The numeric ID of the VM or container to migrate. target_node: Name of the destination node (e.g. 'pve2'). online: Live migration (true, default) or offline (false). Online keeps the guest running. confirm: Must be true to execute. First call without confirm shows a warning.
list_templates List all VM templates available in the cluster for cloning.
create_template Convert a stopped VM into a template. IRREVERSIBLE. Once converted, the VM can no longer be started — it can only be cloned. Args: vmid: The numeric ID of the VM to convert. confirm: Must be true to execute. First call without confirm shows a warning.
configure_cloud_init Configure cloud-init settings on a VM for automated provisioning. At least one parameter must be provided. Changes take effect on next boot. Args: vmid: The numeric ID of the VM. user: Default user name for cloud-init. password: Password for the default user. ssh_keys: SSH public keys (URL-encoded, newline-separated for multiple keys). ip_config: IP configuration string (e.g. 'ip=dhcp' or 'ip=10.0.0.5/24,gw=10.0.0.1'). nameserver: DNS server IP(s), space-separated. searchdomain: DNS search domain(s), space-separated.
Permissions 2
env_vars low filesystem low