Skip to main content
Glama
Ruashots

Proxmox MCP Server

by Ruashots
README.md
# Proxmox MCP Server

MCP (Model Context Protocol) server for the Proxmox VE API. Manage VMs and containers through Claude Code.

## Features

**55 essential tools** for day-to-day Proxmox management:

- **Nodes**: List nodes, get status and version
- **QEMU VMs**: List, status, start/stop/reboot, snapshots, clone, migrate
- **LXC Containers**: List, status, start/stop/reboot, snapshots, clone, migrate
- **Storage**: List storage, browse content, check status
- **Tasks**: View running tasks and logs

## Quick Install

```bash
curl -fsSL https://raw.githubusercontent.com/Ruashots/proxmox-mcp/master/install.sh | bash
```

## Prerequisites

- **Node.js 18+**
- **jq** (`sudo apt install jq`)
- **Proxmox VE 7.0+** with API token

## Manual Installation

```bash
git clone https://github.com/Ruashots/proxmox-mcp.git ~/.local/share/proxmox-mcp
cd ~/.local/share/proxmox-mcp
npm install && npm run build
```

Add to `~/.claude.json`:

```json
{
  "mcpServers": {
    "proxmox-mcp": {
      "command": "node",
      "args": ["/home/YOUR_USER/.local/share/proxmox-mcp/dist/index.js"],
      "env": {
        "PROXMOX_HOST": "https://192.168.1.100:8006",
        "PROXMOX_TOKEN_ID": "root@pam!claude",
        "PROXMOX_TOKEN_SECRET": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
      }
    }
  }
}
```

## Tools

### Nodes
| Tool | Description |
|------|-------------|
| `pve_list_nodes` | List all nodes |
| `pve_get_nodes_status` | Get node status |
| `pve_get_nodes_version` | Get node version |

### QEMU VMs
| Tool | Description |
|------|-------------|
| `pve_list_nodes_qemu` | List all VMs on a node |
| `pve_get_nodes_qemu` | Get VM details |
| `pve_get_nodes_qemu_config` | Get VM configuration |
| `pve_update_nodes_qemu_config` | Update VM configuration |
| `pve_get_nodes_qemu_status_current` | Get current VM status |
| `pve_create_nodes_qemu_status_start` | Start VM |
| `pve_create_nodes_qemu_status_stop` | Stop VM (hard) |
| `pve_create_nodes_qemu_status_shutdown` | Shutdown VM (graceful) |
| `pve_create_nodes_qemu_status_reboot` | Reboot VM |
| `pve_create_nodes_qemu_status_suspend` | Suspend VM |
| `pve_create_nodes_qemu_status_resume` | Resume VM |
| `pve_list_nodes_qemu_snapshot` | List snapshots |
| `pve_create_nodes_qemu_snapshot` | Create snapshot |
| `pve_get_nodes_qemu_snapshot` | Get snapshot details |
| `pve_delete_nodes_qemu_snapshot` | Delete snapshot |
| `pve_create_nodes_qemu_snapshot_rollback` | Rollback to snapshot |
| `pve_create_nodes_qemu_clone` | Clone VM |
| `pve_create_nodes_qemu_migrate` | Migrate VM to another node |

### LXC Containers
| Tool | Description |
|------|-------------|
| `pve_list_nodes_lxc` | List all containers on a node |
| `pve_get_nodes_lxc` | Get container details |
| `pve_get_nodes_lxc_config` | Get container configuration |
| `pve_update_nodes_lxc_config` | Update container configuration |
| `pve_get_nodes_lxc_status_current` | Get current container status |
| `pve_create_nodes_lxc_status_start` | Start container |
| `pve_create_nodes_lxc_status_stop` | Stop container |
| `pve_create_nodes_lxc_status_shutdown` | Shutdown container |
| `pve_create_nodes_lxc_status_reboot` | Reboot container |
| `pve_create_nodes_lxc_status_suspend` | Suspend container |
| `pve_create_nodes_lxc_status_resume` | Resume container |
| `pve_list_nodes_lxc_snapshot` | List snapshots |
| `pve_create_nodes_lxc_snapshot` | Create snapshot |
| `pve_get_nodes_lxc_snapshot` | Get snapshot details |
| `pve_delete_nodes_lxc_snapshot` | Delete snapshot |
| `pve_create_nodes_lxc_snapshot_rollback` | Rollback to snapshot |
| `pve_create_nodes_lxc_clone` | Clone container |
| `pve_create_nodes_lxc_migrate` | Migrate container |

### Storage
| Tool | Description |
|------|-------------|
| `pve_list_nodes_storage` | List storage on a node |
| `pve_get_nodes_storage_status` | Get storage status |
| `pve_list_nodes_storage_content` | List storage content |

### Tasks
| Tool | Description |
|------|-------------|
| `pve_list_nodes_tasks` | List tasks |
| `pve_get_nodes_tasks_status` | Get task status |
| `pve_get_nodes_tasks_log` | Get task log |

## Example Usage

- "List all VMs on node pve"
- "Start VM 100 on node pve"
- "Create a snapshot of container 101 called before-update"
- "Show storage status on node pve"
- "What tasks are running on node pve?"

## Creating an API Token

1. Proxmox UI → Datacenter → Permissions → API Tokens → Add
2. Select user (e.g., `root@pam`), enter Token ID (e.g., `claude`)
3. Uncheck "Privilege Separation" for full access
4. Copy the secret immediately!

## License

MIT

TDQS

C2.7/5.0

Scored across 166 tools

Disambiguation4/5

The tools are highly specific and well-differentiated by resource type (VM, container, node, storage, etc.) and action (create, get, list, update, delete). Overlap is minimal, with clear distinctions like pve_get_vm_config vs pve_get_vm_status, and pve_list_vms vs pve_list_containers. The sheer number of tools might cause some confusion, but each serves a distinct purpose within the Proxmox domain.

Naming Consistency5/5

Naming is exceptionally consistent throughout the entire set. Every tool follows the pattern pve_<action>_<resource> or pve_<action>_<resource>_<subresource>, using snake_case uniformly. Verbs like create, get, list, update, delete are applied predictably across resources, making the toolset highly readable and systematic.

Tool Count2/5

With 166 tools, the count is excessive for an MCP server, far beyond the typical well-scoped range of 3-15 tools. While Proxmox is a complex system, this many tools will overwhelm agents, increase cognitive load, and likely lead to misselection or inefficiency. The scope feels more like a direct API mapping than a curated tool surface.

Completeness5/5

The toolset provides comprehensive coverage of the Proxmox VE domain, including full CRUD operations for VMs, containers, storage, users, groups, firewall rules, backups, replication, HA, and node management. It supports lifecycle actions (start, stop, migrate, snapshot) and administrative tasks (network, certificates, services), leaving no obvious gaps for core workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues