MCP server for Proxmox VE API operations over stdio
- Go 100%
|
All checks were successful
ci/woodpecker/push/lint-test-release Pipeline was successful
|
||
|---|---|---|
| .woodpecker | ||
| .gitignore | ||
| .markdownlint-cli2.jsonc | ||
| go.mod | ||
| go.sum | ||
| main.go | ||
| proxmox.go | ||
| readme.md | ||
| renovate.json | ||
| tools.go | ||
mcp-proxmox
MCP server for Proxmox VE API operations over stdio.
Environment Variables
| Variable | Default | Description |
|---|---|---|
PVE_URL |
— | Proxmox VE API endpoint |
PVE_API_TOKEN_ID |
— | PVE API token ID (e.g. root@pam!mcp) |
PVE_API_TOKEN_SECRET |
— | PVE API token secret |
Tools
| Tool | Description | Required Privileges |
|---|---|---|
cluster_status |
Get cluster status (quorum, nodes, version) | Sys.Audit on / |
ceph_status |
Get Ceph health, OSDs, monitors, PGs | Sys.Audit on / |
node_list |
List nodes with CPU/memory/disk usage | Sys.Audit on / |
vm_list |
List all VMs and containers with status | VM.Audit on /vms/{vmid} |
vm_status |
Get detailed status of a specific VM/CT | VM.Audit on /vms/{vmid} |
vm_power |
Control VM/CT power (start/stop/restart/suspend/resume/shutdown) | VM.PowerMgmt on /vms/{vmid} |
storage_list |
List storage pools with type and usage | Datastore.Audit on /storage/{storage} |
cluster_resources |
Get all cluster resources, optionally filtered by type | Sys.Audit on / |
vm_migrate |
Migrate a VM to another cluster node | VM.Migrate on /vms/{vmid} |
Build
go build -o mcp-proxmox .
Usage
Add to your MCP client config:
{
"mcpServers": {
"mcp-proxmox": {
"command": "/path/to/mcp-proxmox",
"env": {
"PVE_URL": "https://pve.example.com:8006",
"PVE_API_TOKEN_ID": "root@pam!token-name",
"PVE_API_TOKEN_SECRET": "your-token-secret"
}
}
}
}
The server communicates over stdio using the MCP protocol.