Labsco
MCP SERVER

ProxmoxMCP-Plus

by RekklesNA

Run day-two Proxmox work — VMs, containers, snapshots, backups — from an assistant, with the long jobs tracked.

Cloud Resources & Infrastructure as Code
Summary
Long-running Proxmox tasks get a job id, so an agent can come back to them.

Backups and restores outlive a tool call, and this is one of the few Proxmox bridges that says so: jobs are persisted with a Proxmox UPID, and can be polled, cancelled or retried later. The other thing worth noticing is what is off by default — the SSH-backed command execution tools are not registered at all unless you add an ssh section, and the highest-risk ones want an approval token.

What it is

A Proxmox VE control plane exposed twice: as MCP tools for agents, and as an OpenAPI surface for HTTP automation. Async Proxmox tasks get durable job records.

What you get
  • Nodes and cluster — get_nodes, get_node_status, get_storage, get_cluster_status, plus get_node_syslog, get_cluster_log, get_task_log and firewall logs
  • VMs — get_vms, create_vm, clone_vm, start_vm, stop_vm, shutdown_vm, reset_vm, delete_vm, get_vm_config, set_vm_description and execute_vm_command through the guest agent
  • Containers — get_containers, create_container, start_container, stop_container, restart_container, delete_container, update_container_resources, get_container_config, get_container_ip, plus execute_container_command and update_container_ssh_keys when SSH is configured
  • Snapshots — list_snapshots, create_snapshot, delete_snapshot and rollback_snapshot, for both qemu and lxc
  • Backups and images — list_backups, create_backup, restore_backup, delete_backup, list_isos, list_templates, download_iso and delete_iso
  • Jobs — list_jobs, get_job, poll_job, cancel_job and retry_job, with stable job ids and Proxmox UPID tracking
  • Mutating operations marked as such, with approval tokens on the high-risk ones and a command policy on execution
Requirements

A Proxmox API token scoped to what you actually need, written into proxmox-config/config.json with host, port, user, token name and token value. Add an ssh section only if you want container command execution — those tools are not registered without it. Three runtime paths: uvx proxmox-mcp-plus for MCP stdio from PyPI, docker compose for native MCP over Streamable HTTP at http://localhost:8000/mcp, or the OpenAPI bridge on port 8811.

Setup effort

One command plus a key — uvx proxmox-mcp-plus, then supply credentials