Proxmox MCP Server

Proxmox MCP Server

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

Category
访问服务器

README

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

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_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 -

SSL Modes

  • strict: Full SSL certificate verification (recommended for production)
  • verify: Verify SSL but allow self-signed certificates
  • insecure: No SSL verification (development only, not recommended)

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_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_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:

  • Use PROXMOX_SSL_MODE=verify for self-signed certificates
  • Use PROXMOX_SSL_MODE=insecure for development (not recommended for production)
  • Install proper SSL certificates on Proxmox server for production use

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)

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选