Cursor Proxmox MCP Server

Manage Proxmox VE via Cursor: QEMU, LXC, storage, HA, firewall, access.

Local serverstdioPython

What is the Cursor Proxmox MCP MCP server?

Manage Proxmox VE via Cursor: QEMU, LXC, storage, HA, firewall, access. That is what the cursor proxmox mcp mcp server brings to an AI assistant: the same capability, reachable through the Model Context Protocol rather than a separate app or dashboard.

The short version

Registered via tools/register.py (called from ProxmoxMCPServer._setup_tools()) — inventory locked by tools/inventory.py / tests/expected_tools.py (CI fails on drift).

  • Token auth via proxmoxer (JSON config + optional ${ENV} secret interpolation)
  • Structured tool_call audit logging (redacted) + verbose / env log overrides
  • Full guest lifecycle, snapshots, vzdump backups
  • Storage content + definition CRUD + URL download
  • Cluster HA, firewall (rules/aliases/ipsets), access/ACL/tokens
  • Replication jobs, SDN write + apply, ACME order/renew, Ceph status/pools, pools

The tools it exposes

The server publishes 14 tools. What each one is for:

  • Domain — Tools
  • Nodes — get_nodes, get_node_status, list_node_networks + create/update/delete + reload_node_network, get_node_subscription, list_node_certificates
  • QEMU — lifecycle + config (ISO/cloud-init/net/onboot/tags/description; optional wait=true) + get_vm_network / get_vm_guest_info / fsfreeze_vm / fsthaw_vm /
  • LXC — lifecycle + config + suspend/resume (CRIU warn) + get_lxc_status / get_lxc_network / get_lxc_rrd_data + VNC/SPICE/termproxy; ssh_public_keys /
  • Storage — list, content, list_os_templates, list_isos, download-url, definition CRUD; PBS via create_storage(type=pbs) + get_pbs_storage_status
  • Firewall — cluster + guest rules/options; aliases; IP sets + CIDR members; macros
  • Access — users, groups, roles, ACL, tokens, get_permissions, get_token_permissions
  • Replication — list/status/run/create/update/delete jobs
  • SDN — zones/vnets/subnets CRUD + list controllers/ipams/dns + apply_sdn
  • ACME — list + create account/plugin, delete plugin, order_acme_certificate / renew_acme_certificate
  • Ceph — status, list pools/OSDs/MONs/MGRs, pool CRUD; gated OSD: list_node_disks → propose_ceph_osd → create_ceph_osd/destroy_ceph_osd (typed confirm; create
  • Pools — list/get/create/update/delete

Getting it running

The server ships on PyPI as cursor-proxmox-mcp, so your MCP client can launch it on demand — there is no separate build step. Add the server block to your client's configuration, restart it, and the tools register themselves.

What it needs from you

Configuration is passed through the environment: PROXMOX_MCP_CONFIG, PYTHONPATH, PROXMOX_HOST. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

  • uv (recommended) or Python 3.10+ - Proxmox API token

How it compares

Among the file and storage access options, the useful question is rarely "what can it do" but "what does it cost you to run" — permissions, credentials, and how much of your context its toolset consumes. Cursor Proxmox MCP's toolset — Domain, Nodes, QEMU and 11 more — is a fair guide to whether it matches your workflow. It is maintained by hackmods; worth a glance at recent repository activity before you build anything load-bearing on it.

This entry was verified against Cursor Proxmox MCP's own documentation before publication; SyncDev keeps the directory reviewed rather than auto-generated.

Things to watch

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • With 14 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Cursor Proxmox MCP.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

Available tools

ToolWhat it does
DomainTools
Nodesget_nodes, get_node_status, list_node_networks + create/update/delete + reload_node_network, get_node_subscription, list_node_certificates, get_node_report, list_node_services, get_node_time, wake_node, reboot_node / shu
QEMUlifecycle + config (ISO/cloud-init/net/onboot/tags/description; optional wait=true) + get_vm_network / get_vm_guest_info / fsfreeze_vm / fsthaw_vm / push_to_vm / pull_from_vm (guest agent) + bootstrap_cloudinit_vm / prov
LXClifecycle + config + suspend/resume (CRIU warn) + get_lxc_status / get_lxc_network / get_lxc_rrd_data + VNC/SPICE/termproxy; ssh_public_keys / docker_ready / nameserver / wait / onboot / description / tags on create; pro
Storagelist, content, list_os_templates, list_isos, download-url, definition CRUD; PBS via create_storage(type=pbs) + get_pbs_storage_status
Firewallcluster + guest rules/options; aliases; IP sets + CIDR members; macros
Accessusers, groups, roles, ACL, tokens, get_permissions, get_token_permissions
Replicationlist/status/run/create/update/delete jobs
SDNzones/vnets/subnets CRUD + list controllers/ipams/dns + apply_sdn
ACMElist + create account/plugin, delete plugin, order_acme_certificate / renew_acme_certificate
Cephstatus, list pools/OSDs/MONs/MGRs, pool CRUD; gated OSD: list_node_disks → propose_ceph_osd → create_ceph_osd/destroy_ceph_osd (typed confirm; create defaults dry_run=true)
Poolslist/get/create/update/delete
PrerequisitesThe Prerequisites tool exposed by this server.
TroubleshootingThe Troubleshooting tool exposed by this server.

How to install the Cursor Proxmox MCP MCP server

{
  "mcpServers": {
    "proxmox": {
      "command": "python",
      "args": ["-m", "proxmox_mcp.server"],
      "cwd": "C:/Users/YOU/Projects/cursor-proxmox-mcp",
      "env": {
        "PROXMOX_MCP_CONFIG": "C:/Users/YOU/Projects/cursor-proxmox-mcp/proxmox-config/config.json",
        "PYTHONPATH": "C:/Users/YOU/Projects/cursor-proxmox-mcp/src"
      }
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Configuration

  • uv (recommended) or Python 3.10+ - Proxmox API token
VariableDescriptionRequired
PROXMOX_MCP_CONFIGConfiguration value read at startup.Optional
PYTHONPATHFilesystem location the server is allowed to use.Optional
PROXMOX_HOSTEndpoint or connection string the server talks to.Optional

Example prompts to try

  • Use Cursor Proxmox MCP to Domain.
  • Use Cursor Proxmox MCP to Nodes.
  • Use Cursor Proxmox MCP to QEMU.

Frequently asked questions

It connects Cursor Proxmox MCP to MCP-compatible AI assistants such as Claude and Cursor, exposing 14 tools (Domain, Nodes, QEMU, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Cursor Proxmox MCP directly.