Proxmox VE MCP Server
Provides comprehensive management and automation for Proxmox VE clusters, including VM and container lifecycle management, snapshot and rollback, hardware tuning, migration, and cloud-init integration.
Click on "Install 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 VE MCP ServerList all VMs and show their CPU and memory usage"
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 VE MCP Server
A production-ready Model Context Protocol (MCP) server built with FastMCP for high-level Proxmox VE homelab and cluster automation. Rather than acting as a plain REST API wrapper, proxmox-mcp provides semantic, domain-driven orchestration capabilities for LLM agents (Claude Desktop, Cursor, Gemini CLI, etc.).
Table of Contents
Related MCP server: ProxmoxEmCP
Features
Full VM (QEMU) & LXC Container Lifecycle Management: Create, clone, start, stop, shutdown, reboot, pause, resume, migrate, and purge virtual machines and containers.
Hardware & Resource Tuning: Dynamically update CPU cores, sockets, RAM, disk sizes, network interfaces, and storage volume bindings.
Cloud-Init Integration: Inject user accounts, passwords, SSH keys, network configurations, and trigger ISO regeneration directly.
Snapshot & Rollback Tree: List, create, rollback, and delete snapshots for both VMs and LXC containers.
Multi-Step Workflows: Automated step-by-step provisioning, bulk operations across host targets, pre-backup snapshots with
vzdumpexecution, and cluster readiness checks with automatic rollback safety.Enterprise-Grade Security: CIDR-based client IP whitelisting, RBAC permission scopes (
READ_ONLY,OPERATOR,ADMIN), mandatory destructive operation confirmations (confirm=true), recursive sensitive payload scrubbing, and structured audit logs.
Prerequisites & Installation
Prerequisites
Python 3.12+ installed on the local system.
uv (recommended high-performance package manager) or standard
pip.Access to a Proxmox VE (v7.x or v8.x) server over HTTPS (port 8006).
Installation via uv (Recommended)
# Clone repository
git clone https://github.com/your-org/proxmox-mcp.git
cd proxmox-mcp
# Create virtualenv and install dependencies
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv sync --all-extrasInstallation via pip
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -e ".[dev]"Environment Configuration
Configure connection and security settings via environment variables or a .env file in the root directory:
# Proxmox VE Connection Parameters
PROXMOX_HOST=Your_IP:8006
PROXMOX_USER=User@permision
PROXMOX_PASSWORD=Password
# Or API Token authentication (recommended):
PROXMOX_TOKEN_ID=Your_Token_ID
PROXMOX_TOKEN_SECRET=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
PROXMOX_VERIFY_SSL=false
PROXMOX_TIMEOUT=30.0
PROXMOX_MAX_RETRIES=3
# MCP Security & Authorization Settings
MCP_PERMISSION_LEVEL=operator
MCP_AUDIT_ENABLED=true
MCP_AUDIT_LOG_PATH=audit.log
MCP_ALLOWED_CLIENT_IPS=127.0.0.1/32,192.168.1.0/24Configuration Parameters Reference
Variable | Type | Default | Description |
| String | Required | Host address and port of Proxmox VE instance |
| String |
| Proxmox VE user identity |
| String |
| User password for API ticket authentication |
| String |
| API Token ID (takes precedence if provided) |
| String |
| API Token Secret key |
| Boolean |
| Verify TLS certificates |
| Float |
| HTTP request timeout in seconds |
| Integer |
| Maximum retry attempts on transient network errors |
| Enum |
| Baseline permission scope ( |
| Boolean |
| Enable JSON lines structured audit logging |
| Path |
| Path to append structured audit records |
| String |
| Comma-separated CIDR subnets allowed to execute MCP commands |
MCP Client Setup
Claude Desktop
Add the server configuration to your claude_desktop_config.json:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"proxmox-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/proxmox-mcp",
"run",
"proxmox-mcp"
],
"env": {
"PROXMOX_HOST": "Your_IP:8006",
"PROXMOX_USER": "user@permission",
"PROXMOX_PASSWORD": "Password",
"PROXMOX_VERIFY_SSL": "false",
"MCP_PERMISSION_LEVEL": "operator"
}
}
}
}Cursor
Add to your project .cursor/mcp.json or Global MCP Settings:
{
"mcpServers": {
"proxmox": {
"command": "uv",
"args": [
"--directory",
"C:/Users/username/DEV/proxmox-mcp",
"run",
"proxmox-mcp"
],
"env": {
"PROXMOX_HOST": "Your_IP:8006",
"PROXMOX_TOKEN_ID": "user@permission!mcp_token",
"PROXMOX_TOKEN_SECRET": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"PROXMOX_VERIFY_SSL": "false"
}
}
}
}Gemini CLI
Configure gemini MCP extension in settings or execution config:
{
"mcpServers": {
"proxmox-automation": {
"command": "python",
"args": [
"-m",
"proxmox_mcp.main"
],
"cwd": "/opt/proxmox-mcp",
"env": {
"PROXMOX_HOST": "Your_IP:8006:8006",
"PROXMOX_USER": "user@permission",
"PROXMOX_PASSWORD": "Password"
}
}
}
}SSE Transport Mode
For standalone remote daemon deployment via Server-Sent Events (SSE):
# Start FastMCP server in SSE mode on port 8000
fastmcp run src/proxmox_mcp/main.py --transport sse --port 8000FastMCP Catalog
Tools
1. QEMU Virtual Machine Domain (vm)
Tool Name | Scope | Confirm? | Description |
| READ_ONLY | No | List VMs across cluster or specific node |
| READ_ONLY | No | Retrieve detailed status for a specific VM |
| READ_ONLY | No | Inspect hardware and operational config |
| OPERATOR | No | Create new QEMU virtual machine |
| OPERATOR | No | Clone existing VM or template |
| ADMIN | Yes | Purge VM and associated storage volumes |
| OPERATOR | No | Power on virtual machine instance |
| OPERATOR | Yes | Force stop virtual machine process |
| OPERATOR | Yes | Graceful OS shutdown with timeout |
| OPERATOR | Yes | Graceful OS reboot sequence |
| OPERATOR | No | Pause execution (suspend-to-RAM) |
| OPERATOR | No | Resume execution of paused VM |
| OPERATOR | No | Suspend VM state to storage disk |
| OPERATOR | No | Convert VM into immutable template |
| OPERATOR | No | Reconfigure CPU cores, sockets, NUMA settings |
| OPERATOR | No | Hotplug or adjust allocated RAM memory |
| OPERATOR | No | Expand virtual disk volume size |
| OPERATOR | No | Attach additional storage disk volume |
| ADMIN | Yes | Detach and remove storage disk volume |
| OPERATOR | No | Relocate disk volume to target storage pool |
| OPERATOR | No | Reconfigure virtual network interface card |
| OPERATOR | No | Set Cloud-Init user, password, SSH key, IP |
| OPERATOR | No | Trigger Cloud-Init ISO image regeneration |
| READ_ONLY | No | List snapshot tree for target VM |
| OPERATOR | No | Create named point-in-time VM snapshot |
| ADMIN | Yes | Restore VM state to target snapshot |
| ADMIN | Yes | Remove target snapshot from tree |
| ADMIN | Yes | Live or offline VM migration to target node |
2. LXC Container Domain (lxc)
Tool Name | Scope | Confirm? | Description |
| READ_ONLY | No | List LXC containers on cluster or node |
| READ_ONLY | No | Get detailed container runtime state |
| READ_ONLY | No | Inspect LXC container configuration |
| OPERATOR | No | Provision new LXC container |
| OPERATOR | No | Clone existing container instance |
| ADMIN | Yes | Destroy LXC container permanently |
| OPERATOR | No | Start LXC container execution |
| OPERATOR | Yes | Hard stop LXC container |
| OPERATOR | Yes | Graceful container shutdown |
| OPERATOR | Yes | Reboot LXC container |
| OPERATOR | No | Convert LXC container into template |
| OPERATOR | No | Update container hostname |
| OPERATOR | No | Update search domain and DNS nameservers |
| OPERATOR | No | Set root user password |
| OPERATOR | No | Append public SSH keys for root access |
| OPERATOR | No | Expand container root filesystem disk |
| OPERATOR | No | Adjust RAM and swap limits |
| OPERATOR | No | Adjust CPU cores and execution limits |
| READ_ONLY | No | List attached storage mount points |
| OPERATOR | No | Attach host bind mount to container |
| ADMIN | Yes | Detach host bind mount point |
| OPERATOR | No | Enable nesting feature for Docker support |
| OPERATOR | No | Enable keyctl subsystem inside container |
| OPERATOR | No | Mount FUSE filesystems inside container |
| READ_ONLY | No | List snapshot tree for LXC container |
| OPERATOR | No | Create named LXC container snapshot |
| ADMIN | Yes | Revert container state to snapshot |
| ADMIN | Yes | Remove snapshot from container tree |
3. Support Domains (cluster, nodes, storage, tasks)
Tool Name | Domain | Scope | Description |
| cluster | READ_ONLY | Evaluate quorum, node state, and storage health |
| cluster | READ_ONLY | Summarize cluster-wide virtual resources |
| nodes | READ_ONLY | Get overview of cluster node members |
| nodes | READ_ONLY | CPU, memory, uptime, kernel details for node |
| storage | READ_ONLY | List available cluster storage pools |
| storage | READ_ONLY | Query storage volume contents (ISO, backup, disk) |
| storage | READ_ONLY | Disk capacity and usage statistics for pool |
| tasks | READ_ONLY | Query recent cluster background task logs |
| tasks | READ_ONLY | Check completion state for specific UPID |
4. Workflows Domain (workflows)
Tool Name | Scope | Confirm? | Description |
| OPERATOR | No | Provision VM/LXC with automated rollback on step failure |
| OPERATOR | Optional | Perform batch actions (start, stop, reboot) across resource tags |
| OPERATOR | No | Storage pre-check, pre-backup snapshot, vzdump execution, cleanup |
| READ_ONLY | No | Cluster readiness assessment (quorum, disk thresholds, tasks) |
5. Security Domain (security)
Tool Name | Scope | Confirm? | Description |
| READ_ONLY | No | Test client IP against configured CIDR whitelist |
| READ_ONLY | No | Audit current RBAC policy and active security rules |
| READ_ONLY | No | Retrieve high-level runtime security metrics summary |
Resources
Contextual data endpoints read by LLM reasoning engines:
Resource URI | Scope | Description |
| READ_ONLY | Cluster member and total resource summary |
| READ_ONLY | Real-time cluster health and quorum evaluation |
| READ_ONLY | CPU, RAM, and hardware metrics for host node |
| READ_ONLY | Storage pool bindings on specific node |
| READ_ONLY | Storage volume allocation metrics |
| READ_ONLY | Live runtime metrics for virtual machine |
| READ_ONLY | Hardware specification and flags for VM |
| READ_ONLY | Snapshot hierarchy for VM |
| READ_ONLY | Live runtime metrics for LXC container |
| READ_ONLY | Container config parameters |
| READ_ONLY | Snapshot hierarchy for container |
| READ_ONLY | Alias for LXC container status |
| READ_ONLY | Alias for LXC container config |
| READ_ONLY | Alias for LXC container snapshots |
| READ_ONLY | Historical operational logs for Proxmox UPID |
| READ_ONLY | Runtime security engine status |
| READ_ONLY | Active security settings and permission thresholds |
| READ_ONLY | Total audit records count and operation metrics |
Prompts
Interactive user prompt templates guiding complex workflows:
Prompt Name | Target Workflow | Description |
| VM Domain | Step-by-step guided provisioning template for QEMU VM |
| VM Domain | Safety-first guidance for VM snapshot creation and rollback |
| VM Domain | Cloud-Init setup, user creation, and ISO drive binding |
| LXC Domain | Container setup checklist with unprivileged & nesting checks |
| LXC Domain | Diagnostics guide for broken or unstartable containers |
| LXC Domain | Container snapshot lifecycle management checklist |
| Cluster Domain | Comprehensive health, quorum, and network audit guide |
| Node Domain | Host performance tuning and resource saturation checklist |
| Storage Domain | Pool capacity utilization and volume cleanup guide |
| Task Domain | UPID task log parsing and failure root cause analysis |
| Workflows Domain | Decision tree for choosing multi-step workflow routines |
| Workflows Domain | Interactive assistant for multi-tier stack deployments |
| Security Domain | Review active permissions, CIDR rules, and audit logs |
| Security Domain | Verify IP access rights and privilege boundaries |
Security & Audit Architecture
RBAC Permission Enforcement: Every tool execution is validated against the configured
MCP_PERMISSION_LEVEL(read_only,operator,admin).CIDR IP Whitelisting: If
MCP_ALLOWED_CLIENT_IPSis configured, client incoming IP addresses are validated against allowed subnets before processing requests.Destructive Operation Shield: High-risk actions (
delete_vm,stop_vm,remove_disk_vm,rollback_snapshot_vm,delete_container, etc.) require explicitconfirm=trueparameters to prevent accidental execution.Data Scrubbing: All audit payloads and logs are recursively scrubbed to sanitize passwords, tokens, tickets, and secrets (
scrub_payload).Structured Audit Trail: Detailed JSON logs are persisted containing execution timestamp, tool name, client context, parameter payload (scrubbed), execution duration, and Proxmox UPID task references.
Development & Verification
Run the automated quality assurance suite before making contributions:
# 1. Execute Unit & Integration Test Suite
pytest -v
# 2. Run Static Code Linting & Formatting Analysis
ruff check .
# 3. Run Strict Static Type Checking
mypy src testsDocumentation Index
For complete technical specifications, architectural diagrams, and security models, inspect the files in docs/:
License
Distributed under the MIT License. See LICENSE for details.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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.Last updated10020MIT
- Alicense-qualityDmaintenanceEnables AI assistants to manage Proxmox VE infrastructure, including VMs, containers, storage, and cluster operations via natural language.Last updatedMIT
- Alicense-qualityDmaintenanceEnables management of Proxmox VE environments, including VMs, containers, storage, and cluster operations through natural language.Last updated200MIT
- Alicense-qualityDmaintenanceEnables AI assistants to monitor and manage Proxmox VE infrastructure, including nodes, VMs, containers, storage, backups, and networking, via natural language.Last updated1MIT
Related MCP Connectors
Operate your Linux servers from your LLM. Every action runs through an auditable allowlist.
Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.
Manage projects, tasks, time tracking, and team collaboration through natural language.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/MTDEV2312/Proxmox_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server