Skip to main content
Glama
Proxmox MCP Server

Proxmox MCP Server

by Bldg-7

Proxmox MCP Server

Model Context Protocol (MCP) server for Proxmox Virtual Environment

English | 한국어

License: MIT TypeScript Node.js

A comprehensive MCP server providing 92 tools for managing Proxmox Virtual Environment, including QEMU VMs and LXC containers.

Credits & Background

This project is a TypeScript rewrite of mcp-proxmox-server, which itself was a Node.js port of the original Python implementation by canvrno/ProxmoxMCP.

What Changed

Architecture:

  • 3,147-line single-file monolith → modular TypeScript across 110+ source files

  • No type safety → strict TypeScript with noUncheckedIndexedAccess

  • Hand-written JSON Schema → Zod schemas with automatic JSON Schema generation

  • Giant switch statement (55 cases) → tool registry with handler/schema pairs

Quality:

  • 0 tests → 1,134 tests

  • No input validation → Zod runtime validation on every tool call

  • Implicit error handling → structured MCP error responses with context

  • No permission checks → two-tier permission model (basic / elevated)

Developer Experience:

  • npx @bldg-7/proxmox-mcp just works

  • All 92 tool descriptions exposed via MCP ListTools

  • Rate limiter middleware included

  • Pino structured logging instead of console.log

Related MCP server: proxmox-mcp

Features

  • 92 comprehensive tools for Proxmox management

  • Full TypeScript implementation with strict type safety

  • Support for both QEMU VMs and LXC containers

  • Secure authentication (API token)

  • Flexible SSL modes (strict, verify, insecure)

  • Permission-based access control (basic vs elevated operations)

  • Comprehensive error handling with structured responses

  • Built on MCP SDK 1.25.3

Installation

npm install @bldg-7/proxmox-mcp
# or
pnpm add @bldg-7/proxmox-mcp
# or
yarn add @bldg-7/proxmox-mcp

Configuration

Environment Variables

Set the following environment variables before starting the server:

Variable

Required

Description

Default

PROXMOX_HOST

Yes

Proxmox server hostname or IP address

-

PROXMOX_USER

No

Username with realm (e.g., root@pam)

root@pam

PROXMOX_TOKEN_NAME

Yes

API token name

-

PROXMOX_TOKEN_VALUE

Yes

API token value

-

PROXMOX_SSL_MODE

No

SSL verification mode

strict

PROXMOX_SSL_CA_CERT

No

Path to a CA certificate (PEM) trusted in verify mode

-

PROXMOX_ALLOW_ELEVATED

No

Allow elevated operations

false

PROXMOX_PORT

No

Proxmox API port

8006

PROXMOX_ALLOW_UNSAFE_COMMANDS

No

Allow shell special characters in exec commands

false

PROXMOX_SSH_ENABLED

No

Enable SSH-based LXC exec

false

PROXMOX_SSH_HOST

No

SSH host (falls back to PROXMOX_HOST)

-

PROXMOX_SSH_PORT

No

SSH port

22

PROXMOX_SSH_USER

No

SSH username

root

PROXMOX_SSH_KEY_PATH

When SSH enabled

Path to SSH private key

-

PROXMOX_SSH_NODE

When SSH enabled

Proxmox node name reachable via SSH

-

PROXMOX_SSH_HOST_KEY_FINGERPRINT

No

Host key fingerprint for verification

-

PROXMOX_LOG_LEVEL

No

Log verbosity (trace, debug, info, warn, error, fatal)

info

SSL Modes

  • strict: Full SSL certificate verification against the system CA store (recommended for production)

  • verify: Same as strict, but additionally trusts the CA certificate given via PROXMOX_SSL_CA_CERT. For self-signed certificates, point PROXMOX_SSL_CA_CERT at the server certificate (or your internal CA) in PEM format. Without PROXMOX_SSL_CA_CERT, this mode behaves exactly like strict.

  • insecure: No SSL verification (development only, not recommended)

Do not use NODE_TLS_REJECT_UNAUTHORIZED=0 to work around certificate errors — it disables TLS verification for the entire process, and the server logs a warning when it is set. Use PROXMOX_SSL_MODE and PROXMOX_SSL_CA_CERT instead.

Permission Model

The server implements a two-tier permission model:

  • Basic operations: Read-only operations (list, get, status) - always allowed

  • Elevated operations: Create, modify, delete operations - require PROXMOX_ALLOW_ELEVATED=true

This prevents accidental destructive operations and provides an additional safety layer.

Usage

Starting the Server

# With environment variables
export PROXMOX_HOST=pve.example.com
export PROXMOX_TOKEN_NAME=mytoken
export PROXMOX_TOKEN_VALUE=abc123-def456-ghi789
export PROXMOX_SSL_MODE=verify
export PROXMOX_SSL_CA_CERT=/path/to/proxmox-ca.pem  # needed with verify for self-signed certs
export PROXMOX_ALLOW_ELEVATED=true

npx @bldg-7/proxmox-mcp

Using with Claude Desktop

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "proxmox": {
      "command": "npx",
      "args": ["-y", "@bldg-7/proxmox-mcp"],
      "env": {
        "PROXMOX_HOST": "pve.example.com",
        "PROXMOX_TOKEN_NAME": "mytoken",
        "PROXMOX_TOKEN_VALUE": "abc123-def456-ghi789",
        "PROXMOX_SSL_MODE": "verify",
        "PROXMOX_SSL_CA_CERT": "/path/to/proxmox-ca.pem",
        "PROXMOX_ALLOW_ELEVATED": "true"
      }
    }
  }
}

Available Tools

This server provides 92 comprehensive tools for Proxmox management:

Category

Tools

Permission

Node Management

14

Mixed

Guest (VM/LXC)

23

Mixed

Guest Creation

2

Elevated 🔒

QEMU Agent

7

Elevated 🔒

Cluster Operations

5

Mixed

Cluster Firewall

6

Mixed

High Availability

2

Mixed

Storage

3

Mixed

SDN Networking

4

Mixed

Access Control

7

Mixed

Ceph

6

Mixed

Console Access

3

Elevated 🔒

Backup

1

Mixed

VM Disks

1

Elevated 🔒

LXC Mount Points

1

Elevated 🔒

LXC Exec

1

Elevated 🔒

Cloud-Init

1

Mixed

Certificates

1

Mixed

ACME

3

Mixed

Notifications

1

Mixed

Total

92

📖 Full Tools Reference →

Agent Skills

This package includes Agent Skills - AI-optimized documentation that teaches agents how to use Proxmox MCP tools and operational best practices. Skills follow the agentskills.io open standard and work across multiple AI agent platforms.

Available Skills

Skill

Description

Tools/Topics

proxmox-mcp-tools

Complete MCP tool reference for Proxmox VE

92 tools across 14 domains (VMs, LXC, cluster, storage, networking, Ceph, certificates, ACME, notifications)

proxmox-admin

Operational expertise for Proxmox infrastructure

VM lifecycle, storage management, HA configuration, troubleshooting

Installation

For Agent Skills Standard (Claude Code, OpenCode, Cursor, Codex, Gemini CLI, VS Code):

npx skills add Bldg-7/proxmox-mcp

For Claude Code Plugin:

/plugin marketplace add Bldg-7/proxmox-mcp

Supported Agents

  • Claude Code - Anthropic's official CLI

  • OpenCode - Open-source Claude Code alternative

  • Cursor - AI-powered code editor

  • Codex - GitHub Copilot CLI

  • Gemini CLI - Google's AI assistant

  • VS Code - With agent skills extensions

Skills provide progressive disclosure: metadata (~100 tokens) → instructions (<5000 tokens) → detailed references (on demand).

How Skills Work

Once installed, skills are automatically loaded into the agent's context. The agent learns Proxmox tool usage, workflows, and best practices — so you can give natural language instructions and the agent translates them into the right MCP tool calls.

Example — Creating a VM (agent uses proxmox-mcp-tools skill):

You: "Create an Ubuntu VM with 4 cores, 8GB RAM, and 50GB disk on pve1"

Agent knows the workflow from the skill:
  1. proxmox_get_next_vmid        → gets available VM ID (e.g., 105)
  2. proxmox_create_vm            → creates VM 105 with 4 cores, 8GB RAM
  3. proxmox_vm_disk              → attaches 50GB virtio disk (action: 'add')
  4. proxmox_guest_network        → adds network interface on vmbr0 (action: 'add', type: 'vm')
  5. proxmox_guest_start          → powers on the VM (type: 'vm')

Example — Setting up HA (agent uses proxmox-admin skill):

You: "Make VM 100 highly available"

Agent knows the operational playbook:
  1. proxmox_ha_group             → checks existing HA groups (action: 'list')
  2. proxmox_ha_resource          → adds VM 100 to HA with priority (action: 'create')
  3. proxmox_ha_resource          → verifies HA is active (action: 'status')

Example — Troubleshooting (agent uses both skills together):

You: "VM 100 won't start, help me figure out why"

Agent combines tool knowledge + operational expertise:
  1. proxmox_guest_status         → checks current state (type: 'vm')
  2. proxmox_guest_config         → reviews configuration (action: 'get', type: 'vm')
  3. proxmox_node                 → checks node resource availability (action: 'status')
  4. proxmox_node_task            → finds recent failed tasks (action: 'list')
  → Diagnoses: "Node pve1 has insufficient memory. VM requires 8GB but only 2GB free."
  → Suggests: resize VM memory, migrate to another node, or free resources

Skill Contents

proxmox-mcp-tools — Tool Reference:

  • 92 tools organized into 14 domains (VMs, LXC, cluster, storage, networking, Ceph, access control, pools, certificates, ACME, notifications)

  • Parameters, types, and descriptions for every tool

  • Permission levels (basic vs elevated 🔒)

  • Common workflow patterns (create VM, backup/restore, clone, migrate)

proxmox-admin — Operational Expertise:

  • VM & LXC lifecycle playbooks (create → configure → monitor → backup → decommission)

  • Storage management strategies (Ceph, NFS, LVM, ZFS)

  • HA configuration and failover procedures

  • Troubleshooting guides for common API quirks

  • Security best practices (permission model, token management)

  • Performance monitoring and optimization

SubAgents

This package includes SubAgents - specialized AI agents for executing domain-specific Proxmox operations. While Skills provide knowledge ("here are the tools and how to use them"), SubAgents provide action ("I'll do this for you"). SubAgents automatically load the relevant skills and execute operations using MCP tools.

Available SubAgents

SubAgent

Domain

Description

vm-manager

QEMU VMs

VM lifecycle management (create, configure, start/stop, snapshots, backups, cloning, templates)

lxc-manager

LXC Containers

Container lifecycle management (create, configure, mount points, snapshots, backups, cloning)

cluster-admin

Cluster Operations

High availability, VM/LXC migration, replication jobs, cluster firewall, cluster backup jobs

storage-admin

Storage Infrastructure

Storage backends (NFS, iSCSI, Ceph), ISO/template management, backup pruning, disk operations

network-admin

Network Infrastructure

SDN (VNets, zones, controllers, subnets), node network interfaces, DNS configuration

access-admin

Access Control

Users, groups, roles, ACLs, authentication domains (PAM, LDAP, AD)

monitor

Monitoring

Read-only health checks, status monitoring, log analysis, task tracking (delegates actions to other agents)

How SubAgents Work

SubAgents use auto-delegation in Claude Code and compatible platforms:

  1. User makes request: "Create a new Ubuntu VM with 4 cores and 8GB RAM"

  2. Claude analyzes request: Matches request to vm-manager agent based on example blocks

  3. Auto-delegates: Invokes vm-manager agent with full context

  4. Agent executes: vm-manager loads skills, calls MCP tools, completes operation

  5. Returns result: Structured response with operation details

Prerequisites

  • MCP Server: The Proxmox MCP server must be connected and configured

  • Skills: SubAgents automatically load proxmox-mcp-tools and proxmox-admin skills

  • Permissions: Elevated operations require PROXMOX_ALLOW_ELEVATED=true in MCP server config

Installation

SubAgents are included when you install the plugin:

For Claude Code Plugin:

/plugin marketplace add Bldg-7/proxmox-mcp

For Agent Skills Standard (if supported):

npx skills add Bldg-7/proxmox-mcp

Usage Examples

Create a VM (auto-delegates to vm-manager):

User: "Create a new Ubuntu VM with 4 cores, 8GB RAM, and a 50GB disk on node pve1"
→ vm-manager executes: get next VMID → create VM → add disk → add network → start

Enable HA (auto-delegates to cluster-admin):

User: "Enable high availability for VM 100 with priority 100"
→ cluster-admin executes: check HA config → add HA resource → verify

Monitor cluster (auto-delegates to monitor):

User: "Show me the current cluster status and any issues"
→ monitor executes: get cluster status → get HA status → get nodes → report

Agent Domain Boundaries

Each SubAgent has clear responsibilities to avoid overlap:

  • vm-manager: Only QEMU VMs (not LXC). Delegates cluster ops to cluster-admin.

  • lxc-manager: Only LXC containers (not VMs). Delegates cluster ops to cluster-admin.

  • cluster-admin: Cluster-wide operations (HA, firewall aliases/ipsets, cluster config, notifications). Delegates per-VM/LXC ops to respective managers.

  • storage-admin: Storage infrastructure, certificate management, ACME configuration, advanced disk operations. Delegates VM disk operations to vm-manager.

  • network-admin: Network infrastructure only. Delegates per-VM/LXC NICs to respective managers.

  • access-admin: Access control including API token management. No delegation to other agents.

  • monitor: Read-only monitoring including node metrics/RRD data. Delegates ALL actions to appropriate agents.

Error Handling

All tools return structured responses following the MCP protocol:

Success Response

{
  "content": [
    {
      "type": "text",
      "text": "✅ Operation completed successfully\n\n• Details here..."
    }
  ],
  "isError": false
}

Error Response

{
  "content": [
    {
      "type": "text",
      "text": "❌ Error: Operation failed\n\nReason: Detailed error message"
    }
  ],
  "isError": true
}

Permission Denied

{
  "content": [
    {
      "type": "text",
      "text": "🚫 Permission Denied: Operation requires elevated permissions\n\nSet PROXMOX_ALLOW_ELEVATED=true to enable this operation."
    }
  ],
  "isError": true
}

Troubleshooting

Connection Issues

Problem: ECONNREFUSED or connection timeout

Solutions:

  • Verify PROXMOX_HOST is correct and reachable

  • Check PROXMOX_PORT (default: 8006)

  • Ensure firewall allows connections to Proxmox API port

  • Try PROXMOX_SSL_MODE=insecure for testing (not recommended for production)

Authentication Errors

Problem: 401 Unauthorized or authentication failed

Solutions:

  • Verify PROXMOX_USER includes realm if set (e.g., root@pam, not just root)

  • Verify PROXMOX_TOKEN_NAME and PROXMOX_TOKEN_VALUE are valid

  • Ensure API token has sufficient permissions in Proxmox

SSL Certificate Errors

Problem: UNABLE_TO_VERIFY_LEAF_SIGNATURE or SSL errors

Solutions:

  • For self-signed certificates, set PROXMOX_SSL_MODE=verify and PROXMOX_SSL_CA_CERT=/path/to/cert.pem (the server certificate or your internal CA) — verify without PROXMOX_SSL_CA_CERT behaves like strict and still fails

  • Use PROXMOX_SSL_MODE=insecure for development (not recommended for production)

  • Install proper SSL certificates on Proxmox server for production use

  • Do not set NODE_TLS_REJECT_UNAUTHORIZED=0; it disables TLS verification process-wide

Permission Denied Errors

Problem: 🚫 Permission Denied for operations

Solutions:

  • Set PROXMOX_ALLOW_ELEVATED=true to enable elevated operations

  • Review which operations require elevated permissions (marked with 🔒)

  • Ensure this is intentional - elevated operations can modify/delete resources

Development

Building from Source

git clone https://github.com/Bldg-7/proxmox-mcp.git
cd proxmox-mcp
pnpm install
pnpm build

Running Tests

pnpm test              # Run tests once
pnpm test:watch        # Run tests in watch mode
pnpm test:coverage     # Run tests with coverage report

Type Checking

pnpm typecheck         # Type check without emitting files

Linting

pnpm lint              # Run ESLint

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

License

MIT License - see LICENSE file for details.

Acknowledgments


Legend: 🔒 = Requires elevated permissions (PROXMOX_ALLOW_ELEVATED=true)

Available Tools

92 tools
proxmox_aclAccess Control ListsC
DestructiveIdempotent

Manage ACL entries (get, update)

Inputs: action (required), path, roles, users, +7 more.

proxmox_acme_accountACME AccountsA
DestructiveIdempotent

Manage ACME accounts. action=list|get: query accounts | action=create|update|delete: manage accounts (requires elevated)

Inputs: action (required), name, contact, tos_url, +1 more.

proxmox_acme_certACME CertificatesA
Destructive

Manage ACME certificates. action=order|renew|revoke: certificate ops (requires elevated) | action=config: get ACME config

Inputs: node (required), action (required), force.

proxmox_acme_infoACME InformationB
Read-only

Query ACME information. action=list_plugins|get_plugin|directories

Inputs: action (required), id.

proxmox_agent_execGuest Agent Command ExecutionB
Destructive

Execute commands via QEMU agent. operation=exec: run command | operation=status: check execution status (requires elevated permissions)

Inputs: node (required), vmid (required), operation (required), pid, +5 more.

proxmox_agent_fileGuest Agent File AccessA
Destructive

Read/write files via QEMU agent. operation=read|write (requires elevated permissions)

Inputs: file (required), node (required), vmid (required), operation (required), +2 more.

proxmox_agent_freezeGuest Agent Filesystem FreezeC
Destructive

Manage filesystem freeze via QEMU agent. operation=status|freeze|thaw|fstrim (requires elevated permissions)

Inputs: node (required), vmid (required), operation (required).

proxmox_agent_hwGuest Agent Hardware InfoB
Read-only

Query guest hardware via QEMU agent. operation=memory_blocks|vcpus|memory_block_info|hostname|users (requires elevated permissions)

Inputs: node (required), vmid (required), operation (required).

proxmox_agent_infoGuest Agent InfoA
Read-only

Query guest info via QEMU agent. operation=ping|osinfo|fsinfo|network_interfaces|time|timezone (requires elevated permissions)

Inputs: node (required), vmid (required), operation (required).

proxmox_agent_powerGuest Agent Power ControlA
Destructive

Guest power control via QEMU agent. operation=shutdown|suspend_disk|suspend_ram|suspend_hybrid (requires elevated permissions)

Inputs: node (required), vmid (required), operation (required).

proxmox_agent_userGuest Agent User ManagementB
DestructiveIdempotent

Manage guest users via QEMU agent. operation=set_password (requires elevated permissions)

Inputs: node (required), vmid (required), password (required), username (required), +2 more.

proxmox_aptAPT PackagesA
Destructive

Manage APT packages. action=update(elevated)|upgrade(elevated): package ops | action=versions: list versions

Inputs: node (required), action (required), package.

proxmox_backupGuest BackupsA
Destructive

Manage guest backups (create, list, restore, delete) for VMs and LXC containers (requires elevated permissions)

Inputs: node (required), action (required), mode, type, +5 more.

proxmox_cephCeph StatusA
Read-only

Query Ceph cluster. action=status: get Ceph cluster health, FSID, monitors, OSDs, and placement groups

Inputs: node (required), action (required).

proxmox_ceph_fsCeph FilesystemsC

Manage Ceph filesystems (list, create)

Inputs: node (required), action (required), name, pool, +2 more.

proxmox_ceph_mdsCeph MDS DaemonsB
Destructive

Manage Ceph MDS daemons (list, create, delete)

Inputs: node (required), action (required), name.

proxmox_ceph_monCeph MonitorsC
Destructive

Manage Ceph monitors (list, create, delete)

Inputs: node (required), action (required), monid.

proxmox_ceph_osdCeph OSDsC
Destructive

Manage Ceph OSDs (list, create, delete)

Inputs: node (required), action (required), id, dev, +5 more.

proxmox_ceph_poolCeph PoolsC
DestructiveIdempotent

Manage Ceph pools (list, create, update, delete)

Inputs: node (required), action (required), name, size, +4 more.

proxmox_certificateNode SSL CertificatesB
DestructiveIdempotent

Manage node SSL certificates. action=list: view certs | action=upload: upload custom cert (requires elevated) | action=delete: remove custom cert (requires elevated)

Inputs: node (required), action (required), key, force, +2 more.

proxmox_cloudinitCloud-Init ConfigurationA
DestructiveIdempotent

Manage cloud-init for a QEMU VM. action=get: list config | action=dump: dump rendered config (dump_type=user|network|meta) | action=regenerate: regenerate drive (requires elevated)

Inputs: node (required), vmid (required), action (required), dump_type.

proxmox_clusterCluster InfoA
DestructiveIdempotent

Query Proxmox cluster info. action=status: overall cluster status with nodes and resource usage | action=options: get cluster-wide options | action=update_options: update cluster-wide options (requires elevated permissions)

Inputs: action (required), options.

proxmox_cluster_backup_jobCluster Backup JobsC
DestructiveIdempotent

Manage cluster backup jobs. action=list: list jobs | action=get: get job by ID | action=create: create job (elevated) | action=update: update job (elevated) | action=delete: delete job (elevated)

Inputs: action (required), id, all, dow, +34 more.

proxmox_cluster_configCluster ConfigurationC
Destructive

Manage cluster config. action=get: get config | action=list_nodes: list config nodes | action=get_node: get node config | action=join: join cluster (elevated) | action=totem: get totem config

Inputs: action (required), node, force, hostname, +2 more.

proxmox_cluster_firewallCluster Firewall SettingsA
DestructiveIdempotent

Query/manage cluster firewall metadata. action=get_options: get firewall options | action=update_options: update firewall options (elevated) | action=list_macros: list firewall macros | action=list_refs: list firewall refs

Inputs: action (required), type, enable, policy_in, +2 more.

proxmox_cluster_firewall_aliasCluster Firewall AliasesA
DestructiveIdempotent

Manage cluster firewall aliases. action=list: list aliases | action=get: get alias by name | action=create: create alias (elevated) | action=update: update alias (elevated) | action=delete: delete alias (elevated)

Inputs: action (required), cidr, name, rename, +1 more.

proxmox_cluster_firewall_groupCluster Firewall GroupsC
DestructiveIdempotent

Manage cluster firewall groups. action=list: list groups | action=get: get group by name | action=create: create group (elevated) | action=update: update group (elevated) | action=delete: delete group (elevated)

Inputs: action (required), group, delete, digest, +2 more.

proxmox_cluster_firewall_ipsetCluster Firewall IP SetsA
DestructiveIdempotent

Manage cluster firewall IP sets. action=list: list IP sets | action=create: create IP set (elevated) | action=delete: delete IP set (elevated)

Inputs: action (required), name, comment.

proxmox_cluster_firewall_ipset_entryCluster Firewall IP Set EntriesB
DestructiveIdempotent

Manage cluster firewall IP set entries. action=list: list entries | action=create: add entry (elevated) | action=update: update entry (elevated) | action=delete: delete entry (elevated)

Inputs: name (required), action (required), cidr, comment, +1 more.

proxmox_cluster_firewall_ruleCluster Firewall RulesB
Destructive

Manage cluster firewall rules. action=list: list rules | action=get: get rule by position | action=create: create rule (elevated) | action=update: update rule (elevated) | action=delete: delete rule (elevated)

Inputs: action (required), log, pos, dest, +13 more.

proxmox_cluster_replication_jobCluster Replication JobsC
DestructiveIdempotent

Manage cluster replication jobs. action=list: list jobs | action=get: get job by ID | action=create: create job (elevated) | action=update: update job (elevated) | action=delete: delete job (elevated)

Inputs: action (required), id, keep, rate, +10 more.

proxmox_console_spiceSPICE Console TicketA

Get a SPICE proxy ticket for a QEMU VM (requires elevated permissions)

Inputs: node (required), vmid (required).

proxmox_console_termTerminal Console TicketB

Get a terminal proxy ticket for a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions)

Inputs: node (required), type (required), vmid (required).

proxmox_console_vncVNC Console TicketB

Get a VNC proxy ticket for a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions)

Inputs: node (required), type (required), vmid (required).

proxmox_create_lxcCreate LXC ContainerB

Create a new LXC container (requires elevated permissions)

Inputs: node (required), vmid (required), ostemplate (required), net0, +5 more.

proxmox_create_vmCreate Virtual MachineB

Create a new QEMU virtual machine (requires elevated permissions)

Inputs: node (required), vmid (required), iso, name, +7 more.

proxmox_domainAuthentication DomainsB
DestructiveIdempotent

Manage authentication domains (list, get, create, update, delete)

Inputs: action (required), port, type, realm, +14 more.

proxmox_file_restoreBackup File RestoreB
Read-only

Restore files from backup. action=list: list files in backup | action=download: download file from backup

Inputs: node (required), action (required), volume (required), storage (required), +2 more.

proxmox_get_next_vmidNext Available VMIDA
Read-only

Get the next available VM/Container ID number

Inputs: no named parameters.

proxmox_groupGroupsB
DestructiveIdempotent

Manage Proxmox groups (list, create, update, delete)

Inputs: action (required), users, append, delete, +3 more.

proxmox_guest_cloneClone GuestB

Clone a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions)

Inputs: node (required), type (required), vmid (required), newid (required), +2 more.

proxmox_guest_configGuest ConfigurationA
Read-only

Get hardware configuration for a VM (type=vm) or LXC container (type=lxc)

Inputs: node (required), type (required), vmid (required).

proxmox_guest_config_updateUpdate Guest ConfigurationA
DestructiveIdempotent

Update VM/LXC config key-value pairs (type=vm|lxc) (requires elevated permissions)

Inputs: node (required), type (required), vmid (required), config, +1 more.

proxmox_guest_deleteDelete GuestA
DestructiveIdempotent

Delete a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions)

Inputs: node (required), type (required), vmid (required).

proxmox_guest_disk_moveMove Guest DiskB
Destructive

Move guest storage for VM (type=vm) or LXC container (type=lxc) (requires elevated permissions)

Inputs: disk (required), node (required), type (required), vmid (required), +2 more.

proxmox_guest_disk_resizeResize Guest DiskA
Destructive

Resize guest storage for VM (type=vm) or LXC container (type=lxc) (requires elevated permissions)

Inputs: disk (required), node (required), size (required), type (required), +1 more.

proxmox_guest_featureGuest Feature AvailabilityA
Read-only

Check if a feature (snapshot, clone, copy) is available for a VM (type=vm) or LXC container (type=lxc)

Inputs: node (required), type (required), vmid (required), feature (required).

proxmox_guest_firewall_ruleGuest Firewall RulesA
Destructive

Manage per-guest firewall rules. action=list|get: query rules | action=create|update|delete: manage rules (elevated). type=vm|lxc. Uses rule_action for firewall action (ACCEPT/REJECT/DROP), rule_type for direction (in/out/group).

Inputs: node (required), type (required), vmid (required), action (required), +16 more.

proxmox_guest_listList GuestsA
Read-only

List all virtual machines and containers across the cluster with their status

Inputs: node, type.

proxmox_guest_migrateMigrate GuestB
Destructive

Migrate a VM or LXC container to another node (type=vm|lxc) (requires elevated permissions)

Inputs: node (required), type (required), vmid (required), target (required), +5 more.

proxmox_guest_networkGuest Network InterfacesB
Destructive

Manage guest network interfaces. action=add|update|remove with type=vm|lxc (requires elevated permissions)

Inputs: net (required), node (required), type (required), vmid (required), +8 more.

proxmox_guest_pausePause VMB
DestructiveIdempotent

Pause a QEMU virtual machine — VM only (requires elevated permissions)

Inputs: node (required), vmid (required).

proxmox_guest_pendingGuest Pending ChangesA
Read-only

Get pending configuration changes for a VM (type=vm) or LXC container (type=lxc)

Inputs: node (required), type (required), vmid (required).

proxmox_guest_rebootReboot GuestA
Destructive

Reboot a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions)

Inputs: node (required), type (required), vmid (required).

proxmox_guest_resizeResize Guest CPU/MemoryA
DestructiveIdempotent

Resize VM/LXC CPU or memory (type=vm|lxc) (requires elevated permissions)

Inputs: node (required), type (required), vmid (required), cores, +1 more.

proxmox_guest_resumeResume VMA
Idempotent

Resume a paused QEMU virtual machine — VM only (requires elevated permissions)

Inputs: node (required), vmid (required).

proxmox_guest_rrddataGuest MetricsB
Read-only

Get performance metrics (RRD data) for a VM (type=vm) or LXC container (type=lxc)

Inputs: node (required), type (required), vmid (required), cf, +1 more.

proxmox_guest_shutdownShut Down GuestA
DestructiveIdempotent

Gracefully shutdown a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions)

Inputs: node (required), type (required), vmid (required).

proxmox_guest_snapshotGuest SnapshotsA
Destructive

Manage guest snapshots (create, list, rollback, delete) for VMs and LXC containers (requires elevated permissions)

Inputs: node (required), type (required), vmid (required), action (required), +2 more.

proxmox_guest_startStart GuestA
Idempotent

Start a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions)

Inputs: node (required), type (required), vmid (required).

proxmox_guest_statusGuest StatusB
Read-only

Get detailed status for a VM (type=vm) or LXC container (type=lxc)

Inputs: node (required), type (required), vmid (required).

proxmox_guest_stopForce Stop GuestB
DestructiveIdempotent

Forcefully stop a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions)

Inputs: node (required), type (required), vmid (required).

proxmox_guest_templateConvert Guest to TemplateA
DestructiveIdempotent

Convert a VM or LXC container to a template (type=vm|lxc) (requires elevated permissions)

Inputs: node (required), type (required), vmid (required).

proxmox_ha_groupHA GroupsB
DestructiveIdempotent

Manage HA groups. action=list: list groups | action=get: get group details | action=create: create group (elevated) | action=update: update group (elevated) | action=delete: delete group (elevated)

Inputs: action (required), type, group, nodes, +5 more.

proxmox_ha_resourceHA ResourcesB
DestructiveIdempotent

Manage HA resources. action=list: list resources | action=get: get resource details | action=status: get HA manager status | action=create: create resource (elevated) | action=update: update resource (elevated) | action=delete: delete resource (elevated)

Inputs: action (required), sid, type, group, +7 more.

proxmox_lxc_execLXC Command ExecutionA
Destructive

Execute a command inside an LXC container via SSH + pct exec (requires elevated + PROXMOX_SSH_ENABLED=true)

Inputs: node (required), vmid (required), command (required), timeout.

proxmox_lxc_mountpointLXC Mount PointsC
Destructive

Manage LXC mount points. action=add: add mountpoint | action=remove: remove mountpoint (all elevated)

Inputs: mp (required), node (required), vmid (required), action (required), +2 more.

proxmox_nodeNode InfoB
Read-only

Query Proxmox node info. action=list: list all nodes | action=status: node status (elevated) | action=network: network interfaces | action=dns: DNS config | action=iface: specific interface details

Inputs: action (required), node, type, iface.

proxmox_node_bulkBulk Guest OperationsC
Destructive

Bulk guest operations. action=start_all|stop_all|migrate_all (all elevated)

Inputs: node (required), action (required), target, maxworkers, +1 more.

proxmox_node_configNode ConfigurationB
DestructiveIdempotent

Manage node configuration. action=get_time|set_time(elevated)|set_dns(elevated)|get_hosts|set_hosts(elevated)

Inputs: node (required), action (required), ip, dns1, +9 more.

proxmox_node_diskNode DisksB
Read-only

Query node disk information. action=list|smart|lvm|zfs|lvmthin|directory

Inputs: node (required), action (required), disk, type, +3 more.

proxmox_node_disk_adminNode Disk AdministrationA
Destructive

Destructive disk operations. action=init_gpt: initialize GPT | action=wipe: wipe disk (all elevated)

Inputs: disk (required), node (required), action (required), uuid.

proxmox_node_infoNode DiagnosticsB
Read-only

Query node information. action=aplinfo: appliance templates | action=netstat: network stats | action=rrddata: performance metrics | action=storage_rrddata: storage metrics | action=report: diagnostic report

Inputs: node (required), action (required), cf, storage, +1 more.

proxmox_node_logNode LogsA
Read-only

Read node logs. action=syslog: read syslog | action=journal: read systemd journal

Inputs: node (required), action (required).

proxmox_node_network_ifaceNode Network InterfacesB
DestructiveIdempotent

Manage node network interfaces. action=create|update|delete|apply (all elevated)

Inputs: node (required), action (required), mtu, cidr, +21 more.

proxmox_node_powerNode Power ControlB
Destructive

Node power control. action=shutdown|reboot|wakeonlan (all elevated)

Inputs: node (required), action (required).

proxmox_node_replicationNode ReplicationA

Manage node replication. action=status|log: query | action=schedule: trigger now (elevated)

Inputs: id (required), node (required), action (required).

proxmox_node_serviceNode ServicesA
Destructive

Manage node services. action=list: list services | action=control: start/stop/restart a service (elevated)

Inputs: node (required), action (required), command, service.

proxmox_node_subscriptionNode SubscriptionA
DestructiveIdempotent

Manage node subscription. action=get: get info | action=set: set key (elevated) | action=delete: remove (elevated)

Inputs: node (required), action (required), key.

proxmox_node_taskNode TasksA
Read-only

Query node tasks. action=list: list recent tasks | action=get: get task details by UPID

Inputs: node (required), action (required), upid.

proxmox_notificationNotification TargetsC
Destructive

Manage notification targets. action=list|get: query targets | action=create|delete|test: manage targets (requires elevated)

Inputs: action (required), from, mode, name, +11 more.

proxmox_poolResource PoolsC
DestructiveIdempotent

Manage resource pools (list, get, create, update, delete)

Inputs: action (required), delete, digest, poolid, +1 more.

proxmox_roleRolesC
DestructiveIdempotent

Manage Proxmox roles (list, create, update, delete)

Inputs: action (required), privs, append, delete, +3 more.

proxmox_sdn_controllerSDN ControllersC
DestructiveIdempotent

Manage SDN controllers (list, get, create, update, delete)

Inputs: action (required), ip, port, type, +7 more.

proxmox_sdn_subnetSDN SubnetsB
DestructiveIdempotent

Manage SDN subnets (list, get, create, update, delete)

Inputs: action (required), dns, mtu, cidr, +9 more.

proxmox_sdn_vnetSDN Virtual NetworksC
DestructiveIdempotent

Manage SDN virtual networks (list, get, create, update, delete)

Inputs: action (required), mac, mtu, tag, +10 more.

proxmox_sdn_zoneSDN ZonesB
DestructiveIdempotent

Manage SDN zones (list, get, create, update, delete)

Inputs: action (required), mtu, tag, ipam, +8 more.

proxmox_storage_configStorage ConfigurationC
DestructiveIdempotent

Manage storage configurations (list, get, create, update, delete, cluster_usage)

Inputs: action (required), node, path, pool, +25 more.

proxmox_storage_contentStorage ContentC
Destructive

Manage storage content (list, list_templates, upload, download_url, delete, prune)

Inputs: node (required), action (required), storage (required), url, +16 more.

proxmox_userUsersB
DestructiveIdempotent

Manage Proxmox users (list, get, create, update, delete)

Inputs: action (required), email, append, delete, +9 more.

proxmox_user_tokenAPI TokensA
DestructiveIdempotent

Manage user API tokens (list, get, create, update, delete)

Inputs: action (required), userid (required), expire, comment, +2 more.

proxmox_vm_diskVM DisksB
Destructive

Manage VM disks. action=add: add disk | action=remove: remove disk (all elevated)

Inputs: disk (required), node (required), vmid (required), action (required), +2 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.8/5.0

    Scored across 92 tools

    Disambiguation2/5

    Multiple tool boundaries are unclear: proxmox_guest_resize (CPU/memory) vs proxmox_guest_disk_resize (storage) are easily confused, and node queries are split across proxmox_node, proxmox_node_info, and proxmox_node_config with overlapping network/DNS actions. Disk operations are also scattered across proxmox_vm_disk and proxmox_guest_disk_*, creating ambiguous choices.

    Naming Consistency3/5

    Most tools follow a proxmox_<resource>_<action> snake_case pattern, but the set mixes action-in-tool-name (proxmox_guest_start) with action-parameter designs (proxmox_node, proxmox_cluster). There are also outliers like proxmox_create_vm/proxmox_create_lxc (versus the generic proxmox_guest_* Family) and proxmox_get_next_vmid which breaks the resource-first convention.

    Tool Count1/5

    With 92 tools, this server is far beyond an effective scope and will overwhelm agent tool selection. Even for a full hypervisor-management API, grouping related operations would make the set far more usable.

    Completeness4/5

    The tool surface is impressively broad and covers most core Proxmox domains: guest lifecycle (creation, start/stop, clone, migrate, template), snapshots, backups, storage, Ceph, SDN, users/ACLs, firewall, HA, and node administration. Minor gaps exist (e.g., no explicit guest rename, backup restore lacks granular options), but common workflows are essentially fully covered.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      An open-source MCP server for managing Proxmox environments, including nodes, virtual machines, and containers. It enables users to perform inventory checks, status monitoring, and control operations directly through MCP-compatible tools.
      102 npm
      2
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      An MCP server for Proxmox VE that enables read-only cluster inspection, VM/container lifecycle operations, snapshots, migration, and provisioning with safe confirmation gates.
      28
      MIT