Proxmox MCP Server
The Proxmox MCP Server provides 92 tools for comprehensive management of Proxmox Virtual Environment, supporting both QEMU VMs and LXC containers.
Node Management
Query node info, status, logs, tasks, and network/DNS configuration
Manage node services (start/stop/restart), subscriptions, and APT packages
Control node power (shutdown/reboot/wake-on-LAN)
Perform bulk guest operations (start/stop/migrate all)
Manage node replication jobs, network interfaces (bridges, bonds, VLANs), and disk administration
VM & Container Lifecycle
List, create, start, stop, reboot, shutdown, pause/resume, clone, migrate, delete, and convert VMs/containers to templates
Update configuration, resize CPU/memory, manage disks, mount points (LXC), and network interfaces
Manage snapshots and backups (create, list, restore, delete)
QEMU Guest Agent
Query guest OS info, filesystem, network interfaces, time, hardware, hostname, and users
Execute commands, read/write files, manage filesystem freeze/thaw, control guest power, and set user passwords
Cluster & High Availability
Query/update cluster status and options; manage node joining
Manage HA resources and groups for automatic failover
Manage cluster backup and replication jobs
Firewall
Manage cluster-level and per-guest firewall rules, groups, aliases, and IP sets
Storage
Manage storage configurations (NFS, iSCSI, Ceph, LVM, ZFS, etc.)
List, upload, download, delete, and prune storage content; restore files from backups
SDN Networking
Manage SDN virtual networks (VNets), zones, controllers, and subnets
Access Control
Manage users, groups, roles, ACL entries, authentication domains (PAM, LDAP, AD, OpenID), user API tokens, and resource pools
Ceph
Manage Ceph cluster status, OSDs, monitors, MDS daemons, pools, and filesystems
Console Access
Get VNC, terminal, and SPICE proxy tickets for VMs and containers
Cloud-Init & Certificates
Manage cloud-init configurations for QEMU VMs
Manage node SSL certificates and ACME certificates/accounts
Notifications
Manage notification targets (SMTP, Gotify, Sendmail)
Click on "Deploy 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 MCP Server list all VMs and their status"
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 Server
Model Context Protocol (MCP) server for Proxmox Virtual Environment
English | 한국어
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
noUncheckedIndexedAccessHand-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-mcpjust worksAll 92 tool descriptions exposed via MCP
ListToolsRate 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-mcpConfiguration
Environment Variables
Set the following environment variables before starting the server:
Variable | Required | Description | Default |
| Yes | Proxmox server hostname or IP address | - |
| No | Username with realm (e.g., |
|
| Yes | API token name | - |
| Yes | API token value | - |
| No | SSL verification mode |
|
| No | Path to a CA certificate (PEM) trusted in | - |
| No | Allow elevated operations |
|
| No | Proxmox API port |
|
| No | Allow shell special characters in exec commands |
|
| No | Enable SSH-based LXC exec |
|
| No | SSH host (falls back to PROXMOX_HOST) | - |
| No | SSH port |
|
| No | SSH username |
|
| When SSH enabled | Path to SSH private key | - |
| When SSH enabled | Proxmox node name reachable via SSH | - |
| No | Host key fingerprint for verification | - |
| No | Log verbosity ( |
|
SSL Modes
strict: Full SSL certificate verification against the system CA store (recommended for production)verify: Same asstrict, but additionally trusts the CA certificate given viaPROXMOX_SSL_CA_CERT. For self-signed certificates, pointPROXMOX_SSL_CA_CERTat the server certificate (or your internal CA) in PEM format. WithoutPROXMOX_SSL_CA_CERT, this mode behaves exactly likestrict.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-mcpUsing 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 |
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-mcpFor Claude Code Plugin:
/plugin marketplace add Bldg-7/proxmox-mcpSupported 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 resourcesSkill 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:
User makes request: "Create a new Ubuntu VM with 4 cores and 8GB RAM"
Claude analyzes request: Matches request to vm-manager agent based on example blocks
Auto-delegates: Invokes vm-manager agent with full context
Agent executes: vm-manager loads skills, calls MCP tools, completes operation
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-toolsandproxmox-adminskillsPermissions: Elevated operations require
PROXMOX_ALLOW_ELEVATED=truein MCP server config
Installation
SubAgents are included when you install the plugin:
For Claude Code Plugin:
/plugin marketplace add Bldg-7/proxmox-mcpFor Agent Skills Standard (if supported):
npx skills add Bldg-7/proxmox-mcpUsage 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 → startEnable 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 → verifyMonitor 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 → reportAgent 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_HOSTis correct and reachableCheck
PROXMOX_PORT(default: 8006)Ensure firewall allows connections to Proxmox API port
Try
PROXMOX_SSL_MODE=insecurefor testing (not recommended for production)
Authentication Errors
Problem: 401 Unauthorized or authentication failed
Solutions:
Verify
PROXMOX_USERincludes realm if set (e.g.,root@pam, not justroot)Verify
PROXMOX_TOKEN_NAMEandPROXMOX_TOKEN_VALUEare validEnsure 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=verifyandPROXMOX_SSL_CA_CERT=/path/to/cert.pem(the server certificate or your internal CA) —verifywithoutPROXMOX_SSL_CA_CERTbehaves likestrictand still failsUse
PROXMOX_SSL_MODE=insecurefor 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=trueto enable elevated operationsReview 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 buildRunning Tests
pnpm test # Run tests once
pnpm test:watch # Run tests in watch mode
pnpm test:coverage # Run tests with coverage reportType Checking
pnpm typecheck # Type check without emitting filesLinting
pnpm lint # Run ESLintContributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
License
MIT License - see LICENSE file for details.
Acknowledgments
Built with Model Context Protocol SDK
Powered by Proxmox Virtual Environment
Legend: 🔒 = Requires elevated permissions (PROXMOX_ALLOW_ELEVATED=true)
Available Tools
92 toolsproxmox_aclAccess Control ListsCDestructiveIdempotent
Manage ACL entries (get, update)
Inputs: action (required), path, roles, users, +7 more.
proxmox_acme_accountACME AccountsADestructiveIdempotent
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 CertificatesADestructive
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 InformationBRead-only
Query ACME information. action=list_plugins|get_plugin|directories
Inputs: action (required), id.
proxmox_agent_execGuest Agent Command ExecutionBDestructive
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 AccessADestructive
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 FreezeCDestructive
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 InfoBRead-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 InfoARead-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 ControlADestructive
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 ManagementBDestructiveIdempotent
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 PackagesADestructive
Manage APT packages. action=update(elevated)|upgrade(elevated): package ops | action=versions: list versions
Inputs: node (required), action (required), package.
proxmox_backupGuest BackupsADestructive
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 StatusARead-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 DaemonsBDestructive
Manage Ceph MDS daemons (list, create, delete)
Inputs: node (required), action (required), name.
proxmox_ceph_monCeph MonitorsCDestructive
Manage Ceph monitors (list, create, delete)
Inputs: node (required), action (required), monid.
proxmox_ceph_osdCeph OSDsCDestructive
Manage Ceph OSDs (list, create, delete)
Inputs: node (required), action (required), id, dev, +5 more.
proxmox_ceph_poolCeph PoolsCDestructiveIdempotent
Manage Ceph pools (list, create, update, delete)
Inputs: node (required), action (required), name, size, +4 more.
proxmox_certificateNode SSL CertificatesBDestructiveIdempotent
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 ConfigurationADestructiveIdempotent
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 InfoADestructiveIdempotent
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 JobsCDestructiveIdempotent
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 ConfigurationCDestructive
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 SettingsADestructiveIdempotent
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 AliasesADestructiveIdempotent
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 GroupsCDestructiveIdempotent
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 SetsADestructiveIdempotent
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 EntriesBDestructiveIdempotent
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 RulesBDestructive
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 JobsCDestructiveIdempotent
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 DomainsBDestructiveIdempotent
Manage authentication domains (list, get, create, update, delete)
Inputs: action (required), port, type, realm, +14 more.
proxmox_file_restoreBackup File RestoreBRead-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 VMIDARead-only
Get the next available VM/Container ID number
Inputs: no named parameters.
proxmox_groupGroupsBDestructiveIdempotent
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 ConfigurationARead-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 ConfigurationADestructiveIdempotent
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 GuestADestructiveIdempotent
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 DiskBDestructive
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 DiskADestructive
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 AvailabilityARead-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 RulesADestructive
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 GuestsARead-only
List all virtual machines and containers across the cluster with their status
Inputs: node, type.
proxmox_guest_migrateMigrate GuestBDestructive
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 InterfacesBDestructive
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 VMBDestructiveIdempotent
Pause a QEMU virtual machine — VM only (requires elevated permissions)
Inputs: node (required), vmid (required).
proxmox_guest_pendingGuest Pending ChangesARead-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 GuestADestructive
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/MemoryADestructiveIdempotent
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 VMAIdempotent
Resume a paused QEMU virtual machine — VM only (requires elevated permissions)
Inputs: node (required), vmid (required).
proxmox_guest_rrddataGuest MetricsBRead-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 GuestADestructiveIdempotent
Gracefully shutdown a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions)
Inputs: node (required), type (required), vmid (required).
proxmox_guest_snapshotGuest SnapshotsADestructive
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 GuestAIdempotent
Start a VM (type=vm) or LXC container (type=lxc) (requires elevated permissions)
Inputs: node (required), type (required), vmid (required).
proxmox_guest_statusGuest StatusBRead-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 GuestBDestructiveIdempotent
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 TemplateADestructiveIdempotent
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 GroupsBDestructiveIdempotent
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 ResourcesBDestructiveIdempotent
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 ExecutionADestructive
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 PointsCDestructive
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 InfoBRead-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 OperationsCDestructive
Bulk guest operations. action=start_all|stop_all|migrate_all (all elevated)
Inputs: node (required), action (required), target, maxworkers, +1 more.
proxmox_node_configNode ConfigurationBDestructiveIdempotent
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 DisksBRead-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 AdministrationADestructive
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 DiagnosticsBRead-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 LogsARead-only
Read node logs. action=syslog: read syslog | action=journal: read systemd journal
Inputs: node (required), action (required).
proxmox_node_network_ifaceNode Network InterfacesBDestructiveIdempotent
Manage node network interfaces. action=create|update|delete|apply (all elevated)
Inputs: node (required), action (required), mtu, cidr, +21 more.
proxmox_node_powerNode Power ControlBDestructive
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 ServicesADestructive
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 SubscriptionADestructiveIdempotent
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 TasksARead-only
Query node tasks. action=list: list recent tasks | action=get: get task details by UPID
Inputs: node (required), action (required), upid.
proxmox_notificationNotification TargetsCDestructive
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 PoolsCDestructiveIdempotent
Manage resource pools (list, get, create, update, delete)
Inputs: action (required), delete, digest, poolid, +1 more.
proxmox_roleRolesCDestructiveIdempotent
Manage Proxmox roles (list, create, update, delete)
Inputs: action (required), privs, append, delete, +3 more.
proxmox_sdn_controllerSDN ControllersCDestructiveIdempotent
Manage SDN controllers (list, get, create, update, delete)
Inputs: action (required), ip, port, type, +7 more.
proxmox_sdn_subnetSDN SubnetsBDestructiveIdempotent
Manage SDN subnets (list, get, create, update, delete)
Inputs: action (required), dns, mtu, cidr, +9 more.
proxmox_sdn_vnetSDN Virtual NetworksCDestructiveIdempotent
Manage SDN virtual networks (list, get, create, update, delete)
Inputs: action (required), mac, mtu, tag, +10 more.
proxmox_sdn_zoneSDN ZonesBDestructiveIdempotent
Manage SDN zones (list, get, create, update, delete)
Inputs: action (required), mtu, tag, ipam, +8 more.
proxmox_storage_configStorage ConfigurationCDestructiveIdempotent
Manage storage configurations (list, get, create, update, delete, cluster_usage)
Inputs: action (required), node, path, pool, +25 more.
proxmox_storage_contentStorage ContentCDestructive
Manage storage content (list, list_templates, upload, download_url, delete, prune)
Inputs: node (required), action (required), storage (required), url, +16 more.
proxmox_userUsersBDestructiveIdempotent
Manage Proxmox users (list, get, create, update, delete)
Inputs: action (required), email, append, delete, +9 more.
proxmox_user_tokenAPI TokensADestructiveIdempotent
Manage user API tokens (list, get, create, update, delete)
Inputs: action (required), userid (required), expire, comment, +2 more.
proxmox_vm_diskVM DisksBDestructive
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
Scored across 92 tools
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.
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.
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.
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
Related MCP Connectors
MCP server with quote and live cryptocurrency price tools, local and cloud-deployed transports.
A MCP server built for developers enabling Git based project management with project and personal…
MCP registry & directory: search, find & install 31k+ MCP servers & tools. Catalog and marketplace.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceAn 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 npm2MIT
- AlicenseBqualityDmaintenanceAn MCP server for Proxmox VE that enables read-only cluster inspection, VM/container lifecycle operations, snapshots, migration, and provisioning with safe confirmation gates.28MIT
- AlicenseBqualityCmaintenanceComprehensive MCP server for Proxmox VE with 68 tools and 4 resources covering VMs, containers, storage, networking, clusters, HA, backups, firewall, and access control.6876 npmMIT
- AlicenseNot gradedqualityDmaintenanceMCP server for full Proxmox VE management - VMs, containers, storage, backups, networking.2MIT