Proxmox MCP Server
Enables management of Proxmox VE environments, including VMs, containers, storage, and cluster operations through natural language.
README
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
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-server
2. Install dependencies
npm install
3. Build the server
npm run build
4. Configure environment variables
The server requires the following environment variables:
| Variable | Description | Example |
|---|---|---|
PROXMOX_HOST |
Proxmox hostname or IP address | proxmox.example.com or 192.168.1.100 |
PROXMOX_USER |
Proxmox username with full path | admin@pam or user@pve |
PROXMOX_PASSWORD |
Proxmox password | your_password |
PROXMOX_PORT |
(Optional) Proxmox API port (default: 8006) | 8006 |
PROXMOX_VERIFY_SSL |
(Optional) Verify SSL certificate (default: true) | true or false |
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-agent - Ensure 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 |
|---|---|---|
net0 |
Network interface 0 | virtio=00:11:22:33:44:55,bridge=vmbr0 |
net1 |
Network interface 1 | e1000=00:11:22:33:44:56,bridge=vmbr1 |
net2 |
Network interface 2 | rtl8139=00:11:22:33:44:57,bridge=vmbr2 |
net3 |
Network interface 3 | virtio=00:11:22:33:44:58,bridge=vmbr3 |
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 |
|---|---|---|
cloudinit |
Enable cloud-init (default: true) | true |
nameserver |
DNS nameserver | 8.8.8.8 |
searchdomain |
Search domain | example.com |
ipconfig |
IP configuration | ip=192.168.1.100/24,gw=192.168.1.1 |
sshkeys |
SSH public keys | ssh-rsa AAAA... |
user |
Username for cloud-init | ubuntu |
password |
Password for cloud-init user | your_password |
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 build
Run directly (for testing)
PROXMOX_HOST=your-host PROXMOX_USER=your-user PROXMOX_PASSWORD=your-password npm start
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.