Proxmox MCP Server
Allows management of Proxmox VE environments, including VMs, containers, storage, firewalls, backups, snapshots, and more.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Proxmox MCP Server list all VMs on node proxmox1"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Proxmox MCP Server
A Model Context Protocol (MCP) server for managing Proxmox VE (Virtual Environment).
Features
Status Monitoring: Get status of nodes, storage, clusters, VMs, and containers
VM Management: Create, delete, start, stop, shutdown, restart VMs
Container Management: Create, delete, start, stop, shutdown, restart containers
Console Access: Access VM console via websocket or serial
ISO Management: Download, list, and manage ISO files
VM Guest Management: SSH, set IPs, manage users (requires Proxmox guest agent)
Maintenance: Get Proxmox version, check for updates, perform upgrades
Template Management: Create and manage VM/container templates
Backup and Restore: Create and restore backups for VMs and containers
HA Management: Enable/disable High Availability for VMs and containers
Migration: Migrate VMs and containers between nodes
Snapshots: Create and manage VM/container snapshots
Resource Pools: Manage resource pools and assign VMs to them
Related MCP server: Proxmox MCP Server
n8n Compatibility
This server supports both stdio and HTTP transports, making it compatible with n8n and other MCP clients.
HTTP Transport Mode (for n8n)
To use with n8n, set the HTTP_MODE environment variable to "true":
{
"mcpServers": {
"proxmox": {
"command": "node",
"args": ["/path/to/proxmox-mcp-server/build/index.js"],
"env": {
"PROXMOX_HOST": "YOUR_PROXMOX_HOSTNAME_OR_IP",
"PROXMOX_USER": "YOUR_USERNAME@pam",
"PROXMOX_PASSWORD": "YOUR_PASSWORD",
"HTTP_MODE": "true",
"HTTP_PORT": "3333"
}
}
}
}n8n will connect to http://localhost:3333/ for MCP communication.
Prerequisites
Node.js 18 or higher
Proxmox VE 7.x or higher
An account with appropriate permissions (e.g.,
PVEAuditororPVEAdminrole)
Installation
1. Clone or navigate to the server directory
cd proxmox-mcp-server2. Install dependencies
npm install3. Build the server
npm run build4. Configure environment variables
The server requires the following environment variables:
Variable | Description | Example |
| Proxmox hostname or IP address |
|
| Proxmox username with full path |
|
| Proxmox password |
|
| (Optional) Proxmox API port (default: 8006) |
|
| (Optional) Verify SSL certificate (default: true) |
|
5. Configure MCP settings
Add the server configuration to your MCP settings file:
For Roo Code (macOS/Linux): ~/.roo-code/settings/mcp_settings.json
For Roo Code (Windows): %APPDATA%\roo-code\settings\mcp_settings.json
For Claude Desktop (macOS): ~/Library/Application Support/Claude/claude_desktop_config.json
For Claude Desktop (Windows): %APPDATA%\Claude\claude_desktop_config.json
Example configuration:
{
"mcpServers": {
"proxmox": {
"command": "node",
"args": ["/path/to/proxmox-mcp-server/build/index.js"],
"env": {
"PROXMOX_HOST": "proxmox.example.com",
"PROXMOX_USER": "admin@pam",
"PROXMOX_PASSWORD": "your_password"
},
"disabled": false,
"alwaysAllow": [],
"disabledTools": []
}
}
}6. Restart your MCP client
Restart Roo Code or Claude Desktop to load the new MCP server configuration.
Usage
Once configured, you can use the Proxmox MCP server through your MCP client's interface. Available tools include:
Status Tools
get_node_status- Get status of Proxmox nodesget_summary- Get summary of Proxmox node resourcesget_storage_status- Get status of Proxmox storageget_cluster_status- Get Proxmox cluster statusget_vm_status- Get status of Proxmox VMsget_container_status- Get status of Proxmox containersget_running_vms- Get all running VMs and containers on a node
VM Management
create_vm- Create a new VM with cloud-init, guest agent, and network interface configurationdelete_vm- Delete a VMstart_vm- Start a VMstop_vm- Stop a VMshutdown_vm- Shutdown a VM gracefullyrestart_vm- Restart a VM
Container Management
create_container- Create a new container with OS configurationdelete_container- Delete a containerstart_container- Start a containerstop_container- Stop a containershutdown_container- Shutdown a container gracefullyrestart_container- Restart a container
Console Access
vm_console- Access VM console (websocket or serial)
ISO Management
list_isos- List ISO files on a Proxmox nodedownload_iso- Download an ISO file to a Proxmox nodedelete_iso- Delete an ISO file from a Proxmox nodeget_iso_download_status- Get status of an ISO download task
Firewall Management
enable_vm_firewall- Enable firewall for a VMdisable_vm_firewall- Disable firewall for a VMenable_container_firewall- Enable firewall for a containerdisable_container_firewall- Disable firewall for a containercreate_vm_firewall_rule- Create a firewall rule for a VMcreate_container_firewall_rule- Create a firewall rule for a containerlist_vm_firewall_rules- List firewall rules for a VMlist_container_firewall_rules- List firewall rules for a containerdelete_vm_firewall_rule- Delete a firewall rule for a VMdelete_container_firewall_rule- Delete a firewall rule for a container
VM Guest Management (requires Proxmox Guest Agent)
ssh_to_vm- SSH into a VM using qm consoleset_vm_ip- Set IP address for a VMset_vm_hostname- Set hostname for a VMcreate_vm_user- Create a new user in a VMset_vm_user_password- Set password for an existing VM userrun_vm_command- Run a command in a VMget_vm_interfaces- Get network interfaces from a VM
Maintenance
get_proxmox_version- Get Proxmox VE versionget_updates- Get available updatesupgrade_proxmox- Upgrade Proxmox VEget_task_status- Get status of running tasks
Prerequisites for VM Guest Management
The create_vm tool enables the Proxmox Guest Agent when installGuestAgent is enabled (default: true). However, you still need to install the guest agent inside the VM:
Install the Proxmox Guest Agent inside your VMs/containers
For Linux VMs:
apt install qemu-guest-agentoryum install qemu-guest-agentEnsure the guest agent service is running:
systemctl enable --now qemu-guest-agent
Note: The VM is created in a stopped state. You need to start it manually after creation.
Network Interface Configuration
The create_vm tool supports multiple network interfaces with various configuration options:
Parameter | Description | Example |
| Network interface 0 |
|
| Network interface 1 |
|
| Network interface 2 |
|
| Network interface 3 |
|
Network interface format: type=MAC_ADDRESS,bridge=BRIDGE_NAME
Supported NIC types: virtio, e1000, rtl8139, vmxnet3, ne2k_pci, pcnet
Cloud-init Configuration
The create_vm tool supports cloud-init for automated VM configuration:
Parameter | Description | Example |
| Enable cloud-init (default: true) |
|
| DNS nameserver |
|
| Search domain |
|
| IP configuration |
|
| SSH public keys |
|
| Username for cloud-init |
|
| Password for cloud-init user |
|
ISO Management
To install an OS from an ISO file:
Download the ISO:
{
"method": "proxmox/download_iso",
"params": {
"node": "pve1",
"storage": "local",
"filename": "ubuntu-22.04.iso",
"url": "https://releases.ubuntu.com/22.04/ubuntu-22.04.4-live-server-amd64.iso"
}
}List ISOs to verify the download:
{
"method": "proxmox/list_isos",
"params": {
"node": "pve1",
"storage": "local"
}
}Create a VM with the ISO as the boot device:
{
"method": "proxmox/create_vm",
"params": {
"node": "pve1",
"vmid": 100,
"name": "ubuntu-server",
"memory": 2048,
"cores": 2,
"disk": "virtio0: local:20",
"ostype": "l26",
"scsihw": "virtio-scsi-pci",
"bootdisk": "virtio0",
"net0": "virtio,bridge=vmbr0"
}
}Attach the ISO to the VM (after creation):
{
"method": "proxmox/create_vm",
"params": {
"node": "pve1",
"vmid": 100,
"name": "ubuntu-server",
"memory": 2048,
"cores": 2,
"disk": "virtio0: local:20",
"ostype": "l26",
"scsihw": "virtio-scsi-pci",
"bootdisk": "virtio0",
"net0": "virtio,bridge=vmbr0",
"ide2": "local:iso/ubuntu-22.04.iso,media=cdrom"
}
}Firewall Management
Enable firewall for a VM:
{
"method": "proxmox/enable_vm_firewall",
"params": {
"node": "pve1",
"vmid": 100
}
}Create a firewall rule:
{
"method": "proxmox/create_vm_firewall_rule",
"params": {
"node": "pve1",
"vmid": 100,
"rule": "in,REJECT,22/tcp",
"pos": 1
}
}List firewall rules:
{
"method": "proxmox/list_vm_firewall_rules",
"params": {
"node": "pve1",
"vmid": 100
}
}Development
Build
npm run buildRun directly (for testing)
PROXMOX_HOST=your-host PROXMOX_USER=your-user PROXMOX_PASSWORD=your-password npm startLicense
MIT
Available Tools
76 toolsadd_vm_to_poolB
Add a VM to a resource pool
Inputs: vmid (required), poolid (required).
create_containerC
Create a new container on Proxmox
Inputs: node (required), vmid (required), memory (required), hostname (required), +11 more.
create_container_backupC
Create a backup of a container
Inputs: node (required), vmid (required), storage (required), mode, +8 more.
create_container_firewall_ruleB
Create a firewall rule for a container
Inputs: node (required), rule (required), vmid (required), pos.
create_container_snapshotC
Create a snapshot for a container
Inputs: node (required), vmid (required), snapshotname (required), description.
create_resource_poolC
Create a new resource pool
Inputs: poolid (required), comment.
create_template_from_containerC
Create a template from a container
Inputs: node (required), vmid (required), storage.
create_template_from_vmC
Create a template from a VM
Inputs: node (required), vmid (required), storage.
create_vmA
Create a new VM on Proxmox with optional cloud-init configuration
Inputs: node (required), vmid (required), memory (required), boot, +31 more.
create_vm_backupC
Create a backup of a VM
Inputs: node (required), vmid (required), storage (required), mode, +8 more.
create_vm_firewall_ruleB
Create a firewall rule for a VM
Inputs: node (required), rule (required), vmid (required), pos.
create_vm_snapshotB
Create a snapshot for a VM
Inputs: node (required), vmid (required), snapshotname (required), memory, +2 more.
create_vm_userA
Create a new user in a VM (requires guest agent)
Inputs: node (required), vmid (required), username (required), shell, +3 more.
delete_backupD
Delete a backup
Inputs: node (required), backupfile (required).
delete_containerB
Delete a container from Proxmox
Inputs: node (required), vmid (required), force.
delete_container_firewall_ruleC
Delete a firewall rule for a container
Inputs: node (required), vmid (required), ruleid (required).
delete_container_snapshotB
Delete a container snapshot
Inputs: node (required), vmid (required), snapshotname (required).
delete_isoA
Delete an ISO file from a Proxmox node
Inputs: node (required), storage (required), filename (required).
delete_resource_poolB
Delete a resource pool
Inputs: poolid (required), force.
delete_templateB
Delete a template from Proxmox
Inputs: node (required), vmid (required), force.
delete_vmB
Delete a VM from Proxmox
Inputs: node (required), vmid (required), force.
delete_vm_firewall_ruleB
Delete a firewall rule for a VM
Inputs: node (required), vmid (required), ruleid (required).
delete_vm_snapshotC
Delete a VM snapshot
Inputs: node (required), vmid (required), snapshotname (required).
disable_container_firewallB
Disable firewall for a container
Inputs: node (required), vmid (required).
disable_container_haB
Disable High Availability for a container
Inputs: node (required), vmid (required).
disable_vm_firewallB
Disable firewall for a VM
Inputs: node (required), vmid (required).
disable_vm_haC
Disable High Availability for a VM
Inputs: node (required), vmid (required).
download_isoB
Download an ISO file to a Proxmox node
Inputs: url (required), node (required), storage (required), filename (required).
enable_container_firewallB
Enable firewall for a container
Inputs: node (required), vmid (required).
enable_container_haB
Enable High Availability for a container
Inputs: node (required), vmid (required), group, state, +2 more.
enable_vm_firewallB
Enable firewall for a VM
Inputs: node (required), vmid (required).
enable_vm_haD
Enable High Availability for a VM
Inputs: node (required), vmid (required), group, state, +2 more.
get_cluster_statusB
Get Proxmox cluster status
Inputs: no named parameters.
get_container_statusC
Get status of Proxmox containers
Inputs: node, vmid.
get_ha_statusC
Get High Availability status
Inputs: node (required).
get_iso_download_statusC
Get status of an ISO download task
Inputs: node (required), taskid (required).
get_node_statusC
Get status of Proxmox nodes
Inputs: node.
get_proxmox_versionA
Get Proxmox VE version
Inputs: no named parameters.
get_resource_pool_statusB
Get status of a resource pool
Inputs: poolid (required).
get_running_vmsA
Get all running VMs and containers on a node
Inputs: node (required).
get_storage_statusB
Get status of Proxmox storage
Inputs: node, storage.
get_summaryC
Get summary of Proxmox node resources
Inputs: node (required).
get_task_statusC
Get status of a running task
Inputs: node (required), taskid (required).
get_updatesB
Get available updates for Proxmox
Inputs: node.
get_vm_interfacesA
Get network interfaces from a VM (requires guest agent)
Inputs: node (required), vmid (required).
get_vm_statusC
Get status of Proxmox VMs
Inputs: node, vmid.
list_backupsC
List available backups
Inputs: node (required), backupdir.
list_container_firewall_rulesA
List firewall rules for a container
Inputs: node (required), vmid (required).
list_container_snapshotsB
List snapshots for a container
Inputs: node (required), vmid (required).
list_isosB
List ISO files on a Proxmox node
Inputs: node (required), storage.
list_resource_poolsA
List all resource pools
Inputs: no named parameters.
list_templatesA
List templates on a Proxmox node
Inputs: node (required), type, storage.
list_vm_firewall_rulesA
List firewall rules for a VM
Inputs: node (required), vmid (required).
list_vm_snapshotsC
List snapshots for a VM
Inputs: node (required), vmid (required).
migrate_containerB
Migrate a container to another node
Inputs: node (required), vmid (required), target (required), stop, +4 more.
migrate_vmC
Migrate a VM to another node
Inputs: node (required), vmid (required), target (required), stop, +4 more.
remove_vm_from_poolA
Remove a VM from a resource pool
Inputs: vmid (required), poolid (required).
restart_containerB
Restart a container
Inputs: node (required), vmid (required).
restart_vmC
Restart a VM
Inputs: node (required), vmid (required).
restore_container_backupC
Restore a container from backup
Inputs: node (required), storage (required), backupfile (required), format, +4 more.
restore_container_snapshotC
Restore a container snapshot
Inputs: node (required), vmid (required), snapshotname (required).
restore_vm_backupB
Restore a VM from backup
Inputs: node (required), storage (required), backupfile (required), full, +5 more.
restore_vm_snapshotC
Restore a VM snapshot
Inputs: node (required), vmid (required), snapshotname (required).
run_vm_commandB
Run a command in a VM (requires guest agent)
Inputs: node (required), vmid (required), command (required), timeout.
set_vm_hostnameA
Set hostname for a VM (requires guest agent)
Inputs: node (required), vmid (required), hostname (required).
set_vm_ipB
Set IP address for a VM (requires guest agent)
Inputs: ip (required), node (required), vmid (required), interface (required), +2 more.
set_vm_user_passwordA
Set password for an existing VM user (requires guest agent)
Inputs: node (required), vmid (required), password (required), username (required).
shutdown_containerC
Shutdown a container gracefully
Inputs: node (required), vmid (required), timeout.
shutdown_vmC
Shutdown a VM gracefully
Inputs: node (required), vmid (required), timeout.
ssh_to_vmC
SSH into a VM using qm console
Inputs: node (required), vmid (required), username (required), command.
start_containerC
Start a container
Inputs: node (required), vmid (required).
start_vmC
Start a VM
Inputs: node (required), vmid (required).
stop_containerC
Stop a container
Inputs: node (required), vmid (required), timeout.
stop_vmC
Stop a VM
Inputs: node (required), vmid (required), timeout.
upgrade_proxmoxD
Upgrade Proxmox VE
Inputs: node (required), dist_upgrade.
vm_consoleC
Access VM console
Inputs: node (required), vmid (required), type.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 76 tools
Most tools are clearly separated by resource type (VM vs container) and action (create, delete, start, etc.). Some minor overlap exists, such as get_vm_status vs get_running_vms, and ssh_to_vm vs vm_console, but descriptions help distinguish them.
Tool names follow a consistent verb_noun pattern in snake_case (e.g., create_vm, delete_container, list_backups). Even compound names like create_template_from_vm or get_iso_download_status are structurally consistent.
With 76 tools, the server is over-split, especially with many duplicated VM/container variants. While Proxmox is complex, the count exceeds the 'too many' threshold and would overwhelm agents.
The surface covers many lifecycles (VMs, containers, backups, snapshots, firewalls, HA, pools, ISO), but lacks update/edit operations for VM and container configurations. There is no get_vm_config or update_vm, leaving a significant CRUD gap.
Related MCP Connectors
Manage Vozora VPS servers, SSH keys, firewalls, DNS and usage from an AI agent.
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
Manage Rackspace Spot Kubernetes Cloudspaces, node pools, and VMs from your AI assistant.
Manage VeriTeknik servers, DNS, backups and support tickets from your AI assistant.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables management of Proxmox VE infrastructure through natural language, providing 120+ tools to control virtual machines, containers, storage, cluster resources, users, and network configurations via the Proxmox API.10025 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables interaction with Proxmox VE for managing VMs, containers, storage, and cluster resources via natural language through the Model Context Protocol.73MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Proxmox VE infrastructure, including VMs, containers, storage, and cluster operations via natural language.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to monitor and manage Proxmox VE infrastructure, including nodes, VMs, containers, storage, backups, and networking, via natural language.1MIT