Proxmox MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PROXMOX_HOST | Yes | Proxmox server hostname or IP address (required) | |
| PROXMOX_PORT | No | Proxmox API port | 8006 |
| PROXMOX_USER | No | Username with realm (e.g., 'root@pam') | root@pam |
| PROXMOX_SSH_HOST | No | SSH host (falls back to PROXMOX_HOST) | |
| PROXMOX_SSH_NODE | No | Proxmox node name reachable via SSH (required when SSH enabled) | |
| PROXMOX_SSH_PORT | No | SSH port | 22 |
| PROXMOX_SSH_USER | No | SSH username | root |
| PROXMOX_SSL_MODE | No | SSL verification mode: 'strict', 'verify', or 'insecure' | strict |
| PROXMOX_TOKEN_NAME | Yes | API token name (required) | |
| PROXMOX_SSH_ENABLED | No | Enable SSH-based LXC exec | false |
| PROXMOX_TOKEN_VALUE | Yes | API token value (required) | |
| PROXMOX_SSH_KEY_PATH | No | Path to SSH private key (required when SSH enabled) | |
| PROXMOX_ALLOW_ELEVATED | No | Allow elevated operations (create, modify, delete) | false |
| PROXMOX_ALLOW_UNSAFE_COMMANDS | No | Allow shell special characters in exec commands | false |
| PROXMOX_SSH_HOST_KEY_FINGERPRINT | No | Host key fingerprint for verification |
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 |
|---|---|
| proxmox_nodeB | Query Proxmox node info. action=list: list all nodes | action=status: node status (elevated) | action=network: network interfaces | action=dns: DNS config | action=iface: specific interface details |
| proxmox_clusterA | Query Proxmox cluster info. action=status: overall cluster status with nodes and resource usage | action=options: get cluster-wide options | action=update_options: update cluster-wide options (requires elevated permissions) |
| proxmox_node_serviceA | Manage node services. action=list: list services | action=control: start/stop/restart a service (elevated) |
| proxmox_node_logA | Read node logs. action=syslog: read syslog | action=journal: read systemd journal |
| proxmox_node_taskA | Query node tasks. action=list: list recent tasks | action=get: get task details by UPID |
| proxmox_node_infoB | Query node information. action=aplinfo: appliance templates | action=netstat: network stats | action=rrddata: performance metrics | action=storage_rrddata: storage metrics | action=report: diagnostic report |
| proxmox_node_configB | Manage node configuration. action=get_time|set_time(elevated)|set_dns(elevated)|get_hosts|set_hosts(elevated) |
| proxmox_node_subscriptionA | Manage node subscription. action=get: get info | action=set: set key (elevated) | action=delete: remove (elevated) |
| proxmox_aptA | Manage APT packages. action=update(elevated)|upgrade(elevated): package ops | action=versions: list versions |
| proxmox_node_bulkC | Bulk guest operations. action=start_all|stop_all|migrate_all (all elevated) |
| proxmox_node_powerB | Node power control. action=shutdown|reboot|wakeonlan (all elevated) |
| proxmox_node_replicationA | Manage node replication. action=status|log: query | action=schedule: trigger now (elevated) |
| proxmox_node_network_ifaceB | Manage node network interfaces. action=create|update|delete|apply (all elevated) |
| proxmox_guest_listA | List all virtual machines and containers across the cluster with their status |
| proxmox_guest_statusB | Get detailed status for a VM (type=vm) or LXC container (type=lxc) |
| proxmox_guest_configA | Get hardware configuration for a VM (type=vm) or LXC container (type=lxc) |
| proxmox_guest_pendingA | Get pending configuration changes for a VM (type=vm) or LXC container (type=lxc) |
| proxmox_guest_featureA | Check if a feature (snapshot, clone, copy) is available for a VM (type=vm) or LXC container (type=lxc) |
| proxmox_guest_rrddataB | Get performance metrics (RRD data) for a VM (type=vm) or LXC container (type=lxc) |
| proxmox_create_lxcB | Create a new LXC container (requires elevated permissions) |
| proxmox_create_vmB | Create a new QEMU virtual machine (requires elevated permissions) |
| proxmox_get_next_vmidA | Get the next available VM/Container ID number |
| proxmox_ha_resourceB | Manage HA resources. action=list: list resources | action=get: get resource details | action=status: get HA manager status | action=create: create resource (elevated) | action=update: update resource (elevated) | action=delete: delete resource (elevated) |
| proxmox_ha_groupB | Manage HA groups. action=list: list groups | action=get: get group details | action=create: create group (elevated) | action=update: update group (elevated) | action=delete: delete group (elevated) |
| proxmox_cluster_firewall_ruleB | Manage cluster firewall rules. action=list: list rules | action=get: get rule by position | action=create: create rule (elevated) | action=update: update rule (elevated) | action=delete: delete rule (elevated) |
| proxmox_cluster_firewall_groupC | Manage cluster firewall groups. action=list: list groups | action=get: get group by name | action=create: create group (elevated) | action=update: update group (elevated) | action=delete: delete group (elevated) |
| proxmox_cluster_firewallA | Query/manage cluster firewall metadata. action=get_options: get firewall options | action=update_options: update firewall options (elevated) | action=list_macros: list firewall macros | action=list_refs: list firewall refs |
| proxmox_cluster_firewall_aliasA | Manage cluster firewall aliases. action=list: list aliases | action=get: get alias by name | action=create: create alias (elevated) | action=update: update alias (elevated) | action=delete: delete alias (elevated) |
| proxmox_cluster_firewall_ipsetA | Manage cluster firewall IP sets. action=list: list IP sets | action=create: create IP set (elevated) | action=delete: delete IP set (elevated) |
| proxmox_cluster_firewall_ipset_entryB | Manage cluster firewall IP set entries. action=list: list entries | action=create: add entry (elevated) | action=update: update entry (elevated) | action=delete: delete entry (elevated) |
| proxmox_cluster_backup_jobC | Manage cluster backup jobs. action=list: list jobs | action=get: get job by ID | action=create: create job (elevated) | action=update: update job (elevated) | action=delete: delete job (elevated) |
| proxmox_cluster_replication_jobC | Manage cluster replication jobs. action=list: list jobs | action=get: get job by ID | action=create: create job (elevated) | action=update: update job (elevated) | action=delete: delete job (elevated) |
| proxmox_cluster_configC | Manage cluster config. action=get: get config | action=list_nodes: list config nodes | action=get_node: get node config | action=join: join cluster (elevated) | action=totem: get totem config |
| proxmox_sdn_vnetC | Manage SDN virtual networks (list, get, create, update, delete) |
| proxmox_sdn_zoneB | Manage SDN zones (list, get, create, update, delete) |
| proxmox_sdn_controllerC | Manage SDN controllers (list, get, create, update, delete) |
| proxmox_sdn_subnetB | Manage SDN subnets (list, get, create, update, delete) |
| proxmox_userB | Manage Proxmox users (list, get, create, update, delete) |
| proxmox_groupB | Manage Proxmox groups (list, create, update, delete) |
| proxmox_roleC | Manage Proxmox roles (list, create, update, delete) |
| proxmox_aclC | Manage ACL entries (get, update) |
| proxmox_domainB | Manage authentication domains (list, get, create, update, delete) |
| proxmox_user_tokenA | Manage user API tokens (list, get, create, update, delete) |
| proxmox_poolC | Manage resource pools (list, get, create, update, delete) |
| proxmox_storage_configC | Manage storage configurations (list, get, create, update, delete, cluster_usage) |
| proxmox_storage_contentC | Manage storage content (list, list_templates, upload, download_url, delete, prune) |
| proxmox_file_restoreB | Restore files from backup. action=list: list files in backup | action=download: download file from backup |
| proxmox_cephA | Query Ceph cluster. action=status: get Ceph cluster health, FSID, monitors, OSDs, and placement groups |
| proxmox_ceph_osdC | Manage Ceph OSDs (list, create, delete) |
| proxmox_ceph_monC | Manage Ceph monitors (list, create, delete) |
| proxmox_ceph_mdsB | Manage Ceph MDS daemons (list, create, delete) |
| proxmox_ceph_poolC | Manage Ceph pools (list, create, update, delete) |
| proxmox_ceph_fsC | Manage Ceph filesystems (list, create) |
| proxmox_guest_startA | Start a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions) |
| proxmox_guest_stopB | Forcefully stop a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions) |
| proxmox_guest_rebootA | Reboot a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions) |
| proxmox_guest_shutdownA | Gracefully shutdown a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions) |
| proxmox_guest_deleteA | Delete a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions) |
| proxmox_guest_pauseB | Pause a QEMU virtual machine — VM only (requires elevated permissions) |
| proxmox_guest_resumeA | Resume a paused QEMU virtual machine — VM only (requires elevated permissions) |
| proxmox_guest_cloneB | Clone a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions) |
| proxmox_guest_resizeA | Resize VM/LXC CPU or memory (type=vm|lxc) (requires elevated permissions) |
| proxmox_guest_config_updateA | Update VM/LXC config key-value pairs (type=vm|lxc) (requires elevated permissions) |
| proxmox_guest_migrateB | Migrate a VM or LXC container to another node (type=vm|lxc) (requires elevated permissions) |
| proxmox_guest_templateA | Convert a VM or LXC container to a template (type=vm|lxc) (requires elevated permissions) |
| proxmox_agent_infoA | Query guest info via QEMU agent. operation=ping|osinfo|fsinfo|network_interfaces|time|timezone (requires elevated permissions) |
| proxmox_agent_hwB | Query guest hardware via QEMU agent. operation=memory_blocks|vcpus|memory_block_info|hostname|users (requires elevated permissions) |
| proxmox_agent_execB | Execute commands via QEMU agent. operation=exec: run command | operation=status: check execution status (requires elevated permissions) |
| proxmox_agent_fileA | Read/write files via QEMU agent. operation=read|write (requires elevated permissions) |
| proxmox_agent_freezeC | Manage filesystem freeze via QEMU agent. operation=status|freeze|thaw|fstrim (requires elevated permissions) |
| proxmox_agent_powerA | Guest power control via QEMU agent. operation=shutdown|suspend_disk|suspend_ram|suspend_hybrid (requires elevated permissions) |
| proxmox_agent_userB | Manage guest users via QEMU agent. operation=set_password (requires elevated permissions) |
| proxmox_guest_firewall_ruleA | Manage per-guest firewall rules. action=list|get: query rules | action=create|update|delete: manage rules (elevated). type=vm|lxc. Uses rule_action for firewall action (ACCEPT/REJECT/DROP), rule_type for direction (in/out/group). |
| proxmox_console_vncB | Get a VNC proxy ticket for a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions) |
| proxmox_console_termB | Get a terminal proxy ticket for a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions) |
| proxmox_console_spiceA | Get a SPICE proxy ticket for a QEMU VM (requires elevated permissions) |
| proxmox_guest_snapshotA | Manage guest snapshots (create, list, rollback, delete) for VMs and LXC containers (requires elevated permissions) |
| proxmox_backupA | Manage guest backups (create, list, restore, delete) for VMs and LXC containers (requires elevated permissions) |
| proxmox_vm_diskB | Manage VM disks. action=add: add disk | action=remove: remove disk (all elevated) |
| proxmox_lxc_mountpointC | Manage LXC mount points. action=add: add mountpoint | action=remove: remove mountpoint (all elevated) |
| proxmox_guest_disk_resizeA | Resize guest storage for VM (type=vm) or LXC container (type=lxc) (requires elevated permissions) |
| proxmox_guest_disk_moveB | Move guest storage for VM (type=vm) or LXC container (type=lxc) (requires elevated permissions) |
| proxmox_guest_networkB | Manage guest network interfaces. action=add|update|remove with type=vm|lxc (requires elevated permissions) |
| proxmox_node_diskB | Query node disk information. action=list|smart|lvm|zfs|lvmthin|directory |
| proxmox_node_disk_adminA | Destructive disk operations. action=init_gpt: initialize GPT | action=wipe: wipe disk (all elevated) |
| proxmox_cloudinitA | Manage cloud-init for a QEMU VM. action=get: list config | action=dump: dump rendered config (dump_type=user|network|meta) | action=regenerate: regenerate drive (requires elevated) |
| proxmox_certificateB | Manage node SSL certificates. action=list: view certs | action=upload: upload custom cert (requires elevated) | action=delete: remove custom cert (requires elevated) |
| proxmox_acme_certA | Manage ACME certificates. action=order|renew|revoke: certificate ops (requires elevated) | action=config: get ACME config |
| proxmox_acme_accountA | Manage ACME accounts. action=list|get: query accounts | action=create|update|delete: manage accounts (requires elevated) |
| proxmox_acme_infoB | Query ACME information. action=list_plugins|get_plugin|directories |
| proxmox_notificationC | Manage notification targets. action=list|get: query targets | action=create|delete|test: manage targets (requires elevated) |
| proxmox_lxc_execA | Execute a command inside an LXC container via SSH + pct exec (requires elevated + PROXMOX_SSH_ENABLED=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 92 tools
Multiple tool boundaries are unclear: proxmox_guest_resize (CPU/memory) vs proxmox_guest_disk_resize (storage) are easily confused, and node queries are split across proxmox_node, proxmox_node_info, and proxmox_node_config with overlapping network/DNS actions. Disk operations are also scattered across proxmox_vm_disk and proxmox_guest_disk_*, creating ambiguous choices.
Most tools follow a proxmox_<resource>_<action> snake_case pattern, but the set mixes action-in-tool-name (proxmox_guest_start) with action-parameter designs (proxmox_node, proxmox_cluster). There are also outliers like proxmox_create_vm/proxmox_create_lxc (versus the generic proxmox_guest_* Family) and proxmox_get_next_vmid which breaks the resource-first convention.
With 92 tools, this server is far beyond an effective scope and will overwhelm agent tool selection. Even for a full hypervisor-management API, grouping related operations would make the set far more usable.
The tool surface is impressively broad and covers most core Proxmox domains: guest lifecycle (creation, start/stop, clone, migrate, template), snapshots, backups, storage, Ceph, SDN, users/ACLs, firewall, HA, and node administration. Minor gaps exist (e.g., no explicit guest rename, backup restore lacks granular options), but common workflows are essentially fully covered.