proxmox-mcp
Provides tools to manage Proxmox VE clusters via Claude Code, enabling listing nodes, VMs, templates, power actions, and creation of LXC containers and VMs through the Proxmox REST API.
README
proxmox-mcp
MCP server exposing your Proxmox VE cluster to Claude Code via the Proxmox REST API.
1. Create a Proxmox API token
On the Proxmox host (or via the web UI):
# Create a dedicated user
pveum user add mcp@pve
# Create a role with the permissions needed for this server.
# Start with PVEVMAdmin (covers create/clone/start/stop for VMs and CTs)
# plus PVEAuditor (read-only access to nodes/storage).
pveum aclmod / -user mcp@pve -role PVEVMAdmin
pveum aclmod / -user mcp@pve -role PVEAuditor
# Create an API token for that user (copy the secret shown, it's only displayed once)
pveum user token add mcp@pve mcp-token --privsep 0
This gives the token the same permission scope as the user. --privsep 0 means the
token inherits the user's full permissions (simpler). Set --privsep 1 and assign
ACLs to the token specifically if you want tighter scoping.
Note on "no delete" by design: the role above does not grant VM.Allocate
removal/destroy actions are still possible under PVEVMAdmin in some Proxmox
versions — if you want to be stricter, create a custom role excluding
VM.Config.* removal privileges. This server itself does not expose a destroy
tool, but a sufficiently broad token could still be used for destructive actions
via raw API calls if compromised. Keep the secret safe.
2. Configure environment variables
export PROXMOX_HOST="https://192.168.100.10:8006" # your Proxmox node, port 8006
export PROXMOX_TOKEN_ID="mcp@pve!mcp-token"
export PROXMOX_TOKEN_SECRET="<the-uuid-secret-from-step-1>"
export PROXMOX_TLS_INSECURE="true" # set if using the default self-signed cert
Put these in a .env file or your shell profile — do not commit them.
3. Build
npm install
npm run build
4. Register with Claude Code
Add to your Claude Code MCP config (e.g. ~/.config/claude-code/mcp.json or via
claude mcp add):
{
"mcpServers": {
"proxmox": {
"command": "node",
"args": ["/absolute/path/to/proxmox-mcp/dist/index.js"],
"env": {
"PROXMOX_HOST": "https://192.168.100.10:8006",
"PROXMOX_TOKEN_ID": "mcp@pve!mcp-token",
"PROXMOX_TOKEN_SECRET": "your-secret-here",
"PROXMOX_TLS_INSECURE": "true"
}
}
}
}
Run this on a machine with network access to your Proxmox API (VLAN 100 or
wherever 192.168.100.x is reachable — e.g. your workstation on VLAN 10, or
an LXC you SSH into).
Available tools
| Tool | Description |
|---|---|
list_nodes |
List cluster nodes and status |
get_node_status |
CPU/memory/uptime for a node |
list_storage |
Storage pools on a node |
list_resources |
All VMs and CTs on a node with status |
list_templates |
Available CT templates / ISOs |
get_resource_status |
Status of a specific VM/CT |
power_action |
start / stop / shutdown / reboot a VM/CT |
create_lxc |
Create a new LXC container from a template |
create_vm |
Create a new empty QEMU VM (optionally with ISO) |
clone_resource |
Clone a VM/CT template |
There is intentionally no destroy/delete tool. Removing VMs/CTs should be done directly in the Proxmox UI.
Notes
- VMIDs must be unique cluster-wide — check
list_resourcesbefore creating. net0strings follow Proxmox syntax, e.g.name=eth0,bridge=vmbr0,ip=192.168.100.50/24,gw=192.168.100.1for static IP on VLAN 100, orip=dhcpfor DHCP.- For LXC templates, download them first via
pveam available/pveam downloadon the node, or via the Proxmox UI (Storage → CT Templates).
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.