Proxmox VE MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PROXMOX_HOST | Yes | Host address and port of Proxmox VE instance | |
| PROXMOX_USER | No | Proxmox VE user identity | user@Permisions |
| PROXMOX_TIMEOUT | No | HTTP request timeout in seconds | 30.0 |
| PROXMOX_PASSWORD | No | User password for API ticket authentication | |
| PROXMOX_TOKEN_ID | No | API Token ID (takes precedence if provided) | |
| MCP_AUDIT_ENABLED | No | Enable JSON lines structured audit logging | true |
| MCP_AUDIT_LOG_PATH | No | Path to append structured audit records | audit.log |
| PROXMOX_VERIFY_SSL | No | Verify TLS certificates | false |
| PROXMOX_MAX_RETRIES | No | Maximum retry attempts on transient network errors | 3 |
| MCP_PERMISSION_LEVEL | No | Baseline permission scope (read_only, operator, admin) | operator |
| PROXMOX_TOKEN_SECRET | No | API Token Secret key | |
| MCP_ALLOWED_CLIENT_IPS | No | Comma-separated CIDR subnets allowed to execute MCP commands |
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
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_vmsB | List all QEMU virtual machines on a specified node. |
| get_vm_statusC | Fetch detailed runtime status of a QEMU virtual machine. |
| get_vm_configC | Fetch configuration settings of a QEMU virtual machine. |
| create_vmC | Create a new QEMU virtual machine on a specified node. |
| clone_vmB | Clone an existing virtual machine or template. |
| migrate_vmC | Migrate a virtual machine to another node in the cluster. |
| delete_vmA | Delete a QEMU virtual machine and purge resources. DESTRUCTIVE: Requires confirm=True. |
| start_vmB | Start a stopped QEMU virtual machine. |
| stop_vmA | Forcefully stop (power off) a QEMU virtual machine. DESTRUCTIVE: Requires confirm=True. |
| shutdown_vmA | Gracefully shutdown a QEMU virtual machine via ACPI signal. |
| reboot_vmC | Reboot a running QEMU virtual machine. |
| pause_vmB | Pause execution of a running QEMU virtual machine. |
| resume_vmB | Resume execution of a paused QEMU virtual machine. |
| suspend_vmC | Suspend virtual machine state to disk. |
| template_vmB | Convert a QEMU virtual machine to a reusable template. |
| update_cpu_vmC | Update CPU core and socket allocation of a virtual machine. |
| update_memory_vmB | Update RAM memory size and ballooning configuration of a VM. |
| resize_vm_diskC | Extend the capacity of a virtual machine disk. |
| add_vm_diskC | Attach a new virtual disk volume to a VM. |
| move_vm_diskB | Move a virtual machine disk to a different storage pool. |
| get_cloudinit_config_vmB | Fetch Cloud-Init configuration settings of a virtual machine. |
| configure_cloudinit_vmC | Configure Cloud-Init settings for automated OS setup. |
| regenerate_cloudinit_vmC | Regenerate the Cloud-Init drive image for a VM. |
| list_snapshots_vmB | List all snapshots for a specified virtual machine. |
| create_snapshot_vmC | Create a snapshot of a virtual machine. |
| rollback_snapshot_vmA | Rollback virtual machine state to a snapshot. DESTRUCTIVE: Requires confirm=True. |
| delete_snapshot_vmA | Delete a virtual machine snapshot. DESTRUCTIVE: Requires confirm=True. |
| list_containersA | List all LXC containers on a specified node. |
| get_container_statusB | Fetch detailed runtime status of an LXC container. |
| get_container_configC | Fetch configuration settings of an LXC container. |
| create_containerC | Create a new LXC container. Default unprivileged=True. |
| clone_containerC | Clone an existing LXC container or template. |
| template_containerB | Convert an LXC container to a reusable template. |
| delete_containerA | Delete an LXC container and purge resources. DESTRUCTIVE: Requires confirm=True. |
| start_containerA | Start a stopped LXC container. |
| stop_containerA | Forcefully stop an LXC container. DESTRUCTIVE: Requires confirm=True. |
| shutdown_containerB | Gracefully shutdown an LXC container. DESTRUCTIVE: Requires confirm=True. |
| restart_containerA | Reboot/restart an LXC container. DESTRUCTIVE: Requires confirm=True. |
| resize_container_diskC | Extend rootfs or disk capacity of an LXC container. |
| update_resources_containerC | Update CPU cores, memory, or swap resources of an LXC container. |
| configure_features_containerC | Configure feature flags (nesting, keyctl, fuse) for an LXC container. |
| add_bind_mount_containerB | Add a mount point or bind mount to an LXC container. |
| remove_bind_mount_containerA | Remove a mount point from an LXC container. DESTRUCTIVE: Requires confirm=True. |
| configure_network_containerC | Configure network adapter settings for an LXC container. |
| configure_dns_containerC | Update DNS nameserver and searchdomain settings for an LXC container. |
| list_snapshots_containerA | List all snapshots for an LXC container. |
| create_snapshot_containerB | Create a snapshot of an LXC container. |
| rollback_snapshot_containerA | Rollback LXC container state to a snapshot. DESTRUCTIVE: Requires confirm=True. |
| delete_snapshot_containerA | Delete an LXC container snapshot. DESTRUCTIVE: Requires confirm=True. |
| cluster_healthA | Fetch aggregated health summary, node counts, VM counts, and CPU/memory utilization of the Proxmox cluster. |
| cluster_resourcesA | Fetch resource list across the Proxmox cluster with optional type filtering (node, qemu, lxc, storage). |
| list_nodesA | List all nodes in the Proxmox cluster with status and resource utilization. |
| node_statusA | Fetch detailed hardware metrics, CPU/memory usage, kernel version, and status for a specific node. |
| list_storageA | List storage pools globally or for a specific node, including type, status, and calculated space usage. |
| storage_contentA | List volume items (VM disks, ISOs, LXC templates, backups) inside a storage pool on a node with optional content_type filter. |
| storage_statusA | Fetch capacity, total/used bytes, and detailed status for a specific storage pool on a node. |
| recent_tasksB | List recent asynchronous background tasks globally or for a specific node, with optional status and limit filters. |
| task_statusA | Fetch status and exit status of an asynchronous Proxmox background task by UPID. |
| run_provisioning_workflowC | Execute multi-step VM or LXC container provisioning with automated step tracing and failure rollback. |
| run_bulk_operationA | Execute batch lifecycle actions (start, stop, shutdown, pause, resume) across VMs or LXC containers matching filters. |
| run_backup_flowA | Execute multi-step backup workflow: storage pre-checks, pre-backup snapshotting, vzdump execution, and cleanup. |
| run_cluster_checkA | Aggregate cluster readiness state including node health, quorum state, storage space, and task health. |
| check_client_ipA | Verify whether a given client IP address is allowed by the security policy whitelist. |
| audit_security_rulesA | Fetch current security audit status, CIDR rules, and sensitive key scrubbing configuration. |
| get_security_summaryA | Retrieve security policy configuration and status summary. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| provision_vm | Prompt template guiding VM provisioning workflow. |
| vm_snapshot_workflow | Prompt template guiding VM snapshot maintenance workflow. |
| cloudinit_config | Prompt template guiding Cloud-Init configuration and drive setup workflow. |
| provision_container | Prompt template guiding LXC container provisioning workflow. |
| lxc_troubleshooting | Prompt template guiding LXC container diagnostic and troubleshooting workflow. |
| lxc_snapshot_workflow | Prompt template guiding LXC container snapshot maintenance workflow. |
| cluster_diagnostics | Prompt template guiding cluster health and diagnostic review. |
| node_diagnostics | Prompt template guiding node diagnostic and resource inspection workflow. |
| storage_inspection | Prompt template guiding storage usage inspection workflow. |
| task_troubleshooting | Prompt template guiding task log and UPID inspection workflow. |
| workflow_selection | Prompt template guiding interactive workflow selection and parameter gathering. |
| guided_provisioning | Prompt template guiding structured VM or LXC container provisioning parameters. |
| security_audit | Prompt template guiding runtime security policy audit and verification. |
| ip_permission_check | Prompt template guiding client IP access evaluation. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_cluster_summary_resource | Resource endpoint providing live JSON summary of cluster health and metrics. |
| get_cluster_health_resource | Resource endpoint providing JSON health summary of the cluster. |
| get_security_status_resource | Resource endpoint providing live JSON status of runtime security configuration and metrics. |
| get_security_policy_resource | Resource endpoint providing active security policy configuration as JSON. |
| get_security_audit_summary_resource | Resource endpoint providing audit summary statistics as JSON. |
TDQS
Scored across 65 tools
Each tool targets a distinct action and resource type (VM, container, storage, cluster, etc.). Overlapping operations like stop_vm vs shutdown_vm vs pause_vm are clearly differentiated by their descriptions, and workflow tools are uniquely named and scoped.
The majority of tools follow a consistent verb_noun pattern (e.g., create_vm, delete_vm, list_snapshots_container). However, several tools deviate with noun-first names like storage_content, task_status, and cluster_health, which mix conventions and slightly reduce predictability.
With 65 tools, this server is extremely heavy and exceeds the typical scope for a single MCP server. Even for a complex domain like Proxmox, the number is overwhelming and would benefit from splitting into smaller, focused servers (e.g., vm_management, container_management, cluster_management).
The tool set provides comprehensive lifecycle coverage for VMs, containers, storage, cluster health, nodes, and security, including create, read, update, delete, snapshots, and operational actions. Workflow tools for provisioning, backup, and cluster checks fill higher-level gaps, leaving few obvious missing operations.