Skip to main content
Glama
Proxmox VE MCP Server

Proxmox VE MCP Server

by MTDEV2312

Proxmox VE MCP Server

Python Version FastMCP Version Code Style: Ruff Type Checked: MyPy License: MIT

A production-ready Model Context Protocol (MCP) server built with FastMCP for high-level Proxmox VE homelab and cluster automation. Rather than acting as a plain REST API wrapper, proxmox-mcp provides semantic, domain-driven orchestration capabilities for LLM agents (Claude Desktop, Cursor, Gemini CLI, etc.).


Table of Contents

  1. Features

  2. Prerequisites & Installation

  3. Environment Configuration

  4. MCP Client Setup

  5. FastMCP Catalog

  6. Security & Audit Architecture

  7. Development & Verification

  8. Documentation Index


Related MCP server: Proxmox MCP Server

Features

  • Full VM (QEMU) & LXC Container Lifecycle Management: Create, clone, start, stop, shutdown, reboot, pause, resume, migrate, and purge virtual machines and containers.

  • Hardware & Resource Tuning: Dynamically update CPU cores, sockets, RAM, disk sizes, network interfaces, and storage volume bindings.

  • Cloud-Init Integration: Inject user accounts, passwords, SSH keys, network configurations, and trigger ISO regeneration directly.

  • Snapshot & Rollback Tree: List, create, rollback, and delete snapshots for both VMs and LXC containers.

  • Multi-Step Workflows: Automated step-by-step provisioning, bulk operations across host targets, pre-backup snapshots with vzdump execution, and cluster readiness checks with automatic rollback safety.

  • Enterprise-Grade Security: CIDR-based client IP whitelisting, RBAC permission scopes (READ_ONLY, OPERATOR, ADMIN), mandatory destructive operation confirmations (confirm=true), recursive sensitive payload scrubbing, and structured audit logs.


Prerequisites & Installation

Prerequisites

  • Python 3.12+ installed on the local system.

  • uv (recommended high-performance package manager) or standard pip.

  • Access to a Proxmox VE (v7.x or v8.x) server over HTTPS (port 8006).

Installation via uv (Recommended)

# Clone repository
git clone https://github.com/your-org/proxmox-mcp.git
cd proxmox-mcp

# Create virtualenv and install dependencies
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
uv sync --all-extras

Installation via pip

python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
pip install -e ".[dev]"

Environment Configuration

Configure connection and security settings via environment variables or a .env file in the root directory:

# Proxmox VE Connection Parameters
PROXMOX_HOST=Your_IP:8006
PROXMOX_USER=User@permision
PROXMOX_PASSWORD=Password
# Or API Token authentication (recommended):
PROXMOX_TOKEN_ID=Your_Token_ID
PROXMOX_TOKEN_SECRET=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
PROXMOX_VERIFY_SSL=false
PROXMOX_TIMEOUT=30.0
PROXMOX_MAX_RETRIES=3

# MCP Security & Authorization Settings
MCP_PERMISSION_LEVEL=operator
MCP_AUDIT_ENABLED=true
MCP_AUDIT_LOG_PATH=audit.log
MCP_ALLOWED_CLIENT_IPS=127.0.0.1/32,192.168.1.0/24

Configuration Parameters Reference

Variable

Type

Default

Description

PROXMOX_HOST

String

Required

Host address and port of Proxmox VE instance

PROXMOX_USER

String

user@Permisions

Proxmox VE user identity

PROXMOX_PASSWORD

String

""

User password for API ticket authentication

PROXMOX_TOKEN_ID

String

""

API Token ID (takes precedence if provided)

PROXMOX_TOKEN_SECRET

String

""

API Token Secret key

PROXMOX_VERIFY_SSL

Boolean

false

Verify TLS certificates

PROXMOX_TIMEOUT

Float

30.0

HTTP request timeout in seconds

PROXMOX_MAX_RETRIES

Integer

3

Maximum retry attempts on transient network errors

MCP_PERMISSION_LEVEL

Enum

operator

Baseline permission scope (read_only, operator, admin)

MCP_AUDIT_ENABLED

Boolean

true

Enable JSON lines structured audit logging

MCP_AUDIT_LOG_PATH

Path

audit.log

Path to append structured audit records

MCP_ALLOWED_CLIENT_IPS

String

""

Comma-separated CIDR subnets allowed to execute MCP commands


MCP Client Setup

Claude Desktop

Add the server configuration to your claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "proxmox-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/proxmox-mcp",
        "run",
        "proxmox-mcp"
      ],
      "env": {
        "PROXMOX_HOST": "Your_IP:8006",
        "PROXMOX_USER": "user@permission",
        "PROXMOX_PASSWORD": "Password",
        "PROXMOX_VERIFY_SSL": "false",
        "MCP_PERMISSION_LEVEL": "operator"
      }
    }
  }
}

Cursor

Add to your project .cursor/mcp.json or Global MCP Settings:

{
  "mcpServers": {
    "proxmox": {
      "command": "uv",
      "args": [
        "--directory",
        "C:/Users/username/DEV/proxmox-mcp",
        "run",
        "proxmox-mcp"
      ],
      "env": {
        "PROXMOX_HOST": "Your_IP:8006",
        "PROXMOX_TOKEN_ID": "user@permission!mcp_token",
        "PROXMOX_TOKEN_SECRET": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "PROXMOX_VERIFY_SSL": "false"
      }
    }
  }
}

Gemini CLI

Configure gemini MCP extension in settings or execution config:

{
  "mcpServers": {
    "proxmox-automation": {
      "command": "python",
      "args": [
        "-m",
        "proxmox_mcp.main"
      ],
      "cwd": "/opt/proxmox-mcp",
      "env": {
        "PROXMOX_HOST": "Your_IP:8006:8006",
        "PROXMOX_USER": "user@permission",
        "PROXMOX_PASSWORD": "Password"
      }
    }
  }
}

SSE Transport Mode

For standalone remote daemon deployment via Server-Sent Events (SSE):

# Start FastMCP server in SSE mode on port 8000
fastmcp run src/proxmox_mcp/main.py --transport sse --port 8000

FastMCP Catalog

Tools

1. QEMU Virtual Machine Domain (vm)

Tool Name

Scope

Confirm?

Description

list_vms

READ_ONLY

No

List VMs across cluster or specific node

vm_status

READ_ONLY

No

Retrieve detailed status for a specific VM

vm_config

READ_ONLY

No

Inspect hardware and operational config

create_vm

OPERATOR

No

Create new QEMU virtual machine

clone_vm

OPERATOR

No

Clone existing VM or template

delete_vm

ADMIN

Yes

Purge VM and associated storage volumes

start_vm

OPERATOR

No

Power on virtual machine instance

stop_vm

OPERATOR

Yes

Force stop virtual machine process

shutdown_vm

OPERATOR

Yes

Graceful OS shutdown with timeout

reboot_vm

OPERATOR

Yes

Graceful OS reboot sequence

pause_vm

OPERATOR

No

Pause execution (suspend-to-RAM)

resume_vm

OPERATOR

No

Resume execution of paused VM

suspend_vm

OPERATOR

No

Suspend VM state to storage disk

template_vm

OPERATOR

No

Convert VM into immutable template

update_cpu_vm

OPERATOR

No

Reconfigure CPU cores, sockets, NUMA settings

update_memory_vm

OPERATOR

No

Hotplug or adjust allocated RAM memory

resize_vm

OPERATOR

No

Expand virtual disk volume size

add_disk_vm

OPERATOR

No

Attach additional storage disk volume

remove_disk_vm

ADMIN

Yes

Detach and remove storage disk volume

move_disk_vm

OPERATOR

No

Relocate disk volume to target storage pool

update_network_vm

OPERATOR

No

Reconfigure virtual network interface card

configure_cloudinit_vm

OPERATOR

No

Set Cloud-Init user, password, SSH key, IP

regenerate_cloudinit_vm

OPERATOR

No

Trigger Cloud-Init ISO image regeneration

list_snapshots_vm

READ_ONLY

No

List snapshot tree for target VM

create_snapshot_vm

OPERATOR

No

Create named point-in-time VM snapshot

rollback_snapshot_vm

ADMIN

Yes

Restore VM state to target snapshot

delete_snapshot_vm

ADMIN

Yes

Remove target snapshot from tree

migrate_vm

ADMIN

Yes

Live or offline VM migration to target node

2. LXC Container Domain (lxc)

Tool Name

Scope

Confirm?

Description

list_containers

READ_ONLY

No

List LXC containers on cluster or node

container_status

READ_ONLY

No

Get detailed container runtime state

container_config

READ_ONLY

No

Inspect LXC container configuration

create_container

OPERATOR

No

Provision new LXC container

clone_container

OPERATOR

No

Clone existing container instance

delete_container

ADMIN

Yes

Destroy LXC container permanently

start_container

OPERATOR

No

Start LXC container execution

stop_container

OPERATOR

Yes

Hard stop LXC container

shutdown_container

OPERATOR

Yes

Graceful container shutdown

restart_container

OPERATOR

Yes

Reboot LXC container

template_container

OPERATOR

No

Convert LXC container into template

update_hostname_lxc

OPERATOR

No

Update container hostname

update_dns_lxc

OPERATOR

No

Update search domain and DNS nameservers

set_container_password

OPERATOR

No

Set root user password

inject_ssh_key_lxc

OPERATOR

No

Append public SSH keys for root access

resize_rootfs_lxc

OPERATOR

No

Expand container root filesystem disk

update_memory_lxc

OPERATOR

No

Adjust RAM and swap limits

update_cpu_lxc

OPERATOR

No

Adjust CPU cores and execution limits

list_mount_points

READ_ONLY

No

List attached storage mount points

add_bind_mount

OPERATOR

No

Attach host bind mount to container

remove_bind_mount

ADMIN

Yes

Detach host bind mount point

enable_nesting_lxc

OPERATOR

No

Enable nesting feature for Docker support

enable_keyctl_lxc

OPERATOR

No

Enable keyctl subsystem inside container

enable_fuse_lxc

OPERATOR

No

Mount FUSE filesystems inside container

list_snapshots_lxc

READ_ONLY

No

List snapshot tree for LXC container

create_snapshot_lxc

OPERATOR

No

Create named LXC container snapshot

rollback_snapshot_lxc

ADMIN

Yes

Revert container state to snapshot

delete_snapshot_lxc

ADMIN

Yes

Remove snapshot from container tree

3. Support Domains (cluster, nodes, storage, tasks)

Tool Name

Domain

Scope

Description

cluster_health

cluster

READ_ONLY

Evaluate quorum, node state, and storage health

cluster_resources

cluster

READ_ONLY

Summarize cluster-wide virtual resources

list_nodes

nodes

READ_ONLY

Get overview of cluster node members

node_status

nodes

READ_ONLY

CPU, memory, uptime, kernel details for node

list_storage

storage

READ_ONLY

List available cluster storage pools

storage_content

storage

READ_ONLY

Query storage volume contents (ISO, backup, disk)

storage_status

storage

READ_ONLY

Disk capacity and usage statistics for pool

recent_tasks

tasks

READ_ONLY

Query recent cluster background task logs

task_status

tasks

READ_ONLY

Check completion state for specific UPID

4. Workflows Domain (workflows)

Tool Name

Scope

Confirm?

Description

run_provisioning_workflow

OPERATOR

No

Provision VM/LXC with automated rollback on step failure

run_bulk_operation

OPERATOR

Optional

Perform batch actions (start, stop, reboot) across resource tags

run_backup_flow

OPERATOR

No

Storage pre-check, pre-backup snapshot, vzdump execution, cleanup

run_cluster_check

READ_ONLY

No

Cluster readiness assessment (quorum, disk thresholds, tasks)

5. Security Domain (security)

Tool Name

Scope

Confirm?

Description

check_client_ip

READ_ONLY

No

Test client IP against configured CIDR whitelist

audit_security_rules

READ_ONLY

No

Audit current RBAC policy and active security rules

get_security_summary

READ_ONLY

No

Retrieve high-level runtime security metrics summary


Resources

Contextual data endpoints read by LLM reasoning engines:

Resource URI

Scope

Description

cluster://summary

READ_ONLY

Cluster member and total resource summary

cluster://health

READ_ONLY

Real-time cluster health and quorum evaluation

node://{node}/status

READ_ONLY

CPU, RAM, and hardware metrics for host node

node://{node}/storage

READ_ONLY

Storage pool bindings on specific node

storage://{node}/summary

READ_ONLY

Storage volume allocation metrics

vm://{node}/{vmid}/status

READ_ONLY

Live runtime metrics for virtual machine

vm://{node}/{vmid}/config

READ_ONLY

Hardware specification and flags for VM

vm://{node}/{vmid}/snapshots

READ_ONLY

Snapshot hierarchy for VM

lxc://{node}/{vmid}/status

READ_ONLY

Live runtime metrics for LXC container

lxc://{node}/{vmid}/config

READ_ONLY

Container config parameters

lxc://{node}/{vmid}/snapshots

READ_ONLY

Snapshot hierarchy for container

container://{node}/{vmid}/status

READ_ONLY

Alias for LXC container status

container://{node}/{vmid}/config

READ_ONLY

Alias for LXC container config

container://{node}/{vmid}/snapshots

READ_ONLY

Alias for LXC container snapshots

task://{node}/{upid}/log

READ_ONLY

Historical operational logs for Proxmox UPID

security://status

READ_ONLY

Runtime security engine status

security://policy

READ_ONLY

Active security settings and permission thresholds

security://audit_summary

READ_ONLY

Total audit records count and operation metrics


Prompts

Interactive user prompt templates guiding complex workflows:

Prompt Name

Target Workflow

Description

provision_vm

VM Domain

Step-by-step guided provisioning template for QEMU VM

vm_snapshot_workflow

VM Domain

Safety-first guidance for VM snapshot creation and rollback

cloudinit_config

VM Domain

Cloud-Init setup, user creation, and ISO drive binding

provision_container

LXC Domain

Container setup checklist with unprivileged & nesting checks

lxc_troubleshooting

LXC Domain

Diagnostics guide for broken or unstartable containers

lxc_snapshot_workflow

LXC Domain

Container snapshot lifecycle management checklist

cluster_diagnostics

Cluster Domain

Comprehensive health, quorum, and network audit guide

node_diagnostics

Node Domain

Host performance tuning and resource saturation checklist

storage_inspection

Storage Domain

Pool capacity utilization and volume cleanup guide

task_troubleshooting

Task Domain

UPID task log parsing and failure root cause analysis

workflow_selection

Workflows Domain

Decision tree for choosing multi-step workflow routines

guided_provisioning

Workflows Domain

Interactive assistant for multi-tier stack deployments

security_audit

Security Domain

Review active permissions, CIDR rules, and audit logs

ip_permission_check

Security Domain

Verify IP access rights and privilege boundaries


Security & Audit Architecture

  1. RBAC Permission Enforcement: Every tool execution is validated against the configured MCP_PERMISSION_LEVEL (read_only, operator, admin).

  2. CIDR IP Whitelisting: If MCP_ALLOWED_CLIENT_IPS is configured, client incoming IP addresses are validated against allowed subnets before processing requests.

  3. Destructive Operation Shield: High-risk actions (delete_vm, stop_vm, remove_disk_vm, rollback_snapshot_vm, delete_container, etc.) require explicit confirm=true parameters to prevent accidental execution.

  4. Data Scrubbing: All audit payloads and logs are recursively scrubbed to sanitize passwords, tokens, tickets, and secrets (scrub_payload).

  5. Structured Audit Trail: Detailed JSON logs are persisted containing execution timestamp, tool name, client context, parameter payload (scrubbed), execution duration, and Proxmox UPID task references.


Development & Verification

Run the automated quality assurance suite before making contributions:

# 1. Execute Unit & Integration Test Suite
pytest -v

# 2. Run Static Code Linting & Formatting Analysis
ruff check .

# 3. Run Strict Static Type Checking
mypy src tests

Documentation Index

For complete technical specifications, architectural diagrams, and security models, inspect the files in docs/:


License

Distributed under the MIT License. See LICENSE for details.

Available Tools

65 tools
add_bind_mount_containerB

Add a mount point or bind mount to an LXC container.

Inputs: mp (required), node (required), vmid (required), size, +5 more.

add_vm_diskC

Attach a new virtual disk volume to a VM.

Inputs: node (required), size (required), vmid (required), storage (required), +6 more.

audit_security_rulesA

Fetch current security audit status, CIDR rules, and sensitive key scrubbing configuration.

Inputs: no named parameters. Returns: object

check_client_ipA

Verify whether a given client IP address is allowed by the security policy whitelist.

Inputs: ip_address (required). Returns: object

clone_containerC

Clone an existing LXC container or template.

Inputs: node (required), vmid (required), newid (required), full, +5 more.

clone_vmB

Clone an existing virtual machine or template.

Inputs: node (required), vmid (required), newid (required), full, +3 more.

cluster_healthA

Fetch aggregated health summary, node counts, VM counts, and CPU/memory utilization of the Proxmox cluster.

Inputs: no named parameters.

cluster_resourcesA

Fetch resource list across the Proxmox cluster with optional type filtering (node, qemu, lxc, storage).

Inputs: type_filter.

configure_cloudinit_vmC

Configure Cloud-Init settings for automated OS setup.

Inputs: node (required), vmid (required), citype, ciuser, +8 more.

configure_dns_containerC

Update DNS nameserver and searchdomain settings for an LXC container.

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

configure_features_containerC

Configure feature flags (nesting, keyctl, fuse) for an LXC container.

Inputs: node (required), vmid (required), fuse, mknod, +3 more.

configure_network_containerC

Configure network adapter settings for an LXC container.

Inputs: node (required), vmid (required), gw, ip, +9 more.

create_containerC

Create a new LXC container. Default unprivileged=True.

Inputs: node (required), ostemplate (required), name, net0, +17 more.

create_snapshot_containerB

Create a snapshot of an LXC container.

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

create_snapshot_vmC

Create a snapshot of a virtual machine.

Inputs: node (required), vmid (required), snapname (required), vmstate, +1 more.

create_vmC

Create a new QEMU virtual machine on a specified node.

Inputs: name (required), node (required), cpu, bios, +11 more.

delete_containerA

Delete an LXC container and purge resources. DESTRUCTIVE: Requires confirm=True.

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

delete_snapshot_containerA

Delete an LXC container snapshot. DESTRUCTIVE: Requires confirm=True.

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

delete_snapshot_vmA

Delete a virtual machine snapshot. DESTRUCTIVE: Requires confirm=True.

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

delete_vmA

Delete a QEMU virtual machine and purge resources. DESTRUCTIVE: Requires confirm=True.

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

get_cloudinit_config_vmB

Fetch Cloud-Init configuration settings of a virtual machine.

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

get_container_configC

Fetch configuration settings of an LXC container.

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

get_container_statusB

Fetch detailed runtime status of an LXC container.

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

get_security_summaryA

Retrieve security policy configuration and status summary.

Inputs: no named parameters. Returns: object

get_vm_configC

Fetch configuration settings of a QEMU virtual machine.

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

get_vm_statusC

Fetch detailed runtime status of a QEMU virtual machine.

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

list_containersA

List all LXC containers on a specified node.

Inputs: node (required).

list_nodesA

List all nodes in the Proxmox cluster with status and resource utilization.

Inputs: no named parameters.

list_snapshots_containerA

List all snapshots for an LXC container.

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

list_snapshots_vmB

List all snapshots for a specified virtual machine.

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

list_storageA

List storage pools globally or for a specific node, including type, status, and calculated space usage.

Inputs: node.

list_vmsB

List all QEMU virtual machines on a specified node.

Inputs: node (required).

migrate_vmC

Migrate a virtual machine to another node in the cluster.

Inputs: node (required), vmid (required), target (required), online, +2 more.

move_vm_diskB

Move a virtual machine disk to a different storage pool.

Inputs: disk (required), node (required), vmid (required), storage (required), +1 more.

node_statusA

Fetch detailed hardware metrics, CPU/memory usage, kernel version, and status for a specific node.

Inputs: node (required).

pause_vmB

Pause execution of a running QEMU virtual machine.

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

reboot_vmC

Reboot a running QEMU virtual machine.

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

recent_tasksB

List recent asynchronous background tasks globally or for a specific node, with optional status and limit filters.

Inputs: node, user, limit, status_filter.

regenerate_cloudinit_vmC

Regenerate the Cloud-Init drive image for a VM.

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

remove_bind_mount_containerA

Remove a mount point from an LXC container. DESTRUCTIVE: Requires confirm=True.

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

resize_container_diskC

Extend rootfs or disk capacity of an LXC container.

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

resize_vm_diskC

Extend the capacity of a virtual machine disk.

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

restart_containerA

Reboot/restart an LXC container. DESTRUCTIVE: Requires confirm=True.

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

resume_vmB

Resume execution of a paused QEMU virtual machine.

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

rollback_snapshot_containerA

Rollback LXC container state to a snapshot. DESTRUCTIVE: Requires confirm=True.

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

rollback_snapshot_vmA

Rollback virtual machine state to a snapshot. DESTRUCTIVE: Requires confirm=True.

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

run_backup_flowA

Execute multi-step backup workflow: storage pre-checks, pre-backup snapshotting, vzdump execution, and cleanup.

Inputs: node (required), vmid (required), storage (required), mode, +4 more.

run_bulk_operationA

Execute batch lifecycle actions (start, stop, shutdown, pause, resume) across VMs or LXC containers matching filters.

Inputs: action (required), node, tags, vmids, +3 more.

run_cluster_checkA

Aggregate cluster readiness state including node health, quorum state, storage space, and task health.

Inputs: check_quorum, check_storage, check_node_health, min_free_storage_bytes.

run_provisioning_workflowC

Execute multi-step VM or LXC container provisioning with automated step tracing and failure rollback.

Inputs: name (required), node (required), net0, vmid, +9 more.

shutdown_containerB

Gracefully shutdown an LXC container. DESTRUCTIVE: Requires confirm=True.

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

shutdown_vmA

Gracefully shutdown a QEMU virtual machine via ACPI signal.

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

start_containerA

Start a stopped LXC container.

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

start_vmB

Start a stopped QEMU virtual machine.

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

stop_containerA

Forcefully stop an LXC container. DESTRUCTIVE: Requires confirm=True.

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

stop_vmA

Forcefully stop (power off) a QEMU virtual machine. DESTRUCTIVE: Requires confirm=True.

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

storage_contentA

List volume items (VM disks, ISOs, LXC templates, backups) inside a storage pool on a node with optional content_type filter.

Inputs: storage (required), node, content_type.

storage_statusA

Fetch capacity, total/used bytes, and detailed status for a specific storage pool on a node.

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

suspend_vmC

Suspend virtual machine state to disk.

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

task_statusA

Fetch status and exit status of an asynchronous Proxmox background task by UPID.

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

template_containerB

Convert an LXC container to a reusable template.

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

template_vmB

Convert a QEMU virtual machine to a reusable template.

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

update_cpu_vmC

Update CPU core and socket allocation of a virtual machine.

Inputs: node (required), vmid (required), cores (required), cpu, +3 more.

update_memory_vmB

Update RAM memory size and ballooning configuration of a VM.

Inputs: node (required), vmid (required), memory (required), hugepages, +1 more.

update_resources_containerC

Update CPU cores, memory, or swap resources of an LXC container.

Inputs: node (required), vmid (required), swap, cores, +3 more.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 65 tools

    Disambiguation5/5

    Each tool targets a distinct action and resource type (VM, container, storage, cluster, etc.). Overlapping operations like stop_vm vs shutdown_vm vs pause_vm are clearly differentiated by their descriptions, and workflow tools are uniquely named and scoped.

    Naming Consistency4/5

    The majority of tools follow a consistent verb_noun pattern (e.g., create_vm, delete_vm, list_snapshots_container). However, several tools deviate with noun-first names like storage_content, task_status, and cluster_health, which mix conventions and slightly reduce predictability.

    Tool Count1/5

    With 65 tools, this server is extremely heavy and exceeds the typical scope for a single MCP server. Even for a complex domain like Proxmox, the number is overwhelming and would benefit from splitting into smaller, focused servers (e.g., vm_management, container_management, cluster_management).

    Completeness5/5

    The tool set provides comprehensive lifecycle coverage for VMs, containers, storage, cluster health, nodes, and security, including create, read, update, delete, snapshots, and operational actions. Workflow tools for provisioning, backup, and cluster checks fill higher-level gaps, leaving few obvious missing operations.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers