Proxmox VE MCP Server
Manage Proxmox VE through AI assistants
23 stars127 downloads/wk
Reviews
Write oneNobody has reviewed Proxmox VE MCP Server yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Proxmox VE MCP Server tools (100, 37 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
pve_bulk_migrate_guestsMigrate multiple VMs/containers to a target node in one bulk action (PVE 9.1+). Returns a task ID
pve_bulk_shutdown_guestsGracefully shut down multiple VMs/containers cluster-wide in one bulk action (PVE 9.1+). Returns a task ID
pve_bulk_start_guestsStart multiple VMs/containers cluster-wide in one bulk action (PVE 9.1+). Returns a task ID
pve_bulk_suspend_guestsSuspend multiple VMs cluster-wide in one bulk action (PVE 9.1+). Returns a task ID
pve_clone_lxc_containerClone an LXC container to create a new container from it
pve_clone_qemu_vmClone a QEMU VM to create a new VM from it
pve_create_backup_jobwrite actionCreate a new scheduled backup job
pve_create_firewall_rulewrite actionCreate a new cluster-level firewall rule
pve_create_ha_resourcewrite actionAdd a VM or container to HA management. SID format: type:vmid (e.g. vm:100). Requires Sys.Console privilege on PVE 9.2+
pve_create_ha_rulewrite actionCreate an HA rule (node-affinity: pin resources to nodes; resource-affinity: keep resources together or apart). Requires Sys.Console. Resources format: comma-separated IDs (e.g. vm:100,ct:200)
pve_create_lxc_containerwrite actionCreate a new LXC container
pve_create_lxc_snapshotwrite actionCreate a snapshot of an LXC container
pve_create_networkwrite actionCreate a new network interface on a node
pve_create_poolwrite actionCreate a new resource pool
pve_create_qemu_snapshotwrite actionCreate a snapshot of a QEMU VM
pve_create_qemu_vmwrite actionCreate a new QEMU virtual machine
pve_create_userwrite actionCreate a new user in the PVE access control system
pve_create_user_tokenwrite actionCreate an API token for a user. The token secret is returned ONCE in the response and cannot be retrieved again
pve_delete_backup_jobwrite actionDelete a scheduled backup job
pve_delete_firewall_rulewrite actionDelete a cluster-level firewall rule by position
pve_delete_ha_resourcewrite actionRemove a VM or container from HA management (does not delete the VM/container itself)
pve_delete_ha_rulewrite actionDelete an HA rule. Requires Sys.Console
pve_delete_lxc_containerwrite actionDelete an LXC container and all its data. The container must be stopped first.
pve_delete_lxc_snapshotwrite actionDelete a snapshot of an LXC container
pve_delete_networkwrite actionDelete a network interface configuration on a node
pve_delete_poolwrite actionDelete a resource pool (pool must be empty)
pve_delete_qemu_snapshotwrite actionDelete a snapshot of a QEMU VM
pve_delete_qemu_vmwrite actionDelete a QEMU virtual machine and all its data. The VM must be stopped first.
pve_delete_userwrite actionDelete a user from the PVE access control system
pve_delete_user_tokenwrite actionDelete an API token from a user
pve_disarm_haDisarm the HA stack cluster-wide for maintenance (releases node watchdogs, PVE 9.2+). resource_mode 'freeze': queue state changes until re-armed; 'ignore': HA ignores resources entirely. Requires Sys.Console privilege — a privilege-separated API token must have Sys.Console granted
pve_get_backup_jobGet the configuration of a specific backup job
pve_get_cluster_ha_statusGet the current HA manager status
pve_get_cluster_logGet recent cluster log entries
pve_get_cluster_optionsGet cluster-wide datacenter options
pve_get_cluster_statusGet the current cluster status including node membership and quorum
pve_get_firewall_optionsGet the cluster-level firewall options
pve_get_ha_resourceGet the HA configuration for a specific resource. SID format: type:vmid (e.g. vm:100)
pve_get_ha_ruleGet the configuration of a specific HA rule
pve_get_lxc_configGet the configuration of an LXC container
pve_get_lxc_rrddataGet RRD statistics (CPU, memory, disk, network) for an LXC container over a time period
pve_get_lxc_statusGet the current status of an LXC container including CPU, memory, and disk usage
pve_get_networkGet the configuration of a specific network interface on a node
pve_get_next_vmidGet the next available VMID in the cluster
pve_get_node_dnsGet DNS settings for a specific node
pve_get_node_statusGet detailed status of a specific node including CPU, memory, uptime, and load
pve_get_node_syslogGet system log entries from a specific node
pve_get_node_timeGet time and timezone information for a specific node
pve_get_node_versionGet the PVE version information for a specific node
pve_get_poolGet detailed information about a resource pool including its members
pve_get_qemu_configGet the configuration of a QEMU VM
pve_get_qemu_rrddataGet RRD statistics (CPU, memory, disk, network) for a QEMU VM over a time period
pve_get_qemu_statusGet the current status of a QEMU VM including CPU, memory, disk, and network usage
pve_get_storage_configGet the configuration of a specific storage backend
pve_get_storage_statusGet the status and usage of a specific storage on a node
pve_get_userGet detailed information about a specific user
pve_list_aclsList all access control list entries
pve_list_backup_jobsList all scheduled backup jobs in the cluster
pve_list_cluster_backup_infoList guests that are not covered by any backup job
pve_list_cluster_replicationList all replication jobs in the cluster
pve_list_cluster_resourcesList all cluster resources (VMs, containers, storage, nodes) with optional type filter
pve_list_domainsList all authentication domains/realms (e.g. pam, pve, ldap, ad)
pve_list_firewall_aliasesList all cluster-level firewall aliases (named IP/CIDR entries)
pve_list_firewall_ipsetsList all cluster-level firewall IP sets
pve_list_firewall_rulesList all cluster-level firewall rules
pve_list_groupsList all user groups
pve_list_ha_resourcesList all HA-managed resources in the cluster
pve_list_ha_rulesList HA rules (node-affinity and resource-affinity). HA rules replace the deprecated HA groups (PVE 9+)
pve_list_lxc_containersList all LXC containers on a specific node
pve_list_lxc_snapshotsList all snapshots of an LXC container
pve_list_networksList all network interfaces on a specific node
pve_list_node_servicesList all system services and their status on a specific node
pve_list_node_storageList available storage on a specific node with usage information
pve_list_nodesList all nodes in the Proxmox VE cluster
pve_list_poolsList all resource pools in the cluster
pve_list_qemu_snapshotsList all snapshots of a QEMU VM
pve_list_qemu_vmsList all QEMU virtual machines on a specific node
pve_list_rolesList all available roles and their privileges
pve_list_storageList all configured storage backends in the cluster
pve_list_storage_contentList the content (disk images, ISOs, templates, backups) of a specific storage on a node
pve_list_user_tokensList the API tokens of a user
pve_list_usersList all users in the PVE access control system
pve_manage_node_serviceStart, stop, restart, or reload a system service on a specific node
pve_migrate_qemu_vmMigrate a QEMU VM to another node in the cluster
pve_pull_oci_imagePull an OCI container image from a registry (e.g. Docker Hub, GHCR) into a storage's template cache for use as an LXC container template (PVE 9.1+). Returns a task ID
pve_rollback_lxc_snapshotRollback an LXC container to a previous snapshot state
pve_rollback_qemu_snapshotRollback a QEMU VM to a previous snapshot state
pve_run_backupwrite actionRun an immediate backup (vzdump) of one or more VMs/containers on a node
pve_update_aclwrite actionUpdate access control list — grant or revoke roles for users/groups on specific paths
pve_update_cluster_optionswrite actionUpdate cluster-wide datacenter options
pve_update_firewall_optionswrite actionUpdate the cluster-level firewall options (e.g. enable/disable firewall)
pve_update_firewall_rulewrite actionUpdate an existing cluster-level firewall rule by position
pve_update_ha_resourcewrite actionUpdate the HA configuration for an existing managed resource
pve_update_ha_rulewrite actionUpdate an existing HA rule. Requires Sys.Console. Use delete_settings to unset options
pve_update_lxc_configwrite actionUpdate the configuration of an LXC container
pve_update_networkwrite actionUpdate the configuration of a network interface on a node
pve_update_poolwrite actionUpdate a resource pool — add or remove VMs/containers and storage from the pool
pve_update_qemu_configwrite actionUpdate the configuration of a QEMU VM
pve_update_userwrite actionUpdate an existing user's properties
pve_update_user_tokenwrite actionUpdate an API token's comment, expiration, or privsep
Public scan report
scanner v0.1.9 · 2026-09-20 · same rubric, same numbers if you re-run it
- Code scan43 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 18 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
What the publisher says
From the Proxmox VE MCP Server repository's README, as published. We do not edit it. Read it on GitHub
MCP PVE
MCP server for Proxmox VE. Manage virtual machines, containers, storage, networking, and clusters through natural language in Cursor, Claude Code, and Claude Desktop.
Features
- 121 tools across 12 categories covering the Proxmox VE REST API
- Three access tiers (read-only, read-execute, full) for granular control
- Category filtering via PVE_CATEGORIES to expose only the tools you need
- Zero HTTP dependencies -- uses native fetch (Node 22+)
- Self-signed cert support via PVEVERIFYSSL=false
- Docker images for linux/amd64 and linux/arm64 on GHCR
- Remote MCP via HTTP transport (MCP_TRANSPORT=http) using the Streamable HTTP protocol
- TypeScript/ESM with full type safety
API Compatibility
Tested with Proxmox VE 9.2.4.
Quick Start
Run the server directly with npx:
PVE_BASE_URL="https://pve.example.com:8006" \
PVE_TOKEN_ID="root@pam!mcp" \
PVE_TOKEN_SECRET="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" \
npx -y @samik081/mcp-pveThe server validates your PVE connection on startup and fails immediately with a clear error if credentials are missing or invalid.
Docker
Run with Docker (stdio transport, same as npx):
docker run --rm -i \
-e PVE_BASE_URL=https://pve.example.com:8006 \
-e PVE_TOKEN_ID=root@pam!mcp \
-e PVE_TOKEN_SECRET=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
-e PVE_VERIFY_SSL=false \
ghcr.io/samik081/mcp-pveTo run as a remote MCP server with HTTP transport:
docker run -d -p 3000:3000 \
-e MCP_TRANSPORT=http \
-e PVE_BASE_URL=https://pve.example.com:8006 \
-e PVE_TOKEN_ID=root@pam!mcp \
-e PVE_TOKEN_SECRET=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
-e PVE_VERIFY_SSL=false \
ghcr.io/samik081/mcp-pveThe MCP endpoint is available at http://localhost:3000 and a health check at http://localhost:3000/health.
Configuration
Claude Code CLI (recommended):
# Using npx
claude mcp add --transport stdio pve \
--env PVE_BASE_URL=https://pve.example.com:8006 \
--env PVE_TOKEN_ID=root@pam!mcp \
--env PVE_TOKEN_SECRET=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--env PVE_VERIFY_SSL=false \
-- npx -y @samik081/mcp-pve
# Using Docker
claude mcp add --transport stdio pve \
--env PVE_BASE_URL=https://pve.example.com:8006 \
--env PVE_TOKEN_ID=root@pam!mcp \
--env PVE_TOKEN_SECRET=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--env PVE_VERIFY_SSL=false \
-- docker run --rm -i ghcr.io/samik081/mcp-pve
# Using remote HTTP (connect to a running Docker container or HTTP server)
claude mcp add --transport http pve http://localhost:3000JSON config (works with Claude Code .mcp.json, Claude Desktop claudedesktopconfig.json, Cursor .cursor/mcp.json):
{
"mcpServers": {
"pve": {
"command": "npx",
"args": ["-y", "@samik081/mcp-pve"],
"env": {
"PVE_BASE_URL": "https://pve.example.com:8006",
"PVE_TOKEN_ID": "root@pam!mcp",
"PVE_TOKEN_SECRET": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"PVE_VERIFY_SSL": "false"
}
}
}
}Docker (stdio):
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Install directly
Runs npx -y @samik081/mcp-pve on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add mcp-pve -- npx -y @samik081/mcp-pve
Proxmox VE MCP Server: common questions
- Is Proxmox VE MCP Server safe?
- Mostly: it is graded B (83/100). Read the Proxmox VE MCP Server safety report
- How do I install Proxmox VE MCP Server?
- It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
- Does Proxmox VE MCP Server need an API key?
- Yes. The registry entry asks for
PVE_TOKEN_ID,PVE_TOKEN_SECRET. - Is Proxmox VE MCP Server maintained?
- The last commit was 18 days ago (2026-09-02). The latest release is v0.8.1.