proxmox-mcp
Allows interaction with a Proxmox VE cluster via its REST API, providing tools for managing VMs, containers, nodes, storage, and templates.
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-mcplist all resources on the cluster"
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
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 0This 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.
Related MCP server: Proxmox MCP Server
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 certPut these in a .env file or your shell profile — do not commit them.
3. Build
npm install
npm run build4. 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 cluster nodes and status |
| CPU/memory/uptime for a node |
| Storage pools on a node |
| All VMs and CTs on a node with status |
| Available CT templates / ISOs |
| Status of a specific VM/CT |
| start / stop / shutdown / reboot a VM/CT |
| Create a new LXC container from a template |
| Create a new empty QEMU VM (optionally with ISO) |
| 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).
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/Lyncee/proxmox-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server