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
- 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/Lyncee/proxmox-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server